Тест-дизайн — это часть процесса тестирования программного обеспечения, где разрабатываются и создаются тестовые сценарии (тест-кейсы) в соответствии с заранее установленными критериями качества и целями тестирования.
Ответственные за тест-дизайн:
• Тест-аналитик — решает, «ЧТО тестировать?»
• Тест-дизайнер — решает, «КАК тестировать?»
Техники тест-дизайна (Test Design Techniques):
- Эквивалентное разбиение (Equivalence Partitioning)
Суть: Делим данные на группы, где каждый элемент группы считается эквивалентным для тестирования.
Пример: Если поле ввода принимает возраст от 1 до 100, тестируем значения 0 (меньше минимума), 50 (внутри диапазона) и 101 (больше максимума). - Анализ граничных значений (Boundary Value Analysis)
Суть: Проверяем значения на границах диапазонов.
Пример: Если поле ввода принимает возраст от 1 до 100, тестируем значения 0, 1, 99, 100 и 101. - Попарное тестирование (Pairwise Testing)
Суть: Тестируем комбинации параметров попарно, чтобы уменьшить количество тестов, сохраняя при этом хорошее покрытие.
Пример: Если у нас есть три параметра (цвет: красный, синий; размер: маленький, большой; форма: круглая, квадратная), мы можем сделать всего 4 теста, покрывающих все возможные парные комбинации, вместо 8 (2x2x2). - Таблицы принятия решений (Decision Table Testing)
Суть: Используем таблицы, чтобы систематически определять, какие комбинации условий приводят к каким действиям.
Пример: Для интернет-магазина: если клиент зарегистрирован (да/нет) и товар в наличии (да/нет), возможны действия: разрешить покупку или отказать в покупке. - Сценарное тестирование (Scenario Testing)
Суть: Разрабатываем реальные сценарии использования системы.
Пример: Новый пользователь регистрируется, добавляет товар в корзину, оформляет заказ и платит. - Тестирование состояний и переходов (State Transition Testing)
Суть: Проверяем, как система ведет себя при переходах из одного состояния в другое.
Пример: В системе управления заказами состояния могут быть: "новый заказ", "обработка заказа", "доставка", "завершено". Проверяем переходы между этими состояниями. - Использование чек-листов (Checklists)
Суть: Создаем списки проверок для ключевых функций и проверяем выполнение каждой из них.
Пример: Для приложения интернет-магазина можно создать чек-лист с пунктами проверки корзины, оформления заказа и процесса оплаты. - Исчерпывающее тестирование (Exhaustive Testing)
Суть: Проверяет все возможные комбинации входных данных и состояний системы.
Пример: Если поле ввода принимает значения от 0 до 9, исчерпывающее тестирование предполагает проверку всех 10 значений (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). - Предугадывание ошибки (Error Guessing)
Суть: Использует опыт тестировщиков для предугадывания, где могут возникнуть ошибки.
Пример: Если в прошлом в аналогичных системах были проблемы с обработкой специальных символов в полях ввода, тестировщик может специально вводить такие символы, ожидая ошибки. - Причины и следствия (Cause-Effect Graphing)
Суть: Создает график, который связывает возможные причины (входные условия) с их следствиями (выходными результатами).
Пример: В интернет-магазине, если клиент добавляет товар в корзину (причина), то товар должен отображаться в корзине (следствие). График будет показывать взаимосвязь между этими условиями и результатами.
Эти техники помогают структурированно и эффективно покрыть различные аспекты тестируемого программного обеспечения, обеспечивая более высокое качество и надежность продукта.
Так же будет интересно:
Вопросы по теории тестирования Джуну