Fuzzing-тестирование. Практическое применение | Никита Догаев, лид команды контента на портале продавцов Wildberries
Никита работает на позиции лида команды контента в портале продавцов Wildberries и каждый день сталкивается с тем, как сотни тысяч продавцов из разных стран испытывают карточку товара на прочность.
Одна из основных задач команды контента — разработка и поддержка сервиса API для работы с карточками товаров. Не менее важной задачей является обработка текстового контента: вариация и нормализация. Работа всего маркетплейса невозможна без надежной интеграции мастер-системы с другими сервисами-потребителями данных.
В своем докладе на GolangConf Никита Догаев делится опытом применения фаззинга: от генерации текстов на армянском языке до тестировании SQL-запросов; можно ли использовать фаззер и unit-тестирование бок о бок, и какие баги удалось найти.
PS. Про нагрузочное тестирование тоже не забыли.
#wbtech #golang #wbspeakers #highload #golangconf
Фаззинг — это метод тестирования ПО, заключающийся в передаче приложению случайных неожиданных и некорректных данных. Хорошо применим там, где код сложен и физически невозможно (или программисты поленились, хе-хе) покрыть юнит-тестами все вариации входных параметров. Особенно актуально в ситуациях, когда «апишечка открыта наружу» и появляется +1 повод ее заддосить ;-)
Никита работает на позиции лида команды контента в портале продавцов Wildberries и каждый день сталкивается с тем, как сотни тысяч продавцов из разных стран испытывают карточку товара на прочность.
Одна из основных задач команды контента — разработка и поддержка сервиса API для работы с карточками товаров. Не менее важной задачей является обработка текстового контента: вариация и нормализация. Работа всего маркетплейса невозможна без надежной интеграции мастер-системы с другими сервисами-потребителями данных.
В своем докладе на GolangConf Никита Догаев делится опытом применения фаззинга: от генерации текстов на армянском языке до тестировании SQL-запросов; можно ли использовать фаззер и unit-тестирование бок о бок, и какие баги удалось найти.
PS. Про нагрузочное тестирование тоже не забыли.
#wbtech #golang #wbspeakers #highload #golangconf
👍26🔥18❤11😁2
Fuzzing-тестирование. Практическое применение
Фаззинг — это метод тестирования ПО, заключающийся в передаче приложению случайных неожиданных и некорректных данных.
Этот метод лучше использовать при тестировании сложного кода, когда стандартным unit-тестированием очень сложно покрыть все вариации входных данных. Обычно разработчики прокидывают несколько тест-кейсов для тех моментов, где может сплоховать программа, но не везде. И с помощью фаззинга мы можем полностью покрыть весь код.
Большая хабростатья от Никиты Догаева, лида команды контента в портале продавцов Wildberries по мотивам выступления на GolangConf.
#wbtech #wb_habr #golang #wbspeakers #highload #golangconf
Фаззинг — это метод тестирования ПО, заключающийся в передаче приложению случайных неожиданных и некорректных данных.
Этот метод лучше использовать при тестировании сложного кода, когда стандартным unit-тестированием очень сложно покрыть все вариации входных данных. Обычно разработчики прокидывают несколько тест-кейсов для тех моментов, где может сплоховать программа, но не везде. И с помощью фаззинга мы можем полностью покрыть весь код.
Большая хабростатья от Никиты Догаева, лида команды контента в портале продавцов Wildberries по мотивам выступления на GolangConf.
#wbtech #wb_habr #golang #wbspeakers #highload #golangconf
👍13❤6🔥4
Дайджест выступлений 🔥
Сезон конференций в разгаре, собрали интересные доклады от наших спикеров:
🟣 От Netlink к eBPF: радикальное ускорение трассировки интернет-пакетов, Вадим Калашников, Golang-разработчик
4 июня, 11:10
🟣 Путь к слоистой архитектуре приложения, Павел Погорельчук, Lead команды разработки
4 июня, 11:10
🟣 Эмулируем NES на Go, Максим Полетаев, Golang-разработчик
4 июня, 17:00
🟣 Игры, в которые играют инженеры, Илья Мирин, руководитель кластера «Модерация контента»
5 июня, 15:50
#wbtech #wbspeakers #wbsecurity #golangconf #techleadconf #ctoconf
Сезон конференций в разгаре, собрали интересные доклады от наших спикеров:
4 июня, 11:10
Доклад не только рассказывает о нюансах работы EBPF с Go, но и дает конкретный кейс с решением, как повысить сетевую производительность, обходя стандартные механизмы ОС (такие, как Netlink). Будет полезно, даже если вы совсем ничего не знаете про EBPF.
4 июня, 11:10
Во время работы мне часто приходилось сталкиваться с сервисами, созданными с учетом слоистой архитектуры и DDD. Однако в большинстве случаев в них возникали одни и те же проблемы. Поэтому я решил обобщить свой опыт, связанный с этими трудностями, и рассказать о том, как мы их преодолевали, какой путь прошли, чтобы сформировать текущую архитектуру и какие преимущества это нам принесло.
4 июня, 17:00
В докладе я расскажу о своем опыте работы над эмулятором консоли NES (известной у нас как Денди). Мы исследуем архитектуру легендарной консоли 90-х и разберем фундаментальные принципы эмуляции: от интерпретации машинного кода процессора MOS 6502 до графического пайплайна и вывода изображения на экран, и даже затронем реализацию сетевого мультиплеера с компенсацией задержек.
5 июня, 15:50
Техлиды часто встречаются с неявным сопротивлением внедрению решений со стороны участников своих команд. Это может выглядеть как бесконечные совещания или споры «ни о чем». Илья Мирин расскажет, как при помощи практичных приемов сдвинуть ситуацию с мертвой точки и избежать попадания в эту точку.🟣 Как управлять командой 1000+ сотрудников, Павел Соломин, СТО Мобильного приложения для клиентов
6 июня, 17:00
СТО управляют сотнями, а иногда и тысячами сотрудников, каждый из которых сильнее их в своей сфере. Как руководителю балансировать между авторитетом и доверием? Как делегировать и не потерять контроль? Ответим на главный вопрос: «А зачем СТО нужен?».
#wbtech #wbspeakers #wbsecurity #golangconf #techleadconf #ctoconf
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤4👍4