Задание № 23 · ЕГЭ

Случайное тестирование

Проверка алгоритма на случайно сгенерированных входных данных
2 мин чтенияСложность: Обновлено 29 сентября 2026

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

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

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

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

№
Пример

Пусть алгоритм должен найти максимум в массиве. Генератор случайно создаёт массивы разной длины, например \([4, 1, 9, 2]\), \([-3, -8]\) или \([5, 5, 5]\). Результат проверяемого алгоритма сравнивают с результатом простой функции, перебирающей все элементы. Так можно обнаружить ошибку, из-за которой неправильно обрабатываются отрицательные числа или массив из одного элемента.

!
Не путайте

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

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

Что нужно сделать, если ответы проверяемого и эталонного алгоритмов различаются?

После обнаружения расхождения тест сохраняют, упрощают и используют повторно. Это помогает выполнить локализацию ошибки в алгоритме и дополнить набор постоянных проверок.

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

Главное

  • Случайное тестирование автоматически проверяет алгоритм на случайно созданных допустимых входах.
  • Результаты сравнивают с эталонным решением или известным правильным ответом.
  • Случайные данные дополняют, но не заменяют граничные и специально подобранные тесты.