Abstract
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.
Keywords
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Ball, T.: On the limit of control flow analysis for regression test selection. ACM SIGSOFT Software Engineering Notes 23(2), 134–142 (1998)
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)
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)
Beck, K.: Test-driven Development: By Example. Addison-Wesley Professional, Reading (2003)
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)
Binder, R.: Testing object-oriented systems: models, patterns, and tools. Addison-Wesley, Reading (1999)
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)
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)
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)
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)
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)
Fowler, M.: Refactoring: improving the design of existing code. Addison-Wesley Professional, Reading (1999)
Goldberg, A., Robson, D.: Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading (1983)
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)
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)
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)
Harrold, M.J., Orso, A.: Retesting Software During Development and Maintenance. In: Frontiers of Software Maintenance, FoSM 2008, pp. 99–108 (2008)
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)
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)
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)
Beck, K., Andres, C.: Extreme Programming Explained: Embrace Change, 2nd edn. Addison-Wesley Longman, Amsterdam (2004)
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)
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)
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)
Rothermel, G., Harrold, M.J.: Analyzing regression test selection techniques. IEEE Transactions on Software Engineering 22(8), 529–551 (1996)
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)
Rothermel, G., Harrold, M.J., Dedhia, J.: Regression Test Selection for C++ Software. Software Testing, Verification & Reliability 10(2), 77–109 (2000)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Steinert, B., Haupt, M., Krahn, R., Hirschfeld, R. (2010). Continuous Selective Testing. In: Sillitti, A., Martin, A., Wang, X., Whitworth, E. (eds) Agile Processes in Software Engineering and Extreme Programming. XP 2010. Lecture Notes in Business Information Processing, vol 48. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13054-0_10
Download citation
DOI: https://doi.org/10.1007/978-3-642-13054-0_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-13053-3
Online ISBN: 978-3-642-13054-0
eBook Packages: Computer ScienceComputer Science (R0)