#5 – Методы тестирования ПО
Видеоурок
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 месяца
Также стоит посмотреть