Компьютерные программы часто содержат дефекты или ошибки, которые необходимо найти и исправить. Эта ручная «отладка» обычно требует драгоценного времени и ресурсов. Чтобы помочь разработчикам отлаживать более эффективно, были предложены решения для автоматической отладки.
Один из подходов заключается в использовании информации, содержащейся в отчетах об ошибках. Другой просматривает информацию, собранную с помощью набора тестовых примеров. До сих пор, объясняет Дэвид Ло из Школы информационных систем Сингапурского университета управления (SMU), существовало «недостающее звено», которое не позволяло объединить эти потоки сбора информации.Доктор Ло вместе с коллегами из SMU разработал метод автоматической отладки под названием Adaptive Multimodal Bug Localization (AML).
AML собирает подсказки для отладки как из отчетов об ошибках, так и из тестовых примеров, а затем выполняет статистический анализ, чтобы определить элементы программы, которые могут содержать ошибки.«Хотя большинство прошлых исследований демонстрируют применимость подобных решений только для небольших программ и« искусственных ошибок »[ошибок, которые намеренно вставляются в программу для целей тестирования], наш подход может автоматизировать процесс отладки для многих реальных ошибок, которые влияют на большие программы, "Доктор Ло объясняет. AML был успешно протестирован на программах с более чем 300 000 строк кода.
Автоматически выявляя ошибочный код, разработчики могут сэкономить время и перенаправить свои усилия по отладке на разработку новых функций программного обеспечения для клиентов.Доктор Ло и его коллеги теперь планируют связаться с несколькими отраслевыми партнерами, чтобы сделать AML еще на шаг ближе к интеграции в качестве инструмента разработки программного обеспечения.
В планы доктора Ло на будущее входит разработка программного обеспечения для аналитики Интернет-масштаба. Это потребует анализа огромных объемов данных, которые пассивно существуют в бесчисленных репозиториях в Интернете, чтобы преобразовать ручные, трудоемкие и подверженные ошибкам задачи разработки программного обеспечения в автоматизированные действия, которые можно выполнять эффективно и надежно.
Это достигается, говорит доктор Ло, путем сбора мудрости масс, накопленной за годы усилий тысяч разработчиков программного обеспечения, скрытой в этих пассивных, распределенных и диверсифицированных источниках данных.
