#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 місяця
Також варто подивитися