Тест-дизайн — это процесс разработки тестовых сценариев и данных на основе требований, спецификаций и анализа продукта. Возник с необходимостью структурировать тесты так, чтобы обеспечить максимальное покрытие и минимизировать дублирование усилий.
История вопроса:
Ранее тесты составлялись интуитивно, что приводило к пробелам в проверках и неэффективному использованию ресурсов. Методы тест-дизайна позволили повысить качество и полноту покрытия.
Проблема:
Без формализованных техник существует риск перебора однотипных тестов или, наоборот, пропуска критичных случаев. Также трудно доказать достаточность тестирования перед релизом.
Решение:
Внедрение техники тест-дизайна позволяет рационально распределить ресурсы, выделить наиболее приоритетные проверки и вести контроль над покрытием. Ключевые техники:
Ключевые особенности:
Достаточно ли тестировать только по граничным значениям для полного покрытия?
Нет, нужно ещё учитывать позитивные/негативные сценарии, проверки бизнес-логики и неэквивалентные кейсы.
В каких случаях лучше использовать pairwise, а не эквивалентное разбиение?
Когда существует несколько параметров с разными диапазонами значений — pairwise эффективнее выявляет ошибки взаимодействия между параметрами.
Является ли тестирование на устаревших спецификациях достаточным?
Нет, спецификации должны быть актуализированы, иначе покрытие тестами не будет соответствовать текущему продукту.
Тестировать поле «Возраст» взяли только 18, 25, 40 лет, а критические ошибки на границах (0, 100) не были замечены до выхода релиза.
Плюсы:
Минусы:
Использовали метод эквивалентных классов и граничных значений: тесты покрыли 0, 1, 17, 18, 99, 100, 101, а также типовые значения внутри диапазона.
Плюсы:
Минусы: