Учёные из России освоили метод, позволяющий ускорить процесс тестирования программ почти в шесть раз

На международной конференции ICSME 2025, посвященной развитию и поддержке программных систем, которая проходит с 7 по 12 сентября в Окленде, Новой Зеландии, была представлена новая разработка российских IT-специалистов, позволяющая сократить время тестирования новых программ в 5,6 раза без ущерба для качества и не требующая сложных вычислений.ПрограммистИсточник: Freepik

Метод автоматизации тестирования и контроля качества программных продуктов, известный как Targeted Test Selection (T-TS), был разработан исследователями R&D-центра Т-Технологий во Владивостоке. Он позволяет запускать только часть тестов, при этом выявляя почти все потенциальные ошибки в коде.

Как пояснили разработчики, в крупных компаниях, которые регулярно выпускают обновления для программного обеспечения, тестирование каждой новой версии становится все более времязатратным и требует значительных ресурсов. Проверка занимает десятки часов и задействует мощность сотен серверов.

Новая методика позволяет запускать лишь около 15 процентов от полного набора тестов, но при этом обнаруживает более 95 процентов возможных ошибок, вызванных внесенными изменениями. Это значит, что разработчики получают обратную связь о проблемах значительно быстрее, а исправление ошибок обходится существенно дешевле.

Разработка уже была протестирована на программной инфраструктуре Т-Банка, где ежедневно осуществляется множество изменений в коде и проводятся тысячи тестов.

Авторы исследования сравнивают традиционное автоматическое тестирование с работой станции технического обслуживания, где проверяется одна деталь автомобиля за другой. Такой подход обеспечивает безопасность, однако его эффективность существенно снижается из-за значительных затрат времени и средств. При использовании нового метода автомеханики заранее знают, какие детали могут быть затронуты ремонтом, и начинают проверку именно с них.

В мире уже существуют способы ускорения тестирования, но чаще всего они связаны с так называемыми «картами покрытия кода». Эти карты показывают, какой процент исходного кода выполняется во время тестирования, и помогают понять, насколько эффективно проверяются различные части кода. Чтобы карты покрытия оставались актуальными, требуются дополнительные ресурсы и время на их обновление при любых минимальных изменениях.

Также мировые разработчики пытаются ускорить процесс тестирования с помощью машинного обучения, однако большинство решений все еще основывается на традиционных методах, таких как карты покрытия. Новый метод, напротив, позволяет обойтись без дорогостоящих сопоставлений кода, извлекая всю необходимую информацию из истории самого репозитория.

Система T-TS не требует карт покрытия кода и использует статистику предыдущих изменений. Она самостоятельно анализирует, кто и какие файлы изменил в коде, сколько раз это происходило и как часто эти изменения приводили к ошибкам. Для оценки изменений применяется принцип «мешка слов» (bag-of-words), который широко используется в поисковых системах. Он представляет текст в виде набора отдельных слов и не учитывает порядок их следования. Важны лишь сами слова и частота их появления. В методе T-TS каждая единица в «мешке» соответствует конкретному файлу или модулю программы. Кроме того, система отдельно учитывает файлы, близкие к тестам, что позволяет ей лучше адаптироваться к вносимым изменениям.

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

Результаты своей работы авторы исследования опубликовали в открытом доступе. Они подчеркивают, что метод совместим с любым языком программирования и не требует уникальной настройки для каждого проекта. Его можно интегрировать в инфраструктуру любой компании, работающей по принципу CI/CD — непрерывной автоматизированной разработки и обновления программного обеспечения, где скорость выпуска новых релизов имеет критическое значение.

На практике внедрение нового метода позволяет компаниям значительно сократить время, необходимое для выполнения тестового конвейера. Разработчики быстрее получают информацию об ошибках, и, следовательно, их проще и дешевле исправить. Метод работает даже при очень больших и сложных кодовых базах. Например, его могут использовать и внедрять крупные финтех-компании. Поскольку он доступен в виде открытого исходного кода, его легко интегрировать в бизнес и создавать собственные ИИ-продукты. Разработчики имеют возможность настраивать баланс между скоростью и полнотой контроля качества, что особенно актуально при необходимости быстрого выпуска обновлений программного обеспечения.

Фото: hi-tech.mail.ru

Оцените статью
Dfiles.ru