Ответ
Попарное тестирование (метод ортогональных массивов) эффективно для сокращения комбинаций, но не подходит для случаев:
- Высококритичные системы (safety-critical): В медицине, авиации, финансах часто требуется полный перебор комбинаций, так как стоимость пропущенного дефекта крайне высока.
- Сильная зависимость между параметрами: Если значения одного параметра логически ограничивают значения другого, Pairwise может пропустить важные или создать невалидные комбинации.
- Малое количество параметров или значений: Когда общее число всех возможных комбинаций невелико (например, 2 параметра по 3 значения = 9 комбинаций). Выгода от сокращения минимальна.
- Высокая стоимость подготовки одного теста: Если настройка тестового окружения для одного сценария занимает много времени, сокращение числа прогонов может не окупить рисков.
Пример зависимых параметров (логика в коде):
def set_access_level(user_type, action):
"""
user_type: 'guest', 'user', 'admin'
action: 'read', 'write', 'delete'
"""
rules = {
'guest': ['read'],
'user': ['read', 'write'],
'admin': ['read', 'write', 'delete']
}
if action not in rules[user_type]:
raise PermissionError
# Pairwise-комбинация ('guest', 'delete') будет невалидной и может быть пропущена,
# но ее важно проверить на обработку ошибок.