Тестирование «Черного ящика» (Black Box Testing)
При тестировании «черного ящика» программное обеспечение рассматривается как «черный ящик», внутренняя структура кода которого неизвестна тестировщику. Проверка осуществляется только внешнего поведения программы, основываясь на спецификациях и требованиях. Цель – убедиться, что поведение программы соответствует ожидаемым результатам.
Основные аспекты:
- Отсутствие необходимости знать код программы.
- Фокус на входных и выходных данных без анализа внутренних процессов обработки.
- Ориентация на функциональные требования.
Пример: Тестирование функции сложения в калькуляторе. Вводятся два числа (например, 2 и 3), и ожидается результат 5. Неважно, как калькулятор производит вычисление – важно лишь соответствие результата ожиданиям.
Тестирование «Белого ящика» (White Box Testing)
Тестирование «белого ящика» предполагает доступ тестировщика к исходному коду программы. Тесты направлены на проверку внутренней логики и структуры кода. Основной акцент – покрытие кода тестами для обеспечения проверки всех ветвей программы и условий.
Основные аспекты:
- Необходимость знания кода программы.
- Ориентация на внутренние структуры и алгоритмы.
- Использование для оптимизации покрытия кода и выявления скрытых ошибок.
Пример: Тестирование программы проверки паролей. Проверяются условия кода, обрабатывающие введенные символы, логика проверок (длина пароля, наличие цифр и специальных символов).
Техники проектирования тестов
Эквивалентное разбиение
Эта техника разделяет входные данные на группы или классы эквивалентности. Данные в каждом классе обрабатываются системой одинаково. Если один тест-кейс из класса пройден успешно, то и другие тест-кейсы из этого класса должны дать аналогичный результат.
Использование:
- Разделите входные данные на классы.
- Выберите по одному тест-кейсу из каждого класса.
Пример: Тестирование поля ввода возраста (18–60 лет). Классы: 1) возраст < 18 (недопустимый ввод); 2) возраст 18–60 (допустимый ввод); 3) возраст > 60 (недопустимый ввод). Для тестирования достаточно по одному тест-кейсу из каждого класса (например, 17, 30, 61).
Граничные значения
Эта техника позволяет протестировать границы классов эквивалентности, где часто возникают ошибки.
Использование:
- Выберите минимальное и максимальное значения для каждой границы.
- Протестируйте непосредственно на границе, чуть ниже и чуть выше.
Пример: Поле ввода возраста (18–60). Граничные значения: 18 (тестируем 17, 18, 19) и 60 (тестируем 59, 60, 61).
Таблицы принятия решений
Используются для тестирования сложных логических условий, когда различные комбинации входных данных приводят к разным результатам. Позволяют систематически покрывать все возможные комбинации условий.
Создание:
- Определите все входные условия.
- Определите все возможные результаты.
- Постройте таблицу, где каждая строка – уникальная комбинация условий и соответствующий результат.
Пример: Система авторизации (правильное имя пользователя И пароль). Таблица будет содержать комбинации верных/неверных имени пользователя и пароля с соответствующими результатами.
Тесты на основе требований
Тестировщик использует требования к системе для создания тест-кейсов, обеспечивая проверку каждого аспекта требований.
Разработка:
- Прочитайте и проанализируйте требования.
- Определите ключевые функциональности и ожидаемые результаты.
- Создайте тест-кейсы для проверки каждого требования.
Пример: Требование веб-приложения: пользователь должен иметь возможность зарегистрироваться, используя электронную почту. Тест-кейс: 1) открыть страницу регистрации; 2) ввести валидный адрес электронной почты; 3) ввести валидный пароль; 4) нажать кнопку «Зарегистрироваться»; ожидаемый результат – успешная регистрация и перенаправление на страницу приветствия.
Рассмотрены ключевые методы тестирования ПО: Black Box и White Box тестирование, а также техники проектирования тестов (эквивалентное разбиение, граничные значения, таблицы принятия решений и разработка тестов на основе требований). Применение этих методов позволяет проводить тестирование проекта эффективно и надежно.