Доцент Лаборатории разработки промышленного ПО Университета Иннополис Джу Йонг Ли предложил лучшее исследование в области скоростной автоматизации устранения багов и вошёл в десятку победителей The Facebook Testing and Verification Research Awards. Всего на грант прислали заявки 145 исследователей со всего мира. Учёный рассказал нам о работе над своим исследованием.
Об исследовании
Хотелось бы сразу четко обозначить, что же такое тестирование программного обеспечения. Основная его цель состоит в том, чтобы найти ошибки в работе программы, непрописанные разработчиками ПО. Если тесты пройдены успешно, то можно смело сказать, что ваша программа готова к выпуску.
Кажется, что найти ошибку в программном обеспечении не так сложно, особенно если у разработчика уже есть опыт использования ПО с багами. Да, есть ошибки, которые можно легко заметить и найти, но разработчики часто не видят уязвимые места, которые даже после их тщательной работы могут обнаружить хакеры. При помощи тестирования мы хотим находить ошибки прежде, чем станем жертвами несчастных случаев из-за нарушений безопасности и автомобильных аварий. Как сообщает The Associated Press, по вине программных ошибок автомобилей Toyota в 2000—2010 годах погибли 89 человек.
Главная цель проекта заключается в автоматическом исправлении технических дефектов или ошибок в программах. Практически любое программное обеспечение содержит ошибки, особенно с появлением непрерывных процессов разработки, тестирования и внедрения. Сейчас разработчикам становится всё сложнее устранять ошибки своевременно. Поэтому необходимо сохранять программное обеспечение как можно более защищенным от дефектов, и многие исследователи, в том числе и я, пытаются найти решение и разработать метод автоматического устранения неполадок. В этом конкретном проекте я стараюсь увеличить скорость автоматического исправления технических ошибок, чтобы максимально сократить время между их обнаружением и устранением.
Автоматическое исправление технических багов тестировалось многими исследователями, включая меня. Первые результаты были приняты индустрией, и такие компании как Фэйсбук уже начали использовать автоматическое устранение таких багов как неисправный поинтер, который указывает на несуществующую ячейку.
Что это решит
У всех есть свои интересы. Меня интересуют языки программирования, верификация программного обеспечения и тестирование, все это неразрывно связано с пониманием компьютерных программ. Не так давно автоматическое исправление ошибок стало для меня отдельной темой для исследования. Думаю, в будущем, ПО будет создаваться искусственным интеллектом, что позволит разработчикам уделять больше времени для работы над ключевыми программными компонентами.
За последнее десятилетие автоматическое исправление ошибок совершило довольно большой скачок вперед, благодаря усилиям разработчиков, в том числе и моим. Я работал над улучшением автоматически генерируемых патчей и автоматическим устранением ошибок. Думаю, что следующий прорыв, который нам необходим — быстрая скорость. До сих пор считалось, что автоматическое исправление ошибок будет использоваться в пакетном режиме, поэтому вопрос скорости не стоял на первом месте. Разработчики запускают автоматическое устранение ошибок и уходят домой. А к следующему утру участки, автоматически отлаженные за ночь, готовы к просмотру. Но опыт показывает, что исправлять ошибки лучше всего сразу же после написания баг-программы, пока разработчик еще помнит, что он там написал. Поэтому я предложил исследование высокоскоростных автоматических исправлений ошибок.
Конкуренты
Это был международный грант и разработки предлагали исследователи со всего мира. Facebook получили 145 заявок и отобрали 10 победителей, в числе которых был я. Это число (6,9%) показывает, насколько жестче была конкуренция по сравнению с получением гранта на топовых конференциях, где процент одобренных заявок обычно составляет 20%.
Все 10 лауреатов премии и их исследования опубликованы на сайте Facebook Research. Победителями стали известные исследователи в своих областях из престижных университетов: Университет Карнеги-Меллон, Университетский колледж Лондона, Калифорнийский университет в Беркли и Берлинский университет Гумбольдта.
Дальнейшие планы
Автоматизированное устранение ошибок — всё еще молодая область, и есть много вещей, над которыми стоит поработать. Нам нужен метод, который может исправить большее количество ошибок более точно и быстро, и я планирую работать в этом направлении. В перспективе хотелось бы, чтобы искусственный интеллект cмог не только исправлять ошибки, а помогал разработчикам на протяжении всего процесса работы.
Как многие другие академические исследования, проекты в области автоматического устранения технических ошибок не могут быть решены путём одного исследования. Надо учесть множество измерений для того, чтобы идея стала практичной. Как я уже говорил, я делаю акцент на скорости устранения технических ошибок, но скорость — это лишь одно измерение для решения задачи. Другие измерения включают в себя процент успешности распознавания ошибок, точность устранения проблем и т.д. В науке и технологиях улучшение одного измерения помогает развитию другого, и это то, чем я планирую заняться в будущем — продолжать расширять границы автоматического решения технических проблем в различных измерениях.
Что касается применимости подобной техники, ранее я использовал её в автоматическом формировании обратной связи для программ, написанных студентами. Данная, так называемая, умная система тьюторства является одной из областей, где результаты исследования могут быть применены.
Автор: T-Fazullin