Abstract
Automated program repair (APR) techniques introduced to fix faults through the insertion of new code or modifying existing ones until the program under test passes a given set of test cases called repair tests. MUTation based Automated Program Repair (MUT-APR) is a prototype tool built on the top of GenProg to fix binary operator faults in C programs. MUT-APR is a configurable mutation-based APR tool that varies the APR mechanisms and components to find the best combination for a problem under study. The implementation of MUT-APR components is discussed in this paper as well as how the tool can be used to repair faults. Limitations of the existing framework are also discussed.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Debroy, V., Wong, W.E.: Using mutation to automatically suggest fixes for faulty programs. In: 2010 Third International Conference on Software Testing, Verification and Validation (ICST), April 2010, pp. 65 –74 (2010)
Assiri, F.Y., Bieman, J.M.: An assessment of the quality of automated program operator repair. In: Proceedings of the 2014 ICST Conference, ICST 2014 (2014)
Assiri, F.Y., Bieman, J.M.: The impact of search algorithms in automated program repair. Procedia Comput. Sci. 62, 65–72 (2015)
Kern, C., Esparza, J.: Automatic error correction of Java programs. In: Proceedings of the 15th International Conference on Formal methods for industrial critical systems, FMICS 2010, pp. 67–81. Springer, Heidelberg (2010)
Ackling, T., Alexander, B., Grunert, I.: Evolving patches for software repair. In: Proceedings of the 13th Annual Conference on Genetic and Evolutionary Computation, GECCO 2011, pp. 1427–1434. ACM, New York (2011)
Arcuri, A.: On the automation of fixing software bugs. In: Companion of the 30th International Conference on Software Engineering, ICSE Companion 2008, pp. 1003–1006. ACM, New York (2008)
Arcuri, A., Yao, X.: A novel co-evolutionary approach to automatic software bug fixing. In: IEEE Congress on Evolutionary Computation, CEC 2008. IEEE World Congress on Computational Intelligence, June 2008, pp. 162 –168 (2008)
Nguyen, H.D.T., Qi, D., Roychoudhury, A., Chandra, S.: Semfix: program repair via semantic analysis. In: Proceedings of the 2013 International Conference on Software Engineering, pp. 772–781. IEEE Press (2013)
Konighofer, R., Bloem, R.: Automated error localization and correction for imperative programs. In: Formal Methods in Computer-Aided Design (FMCAD), 30 November 2011, vol. 2, pp. 91–100 (2011)
Forrest, S., Nguyen, T., Weimer, W., Le Goues, C.: A genetic programming approach to automated software repair. In: Proceedings of the 11th Annual Conference on Genetic and evolutionary computation, GECCO 2009, pp. 947–954. ACM, New York (2009)
Weimer, W., Nguyen, T., Le Goues, C., Forrest, S.: Automatically finding patches using genetic programming. In: Proceedings of the 31st International Conference on Software Engineering, ICSE 2009, pp. 364–374. IEEE Computer Society, Washington, DC, USA (2009)
Weimer, W., Forrest, S., Le Goues, C., Nguyen, T.: Automatic program repair with evolutionary computation. Commun. ACM 53(5), 109–116 (2010)
Le Goues, C., Nguyen, T., Forrest, S., Weimer, W.: GenProg: a generic method for automatic software repair. IEEE Trans. Softw. Eng. 38(1), 54–72 (2012)
Qi, Y., Mao, X., Lei, Y., Wang, C.: Using automated program repair for evaluating the effectiveness of fault localization techniques. In: Proceedings of the 2013 International Symposium on Software Testing and Analysis, ISSTA 2013, pp. 191–201. ACM, New York (2013)
Qi, Y., Mao, X., Lei, Y.: Efficient automated program repair through fault-recorded testing prioritization. In: 2013 29th IEEE International Conference on Software Maintenance (ICSM), September 2013, pp. 180–189 (2013)
Perkins, J.H., Kim, S., Larsen, S., Amarasinghe, S., Bachrach, J., Carbin, M., Pacheco, C., Sherwood, F., Sidiroglou, S., Sullivan, G., Wong, W.-F., Zibin, Y., Ernst, M.D., Rinard, M.: Automatically patching errors in deployed software. In: Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, SOSP 2009, pp. 87–102. ACM, New York (2009)
Carzaniga, A., Gorla, A., Mattavelli, A., Perino, N., Pezze, M.: Automatic recovery from runtime failures. In: Proceedings of the 2013 International Conference on Software Engineering, pp. 782–791. IEEE Press (2013)
Demsky, B., Ernst, M.D., Guo, P.J., McCamant, S., Perkins, J.H., Rinard, M.: Inference and enforcement of data structure consistency specifications. In: Proceedings of the 2006 International Symposium on Software Testing and Analysis, ISSTA 2006, pp. 233–244. ACM, New York (2006)
Elkarablieh, B., Khurshid, S.: Juzi. In: ACM/IEEE 30th International Conference on Software Engineering, ICSE 2008, pp. 855–858. IEEE (2008)
Jin, G., Song, L., Zhang, W., Lu, S., Liblit, B.: Automated atomicity-violation fixing. In: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2011, pp. 389–400. ACM, New York (2011)
Liu, P., Zhang, C.: Axis: automatically fixing atomicity violations through solving control constraints. In: Proceedings of the 2012 International Conference on Software Engineering, pp. 299–309. IEEE Press (2012)
Sumi, S., Higo, Y., Hotta, K., Kusumoto, S.: Toward improving graftability on automated program repair. In: 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 511–515. IEEE (2015)
Jiang, M., Chen, T.Y., Kuo, F.-C., Towey, D., Ding, Z.: A metamorphic testing approach for supporting program repair without the need for a test oracle. J. Syst. Softw. 126, 127–140 (2016)
Microsoft Zune affected by ‘bug’, December 2008. http://news.bbc.co.uk/2/hi/technology/7806683.stm
Assiri, F.Y., Bieman, J.M.: Fault localization for automated program repair: effectiveness, performance, repair correctness. Softw. Qual. J. 25, 171–199 (2015)
CIL Intermediate Language. http://kerneis.github.io/cil/
Miller, B.L., Goldberg, D.E.: Genetic algorithms, tournament selection, and the effects of noise. Complex Syst. 9(3), 193–212 (1995)
Dallmeier, V., Zeller, A., Meyer, B.: Generating fixes from object behavior anomalies. In: Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering, ASE 2009, pp. 550–554. IEEE Computer Society, Washington, DC, USA (2009)
Wei, Y., Pei, Y., Furia, C.A., Silva, L.S., Buchholz, S., Meyer, B., Zeller, A.: Automated fixing of programs with contracts. In: Proceedings of the 19th International Symposium on Software Testing and Analysis, ISSTA 2010, pp. 61–72. ACM, New York (2010)
Wilkerson, J.L., Tauritz, D.: Coevolutionary automated software correction. In: Genetic and Evolutionary Computation Conference, pp. 1391–1392 (2010)
Kim, D., Nam, J., Song, J., Kim, S.: Automatic patch generation learned from human-written patches. In: Proceedings of the 2013 International Conference on Software Engineering, pp. 802–811. IEEE Press (2013)
Le Goues, C., Dewey-Vogt, M., Forrest, S., Weimer, W.: A systematic study of automated program repair: fixing 55 out of 105 bugs for \$8 each. In: Proceedings of the 2012 International Conference on Software Engineering, ICSE 2012, pp. 3–13. IEEE Press, Piscataway (2012)
Le Goues, C., Weimer, W., Forrest, S.: Representations and operators for improving evolutionary software repair. In: Proceedings of the Fourteenth International Conference on Genetic and Evolutionary Computation Conference, GECCO 2012, pp. 959–966. ACM, New York (2012)
Jones, J.A., Harrold, M.J.: Empirical evaluation of the tarantula automatic fault-localization technique. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, ASE 2005, pp. 273–282. ACM, New York (2005)
Qi, Y., Mao, X., Lei, Y., Dai, Z., Wang, C.: Does genetic programming work well on automated program repair? In: 2013 Fifth International Conference on Computational and Information Sciences (ICCIS), pp. 1875–1878. IEEE (2013)
Qi, Y., Mao, X., Lei, Y., Dai, Z., Qi, Y., Wang, C.: Empirical effectiveness evaluation of spectra-based fault localization on automated program repair. In: 2013 IEEE 37th Annual Computer Software and Applications Conference (COMPSAC), July 2013, pp. 828–829 (2013)
Pei, Y., Furia, C.A., Nordio, M., Meyer, B: Automated program repair in an integrated development environment. In: 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (ICSE), vol. 2, pp. 681–684. IEEE (2015)
Liu, C., Yang, J., Tan, L., Hafiz, M.: R2Fix: automatically generating bug fixes from bug reports. In: 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation (ICST), pp. 282–291. IEEE (2013)
Kaleeswaran, S., Tulsian, V., Kanade, A., Orso, A.: Minthint: automated synthesis of repair hints. In: Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, pp. 266–276. ACM, New York (2014)
Hofer, B., Wotawa, F.: Mutation-based spreadsheet debugging. In: 2013 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), November 2013, pp. 132–137 (2013)
Acknowledgment
The authors would like to thank Westley Weimer and his research group for sharing GenProg, and Yuhua Qi et al. [14] for sharing the GenProg-FL tool.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Assiri, F.Y., Bieman, J.M. (2019). MUT-APR: MUTation-Based Automated Program Repair Research Tool. In: Arai, K., Kapoor, S., Bhatia, R. (eds) Advances in Information and Communication Networks. FICC 2018. Advances in Intelligent Systems and Computing, vol 887. Springer, Cham. https://doi.org/10.1007/978-3-030-03405-4_17
Download citation
DOI: https://doi.org/10.1007/978-3-030-03405-4_17
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-03404-7
Online ISBN: 978-3-030-03405-4
eBook Packages: EngineeringEngineering (R0)