ABSTRACT
Software regression testing is an integral part of most major software projects. As projects grow larger and the number of tests increases, performing regression testing becomes more costly. If software engineers can identify and run tests that are more likely to detect failures during regression testing, they may be able to better manage their regression testing activities. In this paper, to help identify such test cases, we developed techniques that utilizes various types of information in software repositories. To assess our techniques, we conducted an empirical study using an industrial software product, Microsoft Dynamics AX, which contains real faults. Our results show that the proposed techniques can be effective in identifying test cases that are likely to detect failures.
- R. Agrawal and R. Srikant. Fast algorithms for mining association rules in large databases. In Proceedings of the 20th International Conference on Very Large Data Bases, pages 487–499, Sept. 1994. Google ScholarDigital Library
- R. V. Binder. Testing Object-Oriented Systems. Addison Wesley, Upper Saddle River, NJ, 1999. Google ScholarDigital Library
- H. Do, S. Mirarab, L. Tahvildari, and G. Rothermel. The effects of time constraints on test case prioritization: A series of controlled experiments. IEEE Transactions on Software Engineering, 26(5), Sept. 2010. Google ScholarDigital Library
- H. Do and G. Rothermel. An empirical study of regression testing techniques incorporating context and lifecycle factors and improved cost-benefit models. In Proceedings of the ACM SIGSOFT Symposium on Foundations of Software Engineering, Nov. 2006. Google ScholarDigital Library
- E. Engstrom, P. Runeson, and M. Skoglund. A systematic review on regression test selection techniques. Information and Software Technology, 52(1):14 – 30, 2010. Google ScholarDigital Library
- J. Han, J. Pei, Y. Yin, and R. Mao. Mining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach. In Data Mining and Knowledge Discovery, pages 53–87, Jan. 2004. Google ScholarDigital Library
- B. Kaner and pettichord. Lessons Learned in Software Testing. Wiley Computer Publishing, 2002. Google ScholarDigital Library
- B. Korel. The program dependence graph in static program testing. In Information Processing Letters, volume 24, pages 103–108, 1987. Google ScholarDigital Library
- B. Livshits and T. Zimmermann. DataMine: Finding common error patterns by mining software revision histories. In International Symposium on Foundations of Software Engineering, pages 296–305, Sept. 2005. Google ScholarDigital Library
- Microsoft Corporation. XML Documentation Tags. http://msdn.microsoft.com/en-us/library/cc607340.aspx, Feb. 2010.Google Scholar
- N. Nagappan and T. Ball. Using Software Dependencies and Churn Metrics to Predict Field Failures: An Empirical Case Study. In International Symposium on Empirical Software Engineering and Measurement, pages 364–373, 2007. Google ScholarDigital Library
- N. Nagappan, T. Ball, and A. Zeller. Mining metrics to predict component failures. In Proceedings of the International Conference on Software Engineering, May 2006. Google ScholarDigital Library
- S. Yoo and M. Harman. Regression testing minimisation, selection and prioritisation : A survey. Software Testing, Verification, and Reliability, Mar. 2010. Google ScholarDigital Library
- M. Zaki and K. Gouda. Fast vertical mining using diffsets. In Proceedings of the ningth ACM SIGKDD international conference on Knowledge discovery and data mining, pages 326–335, 2003. Google ScholarDigital Library
- T. Zimmermann and N. Nagappan. Predicting defects using network analysis on dependency graphs. In Proceedings of the 30th International Conference on Software Engineering, pages 531–540, 2008. Google ScholarDigital Library
- T. Zimmermann, P. Weibgerber, S. Diehl, and A. Zeller. Mining versions histories to guide software changes. In Proceedings of the International Conference on Software Engineering, pages 563–572, May 2004. Google ScholarDigital Library
Index Terms
- Improving the effectiveness of test suite through mining historical data
Recommendations
Empirically evaluating Greedy-based test suite reduction methods at different levels of test suite complexity
Test suite reduction is an important approach that decreases the cost of regression testing. A test suite reduction technique operates based on the relationship between the test cases in the regression test suite and the test requirements in the program ...
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 ...
Test-Suite Reduction and Prioritization for Modified Condition/Decision Coverage
ICSM '01: Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)Software testing is particularly expensive for developers of high-assurance software, such as software that is produced for commercial airborne systems. One reason for this expense is the Federal Aviation Administration's requirement that test suites be ...
Comments