Корпорация Google представила новое программное обеспечение для тестирования Python-кода с помощью техники фаззинга. Программа получила название Atheris.
Новинка нужна для автоматического поиска ошибок в коде Python и нативных расширений. Atheris будет без конца посылать различные данные в приложение, наблюдать за его поведением и пробовать более специфичные параметры.
Фаззинг – это методика тестирования программ с помощью передачи ей случайных данных. Обычно ее используют для тестирования кода С и С++.
Один из ключевых сценариев использования фаззеров – поиск разницы в поведении двух библиотек, призванных выполнять одну и ту же задачу. К примеру, пакеты idna и libidn2 нужны для преобразования интернационализированных доменных имен, но, судя по данным из Atheris, они не всегда выдают один и тот же результат. По словам разработчиков, Atheris лучше всего проявит себя на чистом Python-коде. И только в том случае, когда вы можете четко указать, какой результат выполнения кода правильный, а какой нет.
Новый фаззинг-движок поддерживает Python 2.7 и Python 3.3 (и новее). Создатели Atheris рекомендуют использовать версию 3.8 и новее, чтобы добиться наилучших результатов. Atheris имеет открытый исходный код и распространяется бесплатно. Его в скором времени можно будет использовать на платформе OSS-Fuzz, которую Google использует для тестирования кода других приложений.
Atheris доступен для загрузки из соответствующего репозитория.
Комментарии