ABSTRACT
Regression testing is an important but expensive activity, and a great deal of research on regression testing methodologies has been performed. In recent years, much of this research has emphasized empirical studies, including evaluations of the effectiveness and efficiency of regression testing techniques. To date, however, most studies have been limited in terms of their consideration of testing context and system lifetime, and have used cost-benefit models that omit important factors and render some types of comparisons between techniques impossible. These limitations can cause studies to improperly assess the costs and benefits of regression testing techniques in practical settings. In this paper, we provide improved cost-benefit models for use in assessing regression testing methodologies, that incorporate context and lifetime factors not considered in prior studies, and we use these models to compare several common methodologies. Our results show that the factors we consider (in particular, time constraints and incremental resource availability) can affect assessments of the relative benefits of regression testing techniques, and suggest that particular classes of techniques may compare differently across different types of test suites.
- J. H. Andrews, L. C. Briand, and Y. Labiche. Is mutation an appropriate tool for testing experiments? In Int'l. Conf. Softw. Eng., pages 402--411, May 2005. Google ScholarDigital Library
- B. Beizer. Black-Box Testing. John Wiley and Sons, New York, NY, 1995.Google Scholar
- J. Bible, G. Rothermel, and D. Rosenblum. Coarse- and fine-grained safe regression test selection. ACM Trans. Softw. Eng. Meth., 10(2):149--183, Apr. 2001. Google ScholarDigital Library
- R. Binder. Testing Object-Oriented Systems. Addison Wesley, Reading, MA, 2000. Google ScholarDigital Library
- Y. Chen, D. Rosenblum, and K. Vo. TestTube: A system for selective regression testing. In Int'l. Conf. Softw. Eng., pages 211--220, May 1994. Google ScholarDigital Library
- R. D. Craig and S. P. Jaskiel. Systematic Software Testing. Artech House Publishers, Boston, MA, first edition, 2002. Google ScholarDigital Library
- http://www.culpepper.Google Scholar
- H. Do, S. Elbaum, and G. Rothermel. Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Int'l. J. Emp. Softw. Eng., 10(4):405--435, 2005. Google ScholarDigital Library
- H. Do and G. Rothermel. A controlled experiment assessing test case prioritization techniques via mutation faults. In Conf. Softw. Maint., pages 113--124, Sept. 2005. Google ScholarDigital Library
- H. Do, G. Rothermel, and A. Kinneer. Prioritizing JUnit test cases: An empirical assessment and cost-benefits analysis. Int'l. J. Emp. Softw. Eng., 11(1):33--70, 2006. Google ScholarDigital Library
- S. Elbaum, A. Malishevsky, and G. Rothermel. Prioritizing test cases for regression testing. In Int'l. Symp. Softw. Test. Anal., pages 102--112, Aug. 2000. Google ScholarDigital Library
- S. Elbaum, A. G. Malishevsky, and G. Rothermel. Test case prioritization: A family of empirical studies. IEEE Trans. Softw. Eng., 28(2):159--182, Feb. 2002. Google ScholarDigital Library
- S. Elbaum, G. Rothermel, S. Kanduri, and A. G. Malishevsky. Selecting a cost-effective test case prioritization technique. Softw. Quality J., 12(3), 2004. Google ScholarDigital Library
- T. L. Graves, M. J. Harrold, J.-M. Kim, A. Porter, and G. Rothermel. An empirical study of regression test selection techniques. ACM Trans. Softw. Eng. Meth., 10(2):184--208, Apr. 2001. Google ScholarDigital Library
- M. J. Harrold, D. Rosenblum, G. Rothermel, and E. Weyuker. Empirical studies of a prediction model for regression test selection. IEEE Trans. Softw. Eng., 27(3):248--263, Mar. 2001. Google ScholarDigital Library
- K. B. Hendricks and R. V. Singhal. Delays in new product introductions and the market value of the firm: The consequences of being late to the market. Mgmt. Science, 43(4):422--436, Apr. 1997. Google ScholarDigital Library
- C. Jones. Applied Software Measurement: Assuring productivity and quality. McGraw-Hill, 1997. Google ScholarDigital Library
- J. Kim and A. Porter. A history-based test prioritization technique for regression testing in resource constrained environments. In Int'l. Conf. Softw. Eng., May 2002. Google ScholarDigital Library
- J. Kim, A. Porter, and G. Rothermel. An empirical study of regression test application frequency. In Int'l. Conf. Softw. Eng., pages 126--135, June 2000. Google ScholarDigital Library
- A. Kinneer, M. Dwyer, and G. Rothermel. Sofya: A flexible framework for development of dynamic program analysis for Java software. Technical Report TR-UNL-CSE-2006-0006, University of Nebraska--Lincoln, Apr. 2006.Google Scholar
- H. Leung and L. White. Insights into regression testing. In Conf. Softw. Maint., pages 60--69, Oct. 1989.Google Scholar
- H. Leung and L. White. A cost model to compare regression test strategies. In Conf. Softw. Maint., Oct. 1991.Google ScholarCross Ref
- A. Malishevsky, G. Rothermel, and S. Elbaum. Modeling the cost-benefits tradeoffs for regression testing techniques. In Conf. Softw. Maint., pages 204--213, Nov. 2002. Google ScholarDigital Library
- K. Onoma, W.-T. Tsai, M. Poonawala, and H. Suganuma. Regression testing in an industrial environment. Comm. ACM, 41(5):81--86, May 1988. Google ScholarDigital Library
- A. Orso, N. Shi, and M. J. Harrold. Scaling regression testing to large software systems. In Found. Softw. Eng., Nov. 2004. Google ScholarDigital Library
- T. Ostrand and M. J. Balcer. The category-partition method for specifying and generating functional tests. Comm. ACM, 31(6), June 1988. Google ScholarDigital Library
- D. E. Perry and C. S. Stieg. Software faults in evolving a large, real-time system: A case study. In Eur. S.E. Conf., 1993. Google ScholarDigital Library
- X. Ren, F. Shah, F. Tip, B. G. Ryder, and O. Chesley. Chianti: A tool for change impact analysis of Java programs. In O.O. Prog., Sys., Lang., Apps., pages 432--448, Oct. 2004. Google ScholarDigital Library
- G. Rothermel and M. J. Harrold. Analyzing regression test selection techniques. IEEE Trans. Softw. Eng., 22(8):529--551, Aug. 1996. Google ScholarDigital Library
- G. Rothermel and M. J. Harrold. A safe, efficient regression test selection technique. ACM Trans. Softw. Eng. Meth., 6(2):173--210, Apr. 1997. Google ScholarDigital Library
- Shull, F. et al. What we have learned about fighting defects. In Int'l. Softw. Metrics Symp., 2002. Google ScholarDigital Library
- A. Srivastava and J. Thiagarajan. Effectively prioritizing tests in development environment. In Int'l. Symp. Softw. Test. Anal., pages 97--106, July 2002. Google ScholarDigital Library
- F. I. Vokolos and P. G. Frankl. Empirical evaluation of the textual differencing regression testing technique. In Int'l. Conf. Softw. Maint., pages 44--53, Nov. 1998. Google ScholarDigital Library
- W. Wong, J. Horgan, S. London, and H. Agrawal. A study of effective regression testing in practice. In Int'l. Symp. Softw. Rel. Engr., pages 230--238, Nov. 1997. Google ScholarDigital Library
Index Terms
- An empirical study of regression testing techniques incorporating context and lifetime factors and improved cost-benefit models
Recommendations
An empirical study of the effect of time constraints on the cost-benefits of regression testing
SIGSOFT '08/FSE-16: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineeringRegression testing is an expensive process used to validate modified software. Test case prioritization techniques improve the cost-effectiveness of regression testing by ordering test cases such that those that are more important are run earlier in the ...
Regression testing minimization, selection and prioritization: a survey
Regression testing is a testing activity that is performed to provide confidence that changes do not harm the existing behaviour of the software. Test suites tend to grow in size as software evolves, often making it too costly to execute entire test ...
On test suite composition and cost-effective regression testing
Regression testing is an expensive testing process used to revalidate software as it evolves. Various methodologies for improving regression testing processes have been explored, but the cost-effectiveness of these methodologies has been shown to vary ...
Comments