Как сократить количество проверок?
1. Попарное тестирование (Pairwise)
Цель: сократить число тестов, покрывая все возможные пары значений параметров.
· Если все параметры имеют одинаковое число значений v (v – простое или степень простого): Минимальное количество тестов = v² (например, для 3 значений – 9 тестов, для 2 – 4). · Для общего случая (разное число значений): Нет единой точной формулы. Оценка сверху: ~ v_max² × log₂(n), где v_max – максимальное число значений среди параметров, n – количество параметров. На практике применяют эвристические алгоритмы (например, PICT), дающие число тестов близкое к оптимальному, обычно между v_max² и v_max² × (n–1).
2. Таблицы решений (Decision Tables)
· Максимальное число комбинаций условий (без сокращения): Количество правил = 2^k, где k – число бинарных условий (если условия небинарные, то произведение количества значений каждого условия). · После объединения правил с одинаковым действием: Число правил может уменьшиться, но точная формула отсутствует – применяется минимизация (карты Карно или логическое упрощение).
3. Эквивалентное разбиение (Equivalence Partitioning)
· Для каждого параметра выделяется m классов эквивалентности (валидные и невалидные). Общее количество тестов = Σ m_i (по всем параметрам), т.е. по одному тесту на каждый класс.
4. Анализ граничных значений (Boundary Value Analysis)
· Для каждого диапазона с границами [min, max] добавляются тесты: · Значение на границе: min и max (2 теста) · Сразу за границей: min-1 и max+1 (2 теста) · Опционально – внутренняя точка (например, (min+max)/2) – ещё 1 тест. Итого на один диапазон: до 5 тестов, но обычно используют 4 (границы + за границами). Общее количество = сумма по всем диапазонам (4 или 5).
5. Предугадывание ошибок (Error Guessing)
· Формул нет – это эвристика, основанная на опыте. Количество тестов определяется перечнем типичных ошибок (XSS, SQLi, спецсимволы, пустые поля и т.д.) и может составлять 5–20 дополнительных проверок.
6. Нефункциональные проверки (производительность, безопасность, совместимость и т.д.)
· Формул нет – количество тестов задаётся требованиями или чек-листом (например: 3 браузера × 2 разрешения = 6 тестов; 5 видов атак = 5 тестов и т.п.). Можно выразить как константное число, добавляемое к основному набору.
Итог: Для попарного – ориентир v² или ~v_max²×log₂(n). Для таблиц решений – 2^k (максимум). Для эквивалентного разбиения – сумма классов. Для граничных значений – до 5 на диапазон.