Мне особенно нравятся следующие техники:
- Классы эквивалентности (Equivalence Partitioning): Позволяет разбить входные данные на группы, где все значения в группе должны обрабатываться одинаково. Это значительно сокращает количество тестовых случаев без ущерба для покрытия.
- Анализ граничных значений (Boundary Value Analysis): Фокусируется на тестировании значений на границах диапазонов. Часто именно здесь возникают ошибки. Комбинируется с классами эквивалентности для максимальной эффективности.
- Таблицы принятия решений (Decision Tables): Идеально подходит для тестирования функциональности с множеством условий и соответствующих действий. Четко описывает все возможные комбинации условий и ожидаемый результат.
- Исследование на основе рисков (Risk-Based Testing): Позволяет приоритизировать тестирование, направляя усилия на области с наибольшей вероятностью возникновения дефектов или с наибольшим влиянием на бизнес в случае их появления. Это не совсем техника тест-дизайна в чистом виде, но очень важный подход к определению фокуса тестирования.
Мне нравится их практичность и эффективность в поиске багов, особенно на ранних этапах тестирования. Они помогают структурировать процесс тест-дизайна и обеспечивают хорошее покрытие.