Проект Go объявил, что нативный фаззинг для языка Go, созданного Google, готов к бета-тестированию. Цель новой возможности автоматического тестирования – помочь разработчикам Go улучшить качество кода и обеспечить безопасность и отказоустойчивость систем, построенных на Go.

В бюллетень опубликован 3 июняРазработчики проекта Go описали фаззинг как тип автоматизированного тестирования, которое непрерывно манипулирует входными данными программы, чтобы найти такие проблемы, как паника или ошибки, которые в противном случае могли бы остаться незамеченными. Эти полуслучайные мутации данных могут обнаруживать крайние ошибки, которые могут пропустить модульные тесты. Поскольку фаззинг обеспечивает большее покрытие кода, чем традиционное тестирование, он особенно полезен при обнаружении уязвимостей и эксплойтов безопасности.

Чтобы начать работу с Go fuzz, разработчики могут запустить следующее:

$ go get golang.org/dl/gotip
$ gotip download dev.fuzz

Пока функция фаззинга не будет доступна в запланированных Выпуск Go 1.17 ожидается в августе, есть планы включить его в будущий выпуск. Есть надежда, что рабочий прототип позволит разработчикам начать писать нечеткие цели и предлагать обратную связь. Разработчики могут оставлять отзывы о Суслики Slack и сообщать о проблемах на GitHub.

Разработчики проекта Go сообщают, что фаззинг может потреблять много памяти и влиять на производительность машины во время работы. go test -fuzz по умолчанию запускается фаззинг SGOMAXPROCS процессы параллельно. Разработчики могут снизить количество используемых процессов при фаззинге, установив параметр -parallel флаг с go test.

Кроме того, разработчикам рекомендуется, чтобы механизм фаззинга записывал значения, расширяющие тестовое покрытие, в директор нечеткого кэша в пределах $GOCACHE/fuzz во время бега. В настоящее время нет ограничений на количество файлов или общее количество байтов, которые могут быть записаны в нечеткий кеш, поэтому он может занимать большие объемы памяти, вплоть до нескольких гигабайт. Кэш фаззинга можно очистить, запустив gotip clean -fuzzcache.

Авторские права © 2021 IDG Communications, Inc.


#Не #тратьте #время #на #поиск #труднодоступных #ошибок

Source link