Илья Муравьёв, Егор Куликов — Автоматическая генерация тестов как битва с драконами
Ближайшая конференция:
#java #jokerconf #jpoint #IT #conference #jugrugroup
Автотесты очень полезны, хотя писать их скучно, некогда, да еще и сценарии продумывать нужно. Появление и широкая доступность больших языковых моделей как будто предлагают решение: попроси модель выдать тесты — и дело в шляпе. В самых простых случаях это действительно так, хотя даже здесь сгенерированный код может не компилироваться. В более сложных – можно получить в ответ что-то совсем бесполезное, потому что языковой модели не рассказали об особенностях проекта. Какие детали действительно существенны? Можно ли автоматизировать построение запроса? Проанализировав тесты в Java-приложениях, мы видим, что большинство из них подчиняется одному из шаблонов, чья реализация вручную требует большого количества рутинной работы. Если сгенерировать шаблон программно, останется только заполнить его данными и подкорректировать. А если пойти дальше и автоматизировать подбор данных, чтобы не забыть про неочевидные сценарии? Можно — для этого существуют техники символьного исполнения и фаззинга. А что, если какие-то тесты в вашем проекте уже есть? Их можно использовать в качестве образцов для языковой модели при генерации новых тестов. В какой степени это скажется на качестве результата? Предлагаем разобраться вместе.
Скачать презентацию с сайта —