Тест дизайн — это этап тестирования ПО, на котором разрабатываются тестовые случаи (тест кейсы) в соответствии с требованиями и целями тестирования.
Выделяют две основные цели:
- Тест кейсы должны покрывать весь функционал;
- Тестов должно быть минимально достаточно, т.к. дополнительные тесты увеличивают время проверки.
Задачи тест дизайна:
- Проанализировать требования к продукту;
- Оценить возможные риски (основной риск — это риск жизни и здоровью, затем финансовые риски);
- Написать минимально достаточное количество тестов;
- Разделить тесты на приемочные и критические.
При проведении тест дизайна обычно производится декомпозиция системы, т.е. разделение ее на части. Удобный графический инструмент для этого это программа Xmind:
Также используются техники тест дизайна:
• Эквивалентное разделение (Equivalence partitioning — EP). Например, в диапазоне допустимых значений от 1 до 10, проверяем одно значение внутри интервала 4 и одно вне интервала 11.
• Анализ граничных значений (Boundary value analysis — BVA). Для диапазона допустимых значений от 1 до 10 проверяются граничные значения (1 и 10), а также значения больше и меньше границ (0 и 11). Анализ Граничный значений может быть применен к полям, записям, файлам.
• Причина / следствие (Cause/Effect — CE). Это, как правило, ввод комбинаций условий (причин), для получения ответа от системы (Следствие). Например, вы проверяете возможность добавлять клиента, используя определенную экранную форму. Для этого вам необходимо будет ввести несколько полей, таких как «Имя», «Адрес», «Номер Телефона» а затем, нажать кнопку «Добавить» — это «Причина». После нажатия кнопки «Добавить», система добавляет клиента в базу данных и показывает его номер на экране — это «Следствие».
• Предугадывание ошибки (Error Guessing — EG). Это когда тестировщик использует свои знания системы и способность к интерпретации спецификации на предмет того, чтобы «предугадать» при каких входных условиях система может выдать ошибку. Например, спецификация говорит: «пользователь должен ввести код». Тестировщик будет думать: «Что, если я не введу код?», «Что, если я введу неправильный код? », и так далее. Это и есть предугадывание ошибки.
• Исчерпывающее тестирование (Exhaustive Testing — ET) — это крайний случай. В пределах этой техники вы должны проверить все возможные комбинации входных значений, и в принципе, это должно найти все проблемы. На практике применение этого метода не представляется возможным, из-за огромного количества входных значений.
• Попарное тестирование (Pairwise Testing) — метод позволяет обнаруживать дефекты с использованием комбинационного метода двух тестовых случаев. Он основан на наблюдении, что большинство дефектов вызвано взаимодействием не более двух факторов. Следовательно, выбирается пара из двух тестовых параметров, и все возможные пары этих двух параметров отправляются в качестве входных параметров для целей тестирования.