Автоматик коде. СанктПетербургский государственный
Скачать 0.58 Mb.
|
АпробацияСхема экспериментаВ исходной статье[10] для экспериментов использовались Amazon EC2 Intel Xeon 2.6GHz машины, запущенные на 64-битном Ubuntu сер- вере (для fbc использовалась 32-битная виртуальная машина с Intel Core 2.7Ghz). В данной работе все эксперименты были проделаны с использованием настроенного docker контейнера на 64-битной Ubuntu машине с процессором Intel Core i5-3317U 1.70GHz × 4 с 8GB оператив- ной памятью и 32GB SSD-кешем. В исходной статье Prophet запускался на первых 200 локациях с временными ограничениями в 12 часов. В связи с тем, что локализа- тор недостаточно хорошо находит место ошибки для php-308525-308529 (правильная локация имеет 513 ранг), для проверки исправления ново- го класса ошибки в ходе данной работы вручную добавляется необхо- димая локация в конец первых 200 локаций перед этапом, отвечающим за генерацию исправлений. Анализ результатовВ итоге через 134 минуты пользовательского времени (665 минут реального и 37 минут системного времени) было сгенерировано исправ- ление для php-308525-308529 см. рис. 5. Пространство поиска содержало 42590 всевозможных кандидатов. Среди них правильное исправление имело 2637 ранг исправления4 и было первым исправлением, который Prophet принял. Нетрудно заме- тить, что данное исправление идентично исправлению разработчика. Чтобы оценить влияние измененной модели корректного кода на су- ществующие исправляемые ошибки, было проведено сравнение работы исходной системы и системы с новой моделью, результаты показаны в таблице 3. Каждая запись второго столбца (“Пространство поиска”) 4Ранг исправления в отличие от ранга схемы трансформации считается по всему пространству поиска, то есть среди конкретных схем и инстанцированных схем с абстрактным условием. Рис. 5: Сгенерированное правильное исправление для php-308525- 308529 имеет вид X(Y/Z), где X – размер исходного пространства поиска до добавления новых признаков в модель, Y – число правильных, Z – чис- ло правдоподобный исправлений в пространстве поиска. Столбцы “Ранг до” и “Ранг после” соответствует рангу корректного исправления до и после добавления новых признаков в модель соответственно. Столб- цы “Function Mutation” и “Ранг схемы после” соответствует количеству исправлений вида FunctionMutation и рангу правильной схемы транс- формации после добавления новых признаков в модель. В результате использования новой модели корректного кода пра- вильные исправления были найдены первыми среди правдоподобных, ранги правильных исправлений в основном стали лучше и пространство поиска увеличилось не более чем на 10 конкретных схем трансформа- ций. |