Как тестировать
Как понять, что алгоритм, который ты придумал — не работает для всех случаев?
Нужно построить контрпример. Можно это делать ручками перебирая различные тесты, а можно автоматически.
Автоматическое нахождение контрпримера
Cтресс-тестирование — это метод, с помощью которого мы можем запустить наше решение (которое, не правильное) на случайных тестах и сопоставить его результат с вывод решения, которое является решением грубой силы (скорее всего медленное, но точно правильное).
Правильность медленного решения можно проверить, отослав код и получив TL
.
Что надо :
- Решение, которое мы хотим протестировать.
- Решение методом грубой силы, которое даёт
правильные ответы
. - Генератор для генерации тестовых примеров, которые соответствуют задачи.
Принцип работы:
- Генерировать случайный тест. Лучше его записать в файл.
- Запустить решение, которое даёт правильный ответ.
- Запустить решение, которое неправильное.
- Сравнить результаты вывода двух решений. Скорее всего просто на равенство строк, но иногда
чекер
может быть сложнее.
Можно всё сделать в одном файле, но это менее удобнее.
Написание скрипта
- Напишите генератор теста и проверку ответов двух решений в одном файле.
- Лучше использовать
python
/bash
. Получается очень кратко и быстро писать. - Используйте
seed
для генератора. Чтобы при перезапуске стресс-теста проверять предыдущие тесты.