В чем разница между техниками тест-дизайна «Эквивалентное разделение» и «Анализ граничных значений»?

«В чем разница между техниками тест-дизайна «Эквивалентное разделение» и «Анализ граничных значений»?» — вопрос из категории Техники тест-дизайна, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Обе техники используются для сокращения числа тест-кейсов при сохранении покрытия. Они взаимосвязаны: сначала применяется эквивалентное разделение, затем — анализ граничных значений.

Эквивалентное разделение (Equivalence Partitioning)

Цель: Разделить все возможные входные данные на классы (партиции), внутри которых поведение системы ожидается одинаковым.

  • Как работает: Для каждого входа определяются:
    1. Класс валидных данных (система должна их принять и корректно обработать).
    2. Один или несколько классов невалидных данных (система должна отклонить их с ошибкой).
  • Идея: Достаточно протестировать по одному значению из каждого класса.

Анализ граничных значений (Boundary Value Analysis)

Цель: Протестировать поведение системы на границах между этими эквивалентными классами, где вероятность ошибки наиболее высока.

  • Как работает: Для каждой границы выбираются тестовые значения:
    1. Значение на границе.
    2. Значение сразу за границей (невалидное).
    3. Значение сразу перед границей (валидное).

Практический пример

Условие: Поле «Возраст» принимает целые числа от 18 до 65 включительно.

  1. Применяем Эквивалентное разделение:

    • Валидный класс: [18, 65] (возраст от 18 до 65 лет).
    • Невалидные классы: <18 и >65.
  2. Применяем Анализ граничных значений для каждой границы:

    • Граница 18: тестируем 17 (невалидно), 18 (валидно), 19 (валидно).
    • Граница 65: тестируем 64 (валидно), 65 (валидно), 66 (невалидно).

Вывод: Эквивалентное разделение отвечает на вопрос «Какие группы данных тестировать?», а анализ граничных значений — «Какие конкретные значения из этих групп выбрать для тестов?». Их совместное применение дает эффективный набор тестов с высокой вероятностью обнаружения дефектов.