Автоматик коде. СанктПетербургский государственный
Скачать 0.58 Mb.
|
ЗаключениеВ ходе выполнения данной работы были получены следующие ре- зультаты. Реализована генерация исправлений для новых классов ошибок, исправляемых вынесением первого утверждения функции перед вызывающим кодом. Расширена и обучена новая модель корректного кода посредством добавления новых признаков для поддержки исправлений, изме- няющих код в 2 местах программы, и добавления новых примеров в тренировочный набор данных. Выявлены самые значимые признаки успешных исправлений и проведен анализ влияния новых тренировочных примеров на па- раметры модели корректного кода. В результате было расширено пространство генерируемых исправ- лений в инструменте Prophet[10] и исправлена ошибка из тестового на- бора данных. Исходный код данной работы представлен в репозитории проекта[22]. Список литературыAutomated fixing of programs with contracts / Yi Wei, Yu Pei, Carlo A Furia et al. // Proceedings of the 19th international symposium on Software testing and analysis / ACM. – 2010. – P. 61– 72. Automatic error elimination by horizontal code transfer across multiple applications / Stelios Sidiroglou-Douskos, Eric Lahtinen, Fan Long, Martin Rinard // ACM SIGPLAN Notices / ACM. – Vol. 50. – 2015. – P. 43–54. Automatic fix for C integer errors by precision improvement / Xi Cheng, Min Zhou, Xiaoyu Song et al. // Computer Software and Applications Conference (COMPSAC), 2016 IEEE 40th Annual / IEEE. – Vol. 1. – 2016. – P. 2–11. Automatic repair of buggy if conditions and missing preconditions with SMT / Favio DeMarco, Jifeng Xuan, Daniel Le Berre, Martin Monperrus // Proceedings of the 6th International Workshop on Constraints in Software Testing, Verification, and Analysis / ACM. – 2014. – P. 30–39. Automatically patching errors in deployed software / Jeff H Perkins, Sunghun Kim, Sam Larsen et al. // Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles / ACM. – 2009. – P. 87–102. Cheng Xi. RABIEF: range analysis based integer error fixing // Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering / ACM. – 2016. – P. 1094–1096. De Moura Leonardo, Bjørner Nikolaj. Satisfiability modulo theories: introduction and applications // Communications of the ACM. – 2011. – Vol. 54, no. 9. – P. 69–77. Fix Bug 54058, invalid utf-8 doesn’t set json_encode() in all cases. – URL: https://github.com/php/php-src/search?q=ecb9d80&type= Commits. Long Fan, Rinard Martin. Staged program repair with condition synthesis // Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering / ACM. – 2015. – P. 166–178. Long Fan, Rinard Martin C. Automatic patch generation by learning correct code // POPL. – 2016. Mechtaev Sergey, Yi Jooyong, Roychoudhury Abhik. Directfix: Looking for simple program repairs // Proceedings of the 37th International Conference on Software Engineering-Volume 1 / IEEE Press. – 2015. – P. 448–458. Mechtaev Sergey, Yi Jooyong, Roychoudhury Abhik. Angelix: Scalable multiline program patch synthesis via symbolic analysis // Software Engineering (ICSE), 2016 IEEE/ACM 38th International Conference on / IEEE. – 2016. – P. 691–701. Safe memory-leak fixing for c programs / Qing Gao, Yingfei Xiong, Yaqing Mi et al. // Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on / IEEE. – Vol. 1. – 2015. – P. 459–470. Samanta Roopsha, Olivo Oswaldo, Emerson E Allen. Cost- aware automatic program repair // International Static Analysis Symposium / Springer. – 2014. – P. 268–284. Semfix: Program repair via semantic analysis / Hoang Duong Thien Nguyen, Dawei Qi, Abhik Roychoudhury, Satish Chandra // Proceedings of the 2013 International Conference on Software Engineering / IEEE Press. – 2013. – P. 772–781. Weimer Westley, Fry Zachary P, Forrest Stephanie. Leveraging program equivalence for adaptive program repair: Models and first results // Automated Software Engineering (ASE), 2013 IEEE/ACM 28th International Conference on / IEEE. – 2013. – P. 356–366. An analysis of patch plausibility and correctness for generate-and- validate patch generation systems / Zichao Qi, Fan Long, Sara Achour, Martin Rinard // Proceedings of the 2015 International Symposium on Software Testing and Analysis / ACM. – 2015. – P. 24–36. The source code of PHP interpreter. – URL: https://github.com/ php/php-src. The strength of random search on automated program repair / Yuhua Qi, Xiaoguang Mao, Yan Lei et al. // Proceedings of the 36th International Conference on Software Engineering / ACM. – 2014. – P. 254–265. A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each / Claire Le Goues, Michael Dewey-Vogt, Stephanie Forrest, Westley Weimer // Software Engineering (ICSE), 2012 34th International Conference on / IEEE. – 2012. – P. 3–13. A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each / Claire Le Goues, Michael Dewey-Vogt, Stephanie Forrest, Westley Weimer // Software Engineering (ICSE), 2012 34th International Conference on / IEEE. – 2012. – P. 3–13. Исходный код инструмента Prophet с расширенным простран- ством исправляемых классов ошибок. – URL: https://github. com/Guzele/prophet-src. Якимов Иван Александрович, Кузнецов Александр Сергеевич. По- иск недостающих вызовов библиотечных функций с использовани- ем машинного обучения // Труды института системного програм- мирования РАН. – 2017. – Т. 29, № 6. – С. 117–134. Санкт-Петербург 2018 |