QA Testing

13 уроков
Консультации
#5 – Методы тестирования ПО

#5 – Методы тестирования ПО

За урок мы рассмотрим технологии тестирования ПО. Мы познакомимся с Black-box и White-box тестированием. Также мы рассмотрим различные техники проведения тестирования и ознакомимся с ними.

Видеоурок

Black-box тестирование

Black-box тестирование – это метод, при котором тестировщик рассматривает программное обеспечение как "черный ящик", то есть без знания внутренней структуры кода. В этом случае тестировщик проверяет только внешнее поведение программы, исходя из спецификаций и требований. Цель такого тестирования – проверка того, соответствует ли поведение программы ожидаемым результатам.


Основные аспекты Black-box тестирования заключаются в том, что вам не требуется знание кода программы. Тестировщик концентрируется на входных и выходных данных, без анализа того, как они обрабатываются внутри системы. Весь процесс тестирования ориентирован на функциональные требования.



Пример: допустим, у нас есть калькулятор, и мы тестируем его функцию сложения. Мы вводим два числа (например, 2 + 3) и ожидаем, что результат будет 5. Мы не знаем, как калькулятор производит вычисления, но проверяем, соответствует ли результат нашим ожиданиям.


White-box тестирование

White-box тестирование предполагает, что тестировщик имеет доступ к исходному коду программы. Тесты в этом методе направлены на проверку внутренней логики и структуры кода. Основной акцент делается на покрытие кода тестами, что позволяет убедиться, что все ветви программы и условия были протестированы.


Основные аспекты White-box тестирования заключаются в том, что здесь вам необходимо знание кода. Тестирование ориентировано на внутренние структуры и алгоритмы. Этот метод помогает оптимизировать покрытие кода и выявить скрытые ошибки.



Пример: допустим, у нас есть программа для проверки пароля. В этом случае мы можем протестировать условия, которые обрабатывают введенные символы, проверить логику проверок, таких как длина пароля, наличие цифр и специальных символов.


Техники проектирования тестов

Теперь, когда мы рассмотрели два основных подхода к тестированию, давайте перейдем к техникам проектирования тестов. Эти методы позволяют эффективно создавать тесты, которые покрывают различные сценарии использования программы.


Эквивалентное разбиение

Эквивалентное разбиение – это техника, которая помогает разделить входные данные на группы или классы эквивалентности. Каждый класс содержит набор данных, которые обрабатываются системой одинаково. Предполагается, что если один тест-кейс из класса прошел успешно, то и другие тест-кейсы из этого же класса дадут аналогичные результаты.


Как использовать эквивалентное разбиение: выполните разделение входных данных на классы, а затем выберите по одному тест-кейсу из каждого класса.



Пример: допустим, мы тестируем поле ввода возраста (от 18 до 60 лет). Мы можем разбить входные данные на три класса:

  • Класс 1: Возраст меньше 18 лет (недопустимый ввод).
  • Класс 2: Возраст от 18 до 60 лет (допустимый ввод).
  • Класс 3: Возраст больше 60 лет (недопустимый ввод).


Для тестирования достаточно выбрать один тест-кейс из каждого класса: например, 17, 30 и 61.


Граничные значения

Граничные значения – это техника, которая помогает протестировать границы классов эквивалентности. Часто ошибки возникают именно на граничных значениях, поэтому их проверка крайне важна.


Как использовать граничные значения: выберите минимальные и максимальные значения для каждой границы. Далее протестируйте непосредственно на границе, чуть ниже и чуть выше нее.



Пример: в поле ввода возраста (от 18 до 60 лет) граничные значения – это минимальная граница 18 лет (тестируем 17, 18, 19) и максимальная граница 60 лет (тестируем 59, 60, 61).


Таблицы принятия решений

Таблицы принятия решений (decision tables) используются для тестирования сложных логических условий, когда различные комбинации входных данных приводят к разным результатам. Эта техника помогает систематически покрывать все возможные комбинации условий.


Для создания такой таблицы нужно определить все входные условия, возможные результаты и построить таблицу, где каждая строка представляет уникальную комбинацию условий и соответствующее решение.


Пример: система авторизации, где для успешного входа требуется правильное имя пользователя и пароль. Таблица принятия решений может выглядеть так:



Разработка тестов на основе требований

Последний важный аспект – разработка тестов на основе требований. Этот метод предполагает, что тестировщик использует требования к системе для создания тест-кейсов. Основная цель заключается в том, чтобы убедиться, что каждый аспект требований был проверен.


Для разработки таких тестов вам нужно сначала прочитать и проанализировать требования. Затем определить ключевые функциональности и ожидаемые результаты. Наконец, создать тест-кейсы для проверки каждого требования.


Пример: в требованиях к веб-приложению указано, что пользователь должен иметь возможность зарегистрироваться с использованием электронной почты. Тест-кейс для проверки этого функционала может выглядеть так:

  • Шаг 1: Откройте страницу регистрации.
  • Шаг 2: Введите валидный адрес электронной почты.
  • Шаг 3: Введите валидный пароль.
  • Шаг 4: Нажмите кнопку "Зарегистрироваться".
  • Ожидаемый результат: Пользователь успешно зарегистрирован и перенаправлен на страницу приветствия.



Так создается тест, который нацелен на проверку определенного требования веб-сайта.

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

С++ программирование / Уроки C++
26 уроков
Уроки Java для профессионалов
14 уроков
Уроки Angular для начинающих
11 уроков
Изучение HTMX с нуля / Проект на HTMX и Flask
8 уроков
Верстка сайта на HTML5 и CSS3
8 уроков
Обучение технологиям в одном видеоуроке
16 уроков
Комментарии
Добавить комментарий

Пока комментариев нет