Skip to main content

On the Time Performance of Automated Fixes

  • Conference paper
  • First Online:

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 925))

Abstract

Automated program repair has made major strides showing its exciting potential, but all efforts to turn the techniques into practical tools usable by software developers hit a crucial blocking factor: the timing issue. Today’s techniques are slow. Too slow by an order of magnitude at least. The long response time implies that the currently available techniques cannot suit the actual needs of developers in the field. What developers want is a tool that can instantaneously propose a fix for a detected failure. A technique that can propose a patch instantaneously (or near-instantaneously) would provide the breakthrough that is required to turn automated program repair from an attractive research topic into a practical software engineering tool. Indeed, researchers have started to tackle this speed issue. In this paper, we survey recent approaches that were shown to be effective in speeding up automated program repair. In particular, we view automated program repair as a search problem—the ultimate goal of automated program repair is the search for a patch which is often preceded by other related searches such as a search for suspicious program locations, and a search for the specification for a patch. We describe how the problem of automated program repair has been decomposed into a series of search problems, and explain how these individual search problems have been solved. We expect that our paper would provide insight into how to speed up automated program repair by further optimizing the search for a patch.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    http://fbinfer.com/.

  2. 2.

    Angelix [16] reuses the synthesizer of DirectFix [15].

  3. 3.

    More technically, a partial MaxMST solver built on top of Z3 is used.

  4. 4.

    Depending on the type of a suspicious program location, SPR also directly generates a patch candidate without searching for a specification. We ignore those cases in this discussion.

References

  1. De Moura L, Bjørner N (2008) Z3: an efficient SMT solver. In: International conference on tools and algorithms for the construction and analysis of systems. Springer, Heidelberg, pp 337–340

    Google Scholar 

  2. D’Antoni L, Samanta R, Singh R (2016) Qlose: program repair with quantitative objectives. In: International conference on computer aided verification. Springer, Heidelberg, pp 383–401

    Google Scholar 

  3. Harman M, O’Hearn P (2018) From start-ups to scale-ups: opportunities and open problems for static and dynamic program analysis. In: SCAM

    Google Scholar 

  4. Hua J, Zhang M, Wang K, Khurshid S (2018) Towards practical program repair with on-demand candidate generation. In: ICSE, pp 12–23

    Google Scholar 

  5. Jha S, Gulwani S, Seshia SA, Tiwari A (2010) Oracle-guided component-based program synthesis. In: Proceedings of the 32nd ACM/IEEE international conference on software engineering, vol 1. ACM, pp 215–224

    Google Scholar 

  6. Kim D, Nam J, Song J, Kim S (2013) Automatic patch generation learned from human-written patches. In: Proceedings of the 2013 international conference on software engineering (ICSE). IEEE Press, pp 802–811

    Google Scholar 

  7. Le XBD, Chu DH, Lo D, Le Goues C, Visser W (2017) S3: syntax-and semantic-guided repair synthesis via programming by examples. In: ESEC/FSE, pp 593–604

    Google Scholar 

  8. Le XD, Lo D, Le Goues C (2016) History driven program repair. In: SANER, pp 213–224

    Google Scholar 

  9. Le XD, Thung F, Lo D, Le Goues C (2018) Overfitting in semantics-based automated program repair. Empir Softw Eng 23(5):3007–3033

    Article  Google Scholar 

  10. Le Goues C, Dewey-Vogt M, Forrest S, Weimer W (2012) A systematic study of automated program repair: fixing 55 out of 105 bugs for \$8 each. In: ICSE. IEEE, pp 3–13

    Google Scholar 

  11. Long F, Rinard M (2015) Staged program repair with condition synthesis. In: ESEC/FSE, pp 166–178

    Google Scholar 

  12. Long F, Rinard MC (2016) An analysis of the search spaces for generate and validate patch generation systems. In: Proceedings of the 38th international conference on software engineering (ICSE), pp 702–713

    Google Scholar 

  13. Mechtaev S, Gao X, Tan SH, Roychoudhury A (2018) Test-equivalence analysis for automatic patch generation. ACM Trans Softw Eng Methodol (TOSEM) 27(4):15

    Article  Google Scholar 

  14. Mechtaev S, Griggio A, Cimatti A, Roychoudhury A (2018) Symbolic execution with existential second-order constraints. In: ACM joint meeting on European software engineering conference and symposium on the foundations of software engineering (FSE). ACM, pp 389–399

    Google Scholar 

  15. Mechtaev S, Yi J, Roychoudhury A (2015) DirectFix: looking for simple program repairs. In: ICSE, pp 448–458

    Google Scholar 

  16. Mechtaev S, Yi J, Roychoudhury A (2016) Angelix: scalable multiline program patch synthesis via symbolic analysis. In: ICSE, pp 691–701

    Google Scholar 

  17. Nguyen HDT, Qi D, Roychoudhury A, Chandra S (2013) SemFix: program repair via semantic analysis. In: International conference on software engineering (ICSE). IEEE, pp 772–781

    Google Scholar 

  18. Pei Y, Furia CA, Nordio M, Wei Y, Meyer B, Zeller A (2014) Automated fixing of programs with contracts. IEEE Trans Softw Eng (TSE) 40(5):427–449

    Article  Google Scholar 

  19. Qi Y, Mao X, Lei Y, Dai Z, Wang C (2014) The strength of random search on automated program repair. In: Proceedings of the 36th international conference on software engineering (ICSE). ACM, pp. 254–265

    Google Scholar 

  20. Qi Z, Long F, Achour S, Rinard MC (2015) An analysis of patch plausibility and correctness for generate-and-validate patch generation systems. In: Proceedings of the 2015 international symposium on software testing and analysis (ISSTA), pp 24–36

    Google Scholar 

  21. Smith EK, Barr ET, Le Goues C, Brun Y (2015) Is the cure worse than the disease? Overfitting in automated program repair. In: Proceedings of the 2015 10th joint meeting on foundations of software engineering (FSE). ACM, pp 532–543

    Google Scholar 

  22. Tan SH, Yoshida H, Prasad MR, Roychoudhury A (2016) Anti-patterns in search-based program repair. In: Proceedings of the 2016 24th ACM SIGSOFT international symposium on foundations of software engineering. ACM, pp 727–738

    Google Scholar 

  23. Weimer W, Fry ZP, Forrest S (2013) Leveraging program equivalence for adaptive program repair: models and first results. In: Automated software engineering (ASE). IEEE, pp 356–366

    Google Scholar 

  24. Weimer W, Nguyen T, Le Goues C, Forrest S (2009) Automatically finding patches using genetic programming. In: ICSE, pp 364–374

    Google Scholar 

  25. Xiong Y, Liu X, Zeng M, Zhang L, Huang G (2018) Identifying patch correctness in test-based program repair. In: Proceedings of the 40th international conference on software engineering. ACM, pp 789–799

    Google Scholar 

  26. Xuan J, Martinez M, Demarco F, Clement M, Marcote SL, Durieux T, Le Berre D, Monperrus M (2017) Nopol: automatic repair of conditional statement bugs in Java programs. IEEE Trans Softw Eng (TSE) 43(1):34–55

    Article  Google Scholar 

  27. Yi J, Tan SH, Mechtaev S, Böhme M, Roychoudhury A (2018) A correlation study between automated program repair and test-suite metrics. Empir Softw Eng 23(5):2948–2979

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jooyong Yi .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Yi, J. (2020). On the Time Performance of Automated Fixes. In: Ciancarini, P., Mazzara, M., Messina, A., Sillitti, A., Succi, G. (eds) Proceedings of 6th International Conference in Software Engineering for Defence Applications. SEDA 2018. Advances in Intelligent Systems and Computing, vol 925. Springer, Cham. https://doi.org/10.1007/978-3-030-14687-0_28

Download citation

Publish with us

Policies and ethics