Большинство разработчиков считают, что fuzzing - это когда какому-нибудь json-парсеру подают случайные строчки в надежде найти segfault. Это важный кейс, но если посмотреть шире, эта технология может предоставить гораздо больше возможностей практически каждому разработчику. Например, можно особым образом генерировать входные параметры для вашей системы и проверять, всегда ли она работает так, как вы ожидали. То есть проверять не набор отобранных примеров, а свойство системы.
Такой метод тестирования называется property based testing. Он уже давно используется в нашей команде и дает большую уверенность в работоспособности нашего кода. В докладе я расскажу, что это такое, и покажу реальные примеры, где один такой тест заменяет десятки классических юнит-тестов.