Abstract
We propose a novel regression test case prioritization technique based on an analysis of a dependence model for object-oriented programs. We first construct an intermediate dependence model of a program from its source code. When the program is modified, the model is updated to reflect the changes. Our constructed model represents control and data dependencies as well as information pertaining to various types of dependencies arising from object relations such as association, inheritance and aggregation. We determine the affected nodes in the model by constructing the union of the forward slices corresponding to each changed model element. The test cases covering one or more affected nodes are selected for regression testing. The test cases in the selected regression test suite are then prioritized based on their weights and the weight of a test case is determined by assigning weights to the affected nodes. Our experimental results indicate that our approach on an average achieves an increase in the APFD metric value by 9.01 % as compared to a related approach.
Similar content being viewed by others
References
Rothermel G, Harrold M (1997) A safe, efficient regression test selection technique. ACM Transactions on Softw. Eng Methodol 6(2):173–210
Leung H, White L (1989) Insights into regression testing. In: Proceedings of the Conference on Software Maintenanc, pp 60–69
Harrold M, Jones J, Li T, Liang D, Orso A (2001) 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
Naslavsky L, Ziv H, Richardson DJ (2009) A model-based regression test selection technique. In: 25th IEEE International Conference on Software Maintenance, Edmonton, Alberta, Canada
Rothermel G, Harrold M, Dedhia J (2000) Regression test selection for C++ software. J Softw Test Verif Reliab 10(6):77–109
Rothermel G, Harrold MJ (1994) Selecting regression tests for object-oriented software. In: Proceedings of the Intenational Conference on Software Maintenance, Victoria, BC, Canada, pp 14–25
Korel B, Tahat L (2002) Model based regression test reduction using dependence analysis. In: International Conference on Software Maintenance, pp 214–223
Ma X, Sheng B, Ye C (2005) Advanced parallel processing technologies. Chapter test-suite reduction using genetic algorithm. Springer, Berlin
Do H, Mirarab S, Tahvildari L, Rothermel G (2010) The effects of time constraints on test case prioritization: a series of controlled experiments. IEEE Trans Softw Eng 36(5):593–617
Elbaum S, Malishevsky A, Rothermel G (2002) Test case prioritization: a family of empirical studies. IEEE Trans Softw Eng 28(2):159–182
Elbaum S, Rothermel G, Kanduri S, Malishevsky A (2004) Selecting a cost-effective test case prioritization technique. Softw Qual Control 12(3):185–210
Malishevsky A, Ruthruff J, Rothermel G, Elbaum S (2006) Cost-cognizant test case prioritization, 2006. Technical, Report TR-UNL-CSE-2006-0004
Rothermel G, Untch R, Chu C, Harrold M (2001) Prioritizing test cases for regression testing. IEEE Trans Softw Eng 27(10):929–948
Srikanth H, William L, Osborne J (2005) System test case prioritization of new and regression test cases. In: Proceedings of International Symposium on Empirical Software Engineering. IEEE Computer Society Press, USA, pp 64–73
Walcott K, Soffa M, Kapfhammer G, Roos R (2006) Time-aware test suite prioritization. In: Proceedings of the 2006 International Symposium on Software Testing and Analysis, pp 1–12
Kim J, Porter A (2002) A history-based test prioritization technique for regression testing in resource constrained environments. In: IEEE International Conference on Software Engineering, pp 119–129
Kung DC, Gao J, Hsia P (1996) On regression testing of object-oriented programs. J Syst Softw 32:21–40
Larsen L, Harrold M (1996) Slicing object-oriented software. In: Proceedings of 18th IEEE International Conference on Software Engineering
Horwitz S, Reps T, Binkley D (1990) Inter procedural slicing using dependence graphs. Trans Programm Lang Syst 12(1):26–60
Tip F (1995) A survey of program slicing techniques. J Programm Lang 3:121–189
Xu B, Qian J, Wu Z, Zhang X, Chen L (2005) A brief survey of program slicing. JACM SIGSOFT Softw Eng Notes 30(2):1–36
Li Z, Harman M, Hierons R (2007) Search algorithms for regression test case prioritization. IEEE Trans Softw Eng 33(4):225–237
Jones JA, Harrold MJ (2003) Test-suite reduction and prioritization for modified condition/decision coverage. IEEE Trans Softw Eng 29(3):195–209
Elbaum S, Malishevsky A, Rothermel G (2000) Prioritizing test cases for regression testing. In: Proceedings of ISSTA. ACM Press, USA, pp 102–112
Park H, Ryu H, Baik J (2008) Historical value-based approach for cost-cognizant test case prioritization to improve the effectiveness of regression testing. In: Proceedings of SSIRI, pp 39–46
Elbaum S, Malishevsky A, Rothermel G (2001) Incorporating varying test costs and fault severities into test case prioritization. In: Proceedings of the 23rd International Conference on Software Engineering, Ontario, Canada, pp 329–338
Jeffrey D, Gupta N (2008) Experiments with test case prioritization using relevant slices. J Syst Softw 81:196–221
Panigrahi C, Mall R (2013) An approach to prioritize regression test cases of object-oriented programs. J CSI Trans ICT (Springer). doi:10.1007/s40012-013-0011-7
Eclipse. [Online]. Available: http://www.eclipse.org/. Accessed 3 June 2012
Antlr parser generator. [Online]. Available: http://www.antlr.org/. Accessed 3 June 2012
Graphviz. (Last visited August 21, 2012). [online]. Available: http://www.graphviz.org/. Accessed 21 Aug 2012
Scott W. Antlr java grammar. [Online]. Available: http://www.antlr.org/grammar/list. Accessed 3 June 2012
Yu-Seung M, Jeff O, Yong-Rae K (2005) Mujava: an automated class mutation system. J Softw Testing Verif Reliab 15(2): 97–133
MuClipse (Last visited August 21, 2012). [online]. Available: http://muclipse.sourceforge.net/. Accessed 21 Aug 2012
Yu-Seung M, Yong-Rae K, Jeff O (2002) Inter-class mutation operators for Java. In: Proceedings of the 13th International Symposium on Softw. Reliability Engineering, Annapolis MD, November 2002. IEEE Computer Society Press, USA, pp 352–363
Agrawal H, DeMillo RA, Hathaway R, Hsu Wm, Hsu W, Krauser EW, Martin RJ, Spafford EH (1989) Design of mutant operators for the C programming language, (March 1989) Technical Report: SERC-TR-41-P, Softw. Engineering Research Center, Purdue University
Delamaro ME, Maldonado JC, Mathur AP (March 2001) Interface mutation: an approach to integration testing. IEEE Trans Softw Eng 27(3):228–247
Kim S, Clark J, McDermid J (2000) Class mutation: mutation testing for object-oriented programs. Object-Oriented Software Systems, OOSS
Binder RV (2003) Testing object-oriented systems: models, patterns, and tools. Addison-Wesley, Boston
Smith A, Geiger J, Kapfhammer GM, Soffa ML (2007) Test suite reduction and prioritization with call trees. In: Proceedings of ASE’07, Atlanta, Georgia, USA
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Panigrahi, C.R., Mall, R. A heuristic-based regression test case prioritization approach for object-oriented programs. Innovations Syst Softw Eng 10, 155–163 (2014). https://doi.org/10.1007/s11334-013-0221-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-013-0221-z