Фаззинг или тестирование мусорными даннымиРабочие ситуации и задачи
Программист-самоучка. Будучи бухгалтером, начал писать на Visual Basic, вдохновился и ушёл в программирование. Начинал с разработки игр, писал на Lua и C#, но всегда тайно любил С++. Теперь в 2ГИС, где пишет на лучшем языке программирования.
Поисковый запрос в 2ГИС содержит 25+ параметров, начиная c введенного текста и заканчивая персональными предпочтениями пользователя. Чтобы обеспечить стабильную работу приложения, мы решили не ограничиваться тестовыми запросами, сгенерированными человеческой логикой. Так в нашей жизни появился фаззинг — тестирование приложения на неправильных, неожиданных или случайных данных.
Обсудим, что представляет собой фаззинг и когда его не стоит использовать. Расскажу о причинах выбора библиотеки libFuzzer, интеграции в наш пайплайн и результатах ловли труднонаходимых ошибок.