Abstract
A reusable class must be tested many times: each time modifications are applied to it or its base classes; when a subclass is created, in which case the inherited and redefined features must be retested in the new context. Therefore, a class should be easy to test, specifically for test execution and results analysis, since these activities must be repeated often. Inspired by R. Binder’s self-testing class concept [4] we defined, in a previous work, a testable class as a 3-tuple: class implementation, class behavior model and built-in test (BIT) mechanisms. In this work we present how to use this information when a class is changed. Regression testing is necessary each time a software is changed, to assure that the modifications do not adversely affect the unchanged parts. It is assumed that the test suite applied when testing the old version is available for reuse. However, test suites can be large and require too much effort to be reapplied in their totality. In such cases, a subset of the tests must be selected. This selection usually requires extra information besides the source code. This work aims at answering the following question: how to use test information contained in a testable class to do regression testing? The answer involves, among other aspects, the definition of an approach to select tests for reuse. The approach can be fully automated and does not need the source code for regression-test selection.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ball, T.: On the Limit of Control-Flow Analysis for Regression Test Selection. In: International Symposium on Software Testing and Analysis (ISSTA), pp. 143–242 (1998)
Beizer, B.: Black-Box Testing. John Wiley & Sons, Chichester (1995)
Beydeda, S., Gruhn, V.: Merging components and testing tools – The self-testing COTS components (STECC) strategy. In: Proc. EUROMICRO Conference Component-based Software Engineering Track (2003)
Binder, R.V.: Design for Testability in Object-Oriented Systems. Comm. of ACM 37(9), 87–101 (1994)
Binder, R.V.: Testing Object-Oriented Systems. Models, Patterns and Tools (2000)
Briand, L., Labiche, Y., Soccar, G.: Automating Impact Analysis and Regression Test Selection Based on UML Designs. In: International Conference on Software Maintenance (ICSM 2002), Montreal, Quebec, Canada, p. 252 (October 2002)
Chen, Y., Probert, R.L., Sims, D.P.: Specification-based regression test selection with risk analysis. In: Conference of the Center for Advanced Studies on Collaborative Research, pp. 1–14 (2002)
Fowler, M., Scott, K.: UML Distilled, 2nd edn. Addison-Wesley, Reading (2000)
Gao, J.: Testing Component-Based Software. In: Proc. of STARWest, San Jose, USA (1999), Available on the Web www.engr.sjsu/edu/gaojerry/report/star-test.html
GNU – CommonC++, ftp://ftp.gnu.org/pub/gnu/commonc++/ (Accessed in January 2002)
Granja, I., Jino, M.: Techniques for Regression Testing: Selecting Test Case Sets Tailored to Possibly Modified Functionalities. In: Third IEEE European Conference on Software Maintenance Engineering, pp. 2–11 (March 1999)
Harrold, M.J., Jones, J.A., Li, T., Liang, D., Orso, A., Pennings, M., Sinha, S., Spoon, S.A.: Regression Test Selection for Java Software. In: ACM Conf. on OO Programming, Systems, Languages and Applications, OOPSLA (2001)
Hoffman, D.: Hardware Testing and Software ICs. In: Proc. Northwest Software Quality Conference, USA, pp. 234–244 (September 1989)
Hörnstein, J., Edler, H.: Configuration and testing of components in software product lines. In: Proc. SERPS 2002: Second conference on software engineering research and practise in Sweden, Karlskrona, Sweden, October 24-25 (2002)
Leung, H.K.N., White, L.: Insights into Regression Testing. In: Proc. Of the IEEE Conference on Software Maintenance, pp. 531–537 (Ocotober 1989)
Leung, H.K.N., White, L.: A Cost Model to Compare Regression Test Strategies. In: Proc. Of the IEEE Conference on Software Maintenance, pp. 201–208 (Ocotober 1991)
Martins, E., Toyota, C., Yanagawa, R.: Constructing Self-Testable Software Components. In: Proc. IEEE/IFIP Dependable Systems and Networks (DSN) Conference, Gothemburg (2001)
Meyer, B.: Applying Design by Contract. IEEE Computer, 40–5 (October 1992)
Orso, A., Harrold, M.J., Rosenblum, D.: Component Metadata for Software Engineering Tasks. In: Emmerich, W., Tai, S. (eds.) EDO 2000. LNCS, vol. 1999, pp. 129–144. Springer, Heidelberg (2001)
Rothermel, G., Harrold, M.J.: Selecting regression tests for object-oriented software. In: IEEE Procedings of International Conference on Software Maintenance, pp. 14–25 ( September 1994)
Rothermel, G., Harrold, M.J.: Analyzing Regression Test Selection Techniques. IEEE Transactions on Sw. Engineering 22(8) (1996)
Rothermel, G., Harrold, M.J.: A Safe, Efficient Regression Test Selection Technique. ACM Transactions on Software Engineering and Methodology, 173–210 (1997)
Rothermel, G., Harrold, M.J., Dedhia, J.: Regression Test Selection for C++ Software. Journal of Software Testing, Verification and Reliability 10(2) (June 2000)
Traon, Y., Deveaux, D., Jézéquel, J.: Self-testable Components – from Pragmatic Tests to Design-for-Testability Methodology. In: Proc. 1st Workshop on Component-Based Systems, Switzerland (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Martins, E., Vieira, V.G. (2005). Regression Test Selection for Testable Classes. In: Dal Cin, M., Kaâniche, M., Pataricza, A. (eds) Dependable Computing - EDCC 5. EDCC 2005. Lecture Notes in Computer Science, vol 3463. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11408901_33
Download citation
DOI: https://doi.org/10.1007/11408901_33
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25723-3
Online ISBN: 978-3-540-32019-7
eBook Packages: Computer ScienceComputer Science (R0)