Техники тест-дизайна — это систематические подходы к созданию эффективных тестовых случаев. Вот основные техники, которые должен знать каждый профессиональный QA:
Суть: Разделение входных данных на классы эквивалентности, где данные внутри класса ведут себя одинаково.
Пример:
# Поле возраста принимает значения от 18 до 60
valid_ages = [18, 30, 60] # Один валидный класс
invalid_ages = [17, 61] # Два невалидных класса
Когда использовать:
Суть: Тестирование на границах между классами эквивалентности.
Пример для поля (10-100):
| Тип значения | Примеры |
|--------------|----------|
| Нижняя граница | 10 |
| Ниже границы | 9 |
| Выше границы | 101 |
| Верхняя граница | 100 |
| Валидное внутри | 50 |
Особенности:
Суть: Систематизация комбинаций условий и соответствующих действий.
Пример для системы скидок:
| Сумма покупки | Постоянный клиент | Скидка |
|---------------|-------------------|--------|
| <1000 | Нет | 0% |
| <1000 | Да | 5% |
| >=1000 | Нет | 10% |
| >=1000 | Да | 15% |
Преимущества:
Суть: Тестирование систем, где выход зависит не только от входа, но и от предыдущего состояния.
Пример для банкомата:
stateDiagram
[*] --> Ready
Ready --> Authenticating: Ввод карты
Authenticating --> Ready: Неверный PIN
Authenticating --> Menu: Верный PIN
Menu --> Ready: Извлечение карты
Применение:
Суть: Проверка всех возможных пар значений параметров вместо всех возможных комбинаций.
Пример для конфигурации ПК:
# Вместо 3*2*2=12 комбинаций используем 5:
test_cases = [
{'OS': 'Windows', 'RAM': 8, 'CPU': 'Intel'},
{'OS': 'Windows', 'RAM': 16, 'CPU': 'AMD'},
{'OS': 'Linux', 'RAM': 8, 'CPU': 'AMD'},
{'OS': 'Linux', 'RAM': 16, 'CPU': 'Intel'},
{'OS': 'MacOS', 'RAM': 8, 'CPU': 'Intel'}
]
Эффективность:
Суть: Тестирование полных пользовательских сценариев.
Пример для интернет-магазина:
Feature: Оформление заказа
Scenario: Успешное оформление заказа авторизованным пользователем
Given Пользователь авторизован
When Он добавляет товар в корзину
And Переходит к оформлению
And Вводит валидные платежные данные
Then Заказ успешно создается
And Приходит уведомление на email
Суть: Использование опыта тестировщика для предсказания возможных ошибок.
Типичные сценарии:
Техника | Когда использовать | Эффективность | Сложность |
---|---|---|---|
Эквивалентное разбиение | Большие диапазоны данных | Высокая | Низкая |
Попарное тестирование | Множество параметров | Очень высокая | Средняя |
Таблицы решений | Сложные бизнес-правила | Высокая | Высокая |
Диаграмма состояний | Системы с состояниями | Средняя | Высокая |
Выбор техники тест-дизайна зависит от:
Профессиональный тестировщик должен владеть несколькими техниками и уметь их комбинировать для достижения оптимального тестового покрытия.