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