Ответ
Обе техники используются для сокращения числа тест-кейсов при сохранении покрытия. Они взаимосвязаны: сначала применяется эквивалентное разделение, затем — анализ граничных значений.
Эквивалентное разделение (Equivalence Partitioning)
Цель: Разделить все возможные входные данные на классы (партиции), внутри которых поведение системы ожидается одинаковым.
- Как работает: Для каждого входа определяются:
- Класс валидных данных (система должна их принять и корректно обработать).
- Один или несколько классов невалидных данных (система должна отклонить их с ошибкой).
- Идея: Достаточно протестировать по одному значению из каждого класса.
Анализ граничных значений (Boundary Value Analysis)
Цель: Протестировать поведение системы на границах между этими эквивалентными классами, где вероятность ошибки наиболее высока.
- Как работает: Для каждой границы выбираются тестовые значения:
- Значение на границе.
- Значение сразу за границей (невалидное).
- Значение сразу перед границей (валидное).
Практический пример
Условие: Поле «Возраст» принимает целые числа от 18 до 65 включительно.
-
Применяем Эквивалентное разделение:
- Валидный класс:
[18, 65](возраст от 18 до 65 лет). - Невалидные классы:
<18и>65.
- Валидный класс:
-
Применяем Анализ граничных значений для каждой границы:
- Граница 18: тестируем 17 (невалидно), 18 (валидно), 19 (валидно).
- Граница 65: тестируем 64 (валидно), 65 (валидно), 66 (невалидно).
Вывод: Эквивалентное разделение отвечает на вопрос «Какие группы данных тестировать?», а анализ граничных значений — «Какие конкретные значения из этих групп выбрать для тестов?». Их совместное применение дает эффективный набор тестов с высокой вероятностью обнаружения дефектов.