Proptest
Links:
Proptest - это инструмент для тестирования на основе свойств (property-based testing). Он не проверяет память и не следит за выполнением кода. Вместо этого он автоматически генерирует тысячи случайных входных данных для твоей функции и проверяет, выполняются ли заданные тобой правила.
Пример работы
Для нахождения каких проблем нужен Proptest?
| Тип проблемы | Пример |
|---|---|
| Крайние случаи | Деление на ноль, выход за границы массива |
| Неочевидные баги | Функция работает для 1, 2, 3, но ломается на 127 из-за переполнения |
| Нарушение инвариантов | “После сортировки длина массива не изменилась” |
| Алгоритмические ошибки | “Если я зашифрую и расшифрую — получится исходное сообщение” |
| Регрессии | Старый код работал для всех чисел, новый — нет |