Фаззинг: новое юнит тестирование. Дмитрий Вьюков, Google.
Фаззинг — это тестирование программ на неправильных, неожидаемых или случайных входных данных. В докладе я расскажу о типах фаззеров, о том, как они работают и о существующей реализации для Go — go-fuzz. Мы напишем и запустим настоящий фаззер. Найдём ошибки в стандартной библиотеке за пару минут. Так же я расскажу о том, как фаззеры могут угадывать правильные CRC чексуммы во входных данных, помогать с регрессионным тестированием, находить логические ошибки в коде и о том, как мы используем фаззинг в Google.