Сотрудники факультета вычислительной математики и кибернетики МГУ нашли способ сделать автоматически генерируемые тесты для программ более удобными. Свою разработку они уже проверили на практике — первые эксперименты подтвердили, что метод работает и может быть использован в реальных системах.

В разработке ПО так называемые юнит-тесты нужны для того, чтобы проверять отдельные куски кода на корректность. Однако когда такие тесты пишет искусственный интеллект, они часто страдают от недочетов в структуре: их становится трудно поддерживать и разбирать в них.
Предложенный подход меняет сам принцип обучения нейросети. Вместо общей оценки «хорошо или плохо» система выдает модели четкий сигнал: статический анализатор находит изъяны в дизайне теста и назначает штраф, а за чистую работу следует поощрение. В результате алгоритм постепенно запоминает, каких ошибок стоит избегать. В перспективе эту технику можно распространить и на другие требования — например, приучать ИИ делать результат не просто рабочим, а понятным и аккуратным для человека.
Как пояснил доцент кафедры алгоритмических языков ВМК Игорь Головин, для этого использовалось обучение с подкреплением — чтобы искусственный интеллект на собственном опыте учился обходить типичные дефекты и выдавал тесты более высокого качества.
Для тренировки модели исследователи собрали базу примеров на основе реальных Python-проектов: они включали сами программные методы и готовые тесты к ним. А чтобы найти в этих тестах структурные недостатки, к работе подключили инструменты статического анализа.
Читайте также:
NVIDIA испытала систему, где ИИ-агенты сами атакуют и защищаются одновременно
ИИ-агенты будут сами решать, что и кому передавать в сетях 7G
Ультразвуковые сканеры с ИИ начали выпускать серийно в Москве