Мне известны следующие методы дизайна тестов:
-
Методы, основанные на спецификации (Specification-Based):
- Эквивалентное разбиение (Equivalence Partitioning): Разделение входных данных на классы эквивалентности, при этом предполагается, что тест над одним представителем класса эффективен как тест над любым другим.
- Анализ граничных значений (Boundary Value Analysis - BVA): Тестирование типичных ошибок на границах разделов эквивалентности или на границах диапазона допустимых значений.
- Таблицы принятия решений (Decision Tables): Представление сложных бизнес-правил в компактной табличной форме для выявления всех возможных комбинаций условий и соответствующих действий.
- Диаграммы состояний и переходов (State Transition Diagrams): Моделирование поведения системы в зависимости от состояний и входных событий. Тесты проектируются для проверки допустимых и недопустимых переходов.
- Сценарии использования (Use Cases): Тестирование функциональности с точки зрения пользователя, описывая последовательность действий для достижения конкретной цели.
-
Методы, основанные на структуре (Structure-Based) / White-Box:
- Покрытие операторов (Statement Coverage): Выполнение каждого оператора кода по к