Continuous Selective Testing

  • Bastian Steinert
  • Michael Haupt
  • Robert Krahn
  • Robert Hirschfeld
Conference paper
Part of the Lecture Notes in Business Information Processing book series (LNBIP, volume 48)


A manual and explicit activity, the frequent selection and execution of tests requires considerable discipline. Our approach automatically derives a subset of tests based on actual modifications to the code base at hand, then continuously executes them transparently in the background, and so supports developers in instantly assessing the effect of their coding activities with respect to the overall set of unit tests to be passed. We apply techniques of selective regression testing, mainly relying on dynamic analysis. By taking advantage of the internal program representation available in IDEs, we do not need to rely on expensive comparisons of different program versions to detect modified code entities.


Test Selection Code Base Coverage Relationship Instant Feedback Agile Software Development 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Apiwattanapong, T., Orso, A., Harrold, M.J.: JDiff: A differencing technique and tool for object-oriented programs. Automated Software Engineering 14(1), 3–36 (2007)CrossRefGoogle Scholar
  2. 2.
    Ball, T.: On the limit of control flow analysis for regression test selection. ACM SIGSOFT Software Engineering Notes 23(2), 134–142 (1998)CrossRefGoogle Scholar
  3. 3.
    Ball, T.: The Concept of Dynamic Analysis. In: ESEC/FSE-7: Proceedings of the 7th European Software Engineering Conference held jointly with the 7th ACM SIGSOFT International Symposium on Foundations of Software Engineering, London, UK, pp. 216–234. Springer, Heidelberg (1999)Google Scholar
  4. 4.
    Bates, S., Horwitz, S.: Incremental program testing using program dependence graphs. In: POPL 1993: Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 384–396. ACM, New York (1993)CrossRefGoogle Scholar
  5. 5.
    Beck, K.: Test-driven Development: By Example. Addison-Wesley Professional, Reading (2003)Google Scholar
  6. 6.
    Bible, J., Rothermel, G., Rosenblum, D.S.: A comparative study of coarse-and fine-grained safe regression test-selection techniques. ACM Transactions on Software Engineering and Methodology 10(2), 149–183 (2001)zbMATHCrossRefGoogle Scholar
  7. 7.
    Binder, R.: Testing object-oriented systems: models, patterns, and tools. Addison-Wesley, Reading (1999)Google Scholar
  8. 8.
    Brant, J., Foote, B., Johnson, R.E., Roberts, D.: Wrappers to the Rescue. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 396–417. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  9. 9.
    Cheatham, T.J., Mellinger, L.: Testing object-oriented software systems. In: CSC 1990: Proceedings of the 1990 ACM annual conference on Cooperation, pp. 161–165. ACM, New York (1990)CrossRefGoogle Scholar
  10. 10.
    Chen, Y., Probert, R.L., Sims, D.P.: Specification-based regression test selection with risk analysis. In: CASCON 2002: Proceedings of the 2002 conference of the Centre for Advanced Studies on Collaborative research, p. 1. IBM Press (2002)Google Scholar
  11. 11.
    Chen, Y.F., Rosenblum, D. S., Vo, K.P.: TestTube: A system for selective regression testing. In: Proceedings of 16th International Conference on Software Engineering, 1994, ICSE-16, pp. 211–220 (1994)Google Scholar
  12. 12.
    Clarke, P., Malloy, B., Gibson, P.: Using a taxonomy tool to identify changes in OO software. In: Proceedings of Seventh European Conference on Software Maintenance and Reengineering, 2003, pp. 213–222 (2003)Google Scholar
  13. 13.
    Fowler, M.: Refactoring: improving the design of existing code. Addison-Wesley Professional, Reading (1999)Google Scholar
  14. 14.
    Goldberg, A., Robson, D.: Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading (1983)zbMATHGoogle Scholar
  15. 15.
    Gschwind, T., Oberleitner, J.: Improving Dynamic Data Analysis with Aspect-Oriented Programming. In: CSMR 2003: Proceedings of the Seventh European Conference on Software Maintenance and Reengineering, Washington, DC, USA, pp. 259–268. IEEE Computer Society, Los Alamitos (2003)CrossRefGoogle Scholar
  16. 16.
    Harrold, M.J., McGregor, J.D., Fitzpatrick, K.J.: Incremental testing of object-oriented class structures. In: ICSE 1992: Proceedings of the 14th international conference on Software engineering, pp. 68–80. ACM, New York (1992)CrossRefGoogle Scholar
  17. 17.
    Harrold, M.J., Jones, J.A., Li, T., Liang, D., Orso, A., Pennings, M., Sinha, S., Spoon, S.A., Gujarathi, A.: Regression Test Selection for Java software. In: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 312–326. ACM, New York (2001)CrossRefGoogle Scholar
  18. 18.
    Harrold, M.J., Orso, A.: Retesting Software During Development and Maintenance. In: Frontiers of Software Maintenance, FoSM 2008, pp. 99–108 (2008)Google Scholar
  19. 19.
    Hsia, P., Li, X., Chenho Kung, D., Hsu, C.T., Li, L., Toyoshima, Y., Chen, C.: A technique for the selective revalidation of OO software. Journal of Software Maintenance: Research and Practice 9(4) (1997)Google Scholar
  20. 20.
    Huang, S., Chen, Y., Zhu, J., Li, Z.J., Tan, H.F.: An optimized change-driven regression testing selection strategy for binary Java applications. In: Proceedings of the 2009 ACM symposium on Applied Computing, pp. 558–565. ACM, New York (2009)CrossRefGoogle Scholar
  21. 21.
    Ingalls, D., Kaehler, T., Maloney, J., Wallace, S., Kay, A.: Back to the Future: the Story of Squeak, a Practical Smalltalk Written in Itself. In: Proc. OOPSLA 1997, pp. 318–326. ACM Press, New York (1997)CrossRefGoogle Scholar
  22. 22.
    Beck, K., Andres, C.: Extreme Programming Explained: Embrace Change, 2nd edn. Addison-Wesley Longman, Amsterdam (2004)Google Scholar
  23. 23.
    Kung, D.C., Gao, J., Hsia, P., Toyoshima, Y., Chen, C.: On regression testing of object-oriented programs. The Journal of Systems & Software 32(1), 21–40 (1996)CrossRefGoogle Scholar
  24. 24.
    Mishali, O., Dubinsky, Y., Katz, S.: The TDD-guide training and guidance tool for test-driven development. In: The International Conference on Agile Processes and eXtreme Programming in Software Engineering (XP), Limerick, Ireland, Springer, Heidelberg (2008)Google Scholar
  25. 25.
    Rothermel, G., Harrold, M.J.: A safe, efficient algorithm for regression test selection. In: ICSM ’93: Proceedings of the Conference on Software Maintenance, Washington, DC, USA, pp. 358–367. IEEE Computer Society Press, Los Alamitos (1993)Google Scholar
  26. 26.
    Rothermel, G., Harrold, M.J.: Analyzing regression test selection techniques. IEEE Transactions on Software Engineering 22(8), 529–551 (1996)CrossRefGoogle Scholar
  27. 27.
    Rothermel, G., Harrold, M.J.: A safe, efficient regression test selection technique. ACM Transactions on Software Engineering and Methodology (TOSEM) 6(2), 173–210 (1997)CrossRefGoogle Scholar
  28. 28.
    Rothermel, G., Harrold, M.J., Dedhia, J.: Regression Test Selection for C++ Software. Software Testing, Verification & Reliability 10(2), 77–109 (2000)CrossRefGoogle Scholar
  29. 29.
    Saff, D., Ernst, M.D.: Reducing wasted development time via continuous testing. In: ISSRE 2003: Proceedings of the 14th International Symposium on Software Reliability Engineering, Washington, DC, USA, p. 281. IEEE Computer Society Press, Los Alamitos (2003)CrossRefGoogle Scholar
  30. 30.
    Zheng, J., Robinson, B., Williams, L., Smiley, K.: A process for identifying changes when source code is not available. In: MPEC 2005: Proceedings of the second international workshop on Models and processes for the evaluation of off-the-shelf components, pp. 1–4. ACM, New York (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Bastian Steinert
    • 1
  • Michael Haupt
    • 1
  • Robert Krahn
    • 1
  • Robert Hirschfeld
    • 1
  1. 1.Software Architecture Group, Hasso Plattner InstituteUniversity of PotsdamGermany

Personalised recommendations