Отладка — этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки. Отладка — очень трудоемкая работа. Когда программные приложения состоят из множества файлов и нескольких миллионов строк кода, обнаружение ошибки похоже на поиск иголки в стоге сена. Это также признал Технологический университет Граца. Его исследования показывают, что от 30 до 90 процентов общего времени разработки тратится на исправление ошибок.
Биргит Хофер и Томас Хирш из Института программных технологий Технологического университета Граца разработали решение, основанное на существующих методах обработки естественного языка и существующих метриках, которое может значительно ускорить поиск ошибочных мест кода и, следовательно, отладку. Об этом сообщает университет в пресс-релизе.
Первым делом ученые спросили программистов, на что больше всего тратится время при отладке. Стало очевидным, что локализация, то есть ограничение поиска нужным участком программного кода, является чрезвычайно трудоемкой задачей.
Основываясь на этих знаниях, исследователи намеревались найти решение этой проблемы, которое также можно было бы масштабировать для приложений с большим количеством кода. Существуют хорошо функционирующие подходы на основе моделей, при которых программа преобразуется в логическое представление (называемое моделью), но всё это работает только для небольших программ. Это связано с тем, что с увеличением объема кода вычислительные усилия растут экспоненциально.
Новый подход представляет определенные свойства программного обеспечения в цифрах — например, читаемость или сложность кода — и может также использоваться для больших объемов кода, поскольку вычислительные усилия возрастают только линейно.
Чтобы найти ошибку, тестировщики должны заполнить отчет об ошибке, в котором описывают ошибку и вносят информацию о версии программного обеспечения, своей операционной системе, этапах своей работы до появления ошибки и другую соответствующую информацию. На основании этого комбинация обработки естественного языка и метрик анализирует весь код.
Затем приложение предоставляет программистам список из 5–10 файлов, содержащих участки кода, которые могут быть причиной ошибки. Они ранжированы по вероятности. Также имеется информация о том, какой тип ошибки наиболее вероятен. Используя эти данные, проблему можно быстрее отследить и устранить.
Система отладки AmadeusBugProject свободно доступна на GitHub. Документы и репозитории, связанные с этим исследованием, можно найти на сайте проекта amadeus.ist.tugraz.at.