РУҚА
Тапсырма № 23 · ЕГЭ

Тестирование классов эквивалентности

Как разбить входные данные на группы для эффективной проверки алгоритма
2 мин чтенияҚиындық: Обновлено 29 қыркүйек 2026

Тестирование классов эквивалентности — это способ разработки тестов, при котором все возможные входные данные разбивают на группы с одинаковым ожидаемым поведением алгоритма. Из каждой группы выбирают один или несколько представителей, поэтому проверка становится короче, но сохраняет возможность обнаружить ошибки.

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

Метод применяют при тестировании алгоритмов. Сначала изучают условие задачи и выделяют ограничения, затем находят границы и особые случаи. После этого входы делят на допустимые классы, где данные корректны, и недопустимые, где нарушено хотя бы одно условие. Для каждого класса составляют тестовый пример. Особенно важны значения на границах классов и рядом с ними.

\[\text{Число тестов} \approx \text{число выделенных классов}\]
№
Пример

Пусть алгоритм принимает целое число \(x\) из диапазона \(10 \le x \le 99\). Можно выделить три класса: \(x < 10\) — недопустимые числа, \(10 \le x \le 99\) — допустимые двузначные числа, \(x > 99\) — недопустимые числа. Представители классов: 9, 50 и 100. Дополнительно полезно проверить границы 10 и 99, а также соседние значения 11 и 98.

!
Не путайте со случайным тестированием

При случайном тестировании значения выбирают случайно. При тестировании классов эквивалентности значения выбирают целенаправленно: они должны представлять разные правила обработки, прежде всего границы и недопустимые случаи.

Проверьте себя

Для условия \(0 \le x \le 100\) какое значение лучше всего представляет сынып \(x<0\)?

Главное за минуту

Главное

  • Сынып эквивалентности объединяет входы с одинаковым ожидаемым поведением алгоритма.
  • Нужно выделять допустимые и недопустимые классы, а также проверять границы и значения рядом с ними.
  • Один представитель класса сокращает число тестов, но не заменяет отдельную проверку важных границ.