Автоматическая отладка программного обеспечения

Компьютерные программы часто содержат дефекты или ошибки, которые должны быть найдены и восстановлены. Эта ручная «отладка» обычно требует бесценного времени и ресурсов.

Чтобы помочь разработчикам отладить более эффективно, автоматизированные решения для отладки были предложены. Один подход проходит информацию, доступную в отчетах об ошибках. Другой проходит информацию, собранную бегущим рядом прецедентов. До сих пор объясняет Дэвид Ло из Школы Singapore Management University (SMU) Информационных систем, было «недостающее звено», которое препятствует тому, чтобы эти нити сбора информации были объединены.

Доктор Ло, вместе с коллегами от SMU, развивал автоматизированный подход отладки, названный Адаптивной Многомодальной Локализацией Ошибки (AML). AML подбирает намеки отладки и из отчетов об ошибках и из прецедентов, и затем выполняет статистический анализ, чтобы точно определить элементы программы, которые, вероятно, будут содержать ошибки.«В то время как большинство прошлых исследований только демонстрирует применимость подобных решений для небольших программ и ‘искусственных ошибок’ [ошибки, которые намеренно введены в программу для тестирования целей], наш подход может автоматизировать процесс отладки для многих реальных ошибок, которые влияют на большие программы», объясняет доктор Ло.

AML был успешно оценен на программах больше чем с 300 000 линий кодекса. Автоматически определяя содержащий ошибки код, разработчики могут сэкономить время и перенаправить их усилие по отладке к проектированию новых программных функций для клиентов.Доктор Ло и его коллеги теперь планируют связаться с несколькими промышленными партнерами, чтобы взять AML один шаг ближе к интеграции как инструмент разработки программного обеспечения.Будущие планы доктора Ло включают развитие решения для аналитики программного обеспечения интернет-масштаба.

Это включило бы анализирующие значительные объемы данных, которые пассивно существуют в бесчисленных хранилищах в Интернете, чтобы преобразовать ручные, кропотливые и подверженные ошибкам задачи программирования в автоматизированные действия, которые могут быть выполнены эффективно и достоверно. Это сделано, говорит доктор Ло, получая мудрость масс – накопленный в течение многих лет усилия тысяч разработчиков программного обеспечения – скрытый в этих пассивных, распределенных и разносторонне развитых источниках данных.