Тестирование программ повышает уверенность в ее способности работать. Есть даже большие школы, которые говорят о тестах, например, TDD, BDD.

У ручных тестов есть недостаток, среди прочих - тесты пишет человек. В следствии этого - он не сможет проверить работу функции/класса/etc на всех данных. А когда нам быть уверенным что даже на самых невалидных данных работает корректно, то без случайных данных не обойтись.

fuzz-testing (Фаззинг) – методика тестирования, при которой на вход программы подаются невалидные, непредусмотренные или случайные данные.

Фаззинг позволяет расширить количество проверок за счет автоматической генерации данных. От сюда и вытекают недостатки - скорость прохождения тестов падает, есть большие сложности с генерацией сложных данных. Тяжело посчитать процент покрытия кода. Тяжело воспроизводить неправильные проходы тестов.

Инструментов, которые по принципу xUnit - две строчки написал и работает тест - для фаззинга нет. Или автор ошибается? Подскажите в комментариях

Ссылки:



Комментарии