Фаззинг — это метод тестирования ПО, заключающийся в передаче приложению случайных неожиданных и некорректных данных. Хорошо применим там, где код сложен и физически невозможно (или программисты поленились, хе-хе) покрыть юнит-тестами все вариации входных параметров. Особенно актуально в ситуациях, когда «апишечка открыта наружу» и появляется +1 повод ее заддосить ;-)
Никита работает на позиции лида команды контента в портале продавцов Wildberries и каждый день сталкивается с тем, как сотни тысяч продавцов из разных стран испытывают карточку товара на прочность.
Одна из основных задач команды контента — разработка и поддержка сервиса API для работы с карточками товаров. Не менее важной задачей является обработка текстового контента: вариация и нормализация. Работа всего маркетплейса невозможна без надежной интеграции мастер-системы с другими сервисами-потребителями данных.
В своем докладе на GolangConf Никита Догаев делится опытом применения фаззинга: от генерации текстов на армянском языке до тестировании SQL-запросов; можно ли использовать фаззер и unit-тестирование бок о бок, и какие баги удалось найти.
PS. Про нагрузочное тестирование тоже не забыли.
#wbtech #golang #wbspeakers #highload #golangconf
