Abstract
In software maintenance, after modifying the software a system needs regression testing. Execution of regression testing confirms that any modified code has no adverse effect as well as does not introduce new faults in the existing functionality of the software. When working with object-oriented programming code-based testing is generally expensive. In this study, we proposed a technique for regression testing using unified modeling language (UML) diagrams and code-based analysis for object-oriented software. In this research work, the design and code based technique with an evolutionary approach are presented to select the best possible test cases from the test suite. We used the dependency graph for intermediate representation for the objectoriented program to identify the change. The selection of test cases is done at the design level using the UML model. The models are compared to identify the change between these two models. The proposed approached maximizes the value of APFD.
Similar content being viewed by others
References
Agrawal AP, Arvinder K (2018) A comprehensive comparison of ant colony and hybrid particle swarm optimization algorithms through test case selection. In: Data engineering and intelligent computing. Springer, Singapore, pp 397–405
Al-Salami NMA (2009) Evolutionary algorithm definition. Am J Eng Appl Sci 2(4):789–795
Askarunisa MA, Shanmugapriya ML, Ramaraj DN (2010) Cost and coverage metrics for measuring the effectiveness of test case prioritization techniques. INFOCOMP 9(1):43–52
Badri L, Badri M, St-Yves D (2005) Supporting predictive change impact analysis: a control call graph based technique. In: 12th Asia-Pacific software engineering conference (APSEC'05). IEEE, Taipei, Taiwan
Batra G (2009) Model-based software regression testing for software components. In: Prasad SK (ed) Proceedings of the 3rd international conference on information systems, technology and management, vol 31. Springer, Berlin
Biswas S, Mall R, Satpathy M, Sukumaran S (2011) Regression test selection techniques: a survey. Informatica 35(3):289–321
Black S (2008) Deriving an approximation algorithm for automatic computation of ripple effect measures. Inf Softw Technol 50(7–8):723–736
Bohner SA (1996) Impact analysis in the software change process: the year 2000 perspective. Inicsm 96:42–51
Briand LC, Labiche Y, O’Sullivan L, Sówka MM (2006) Automated impact analysis of UML models. J Syst Softw 79(3):339–352
Byson NA (1995) A goal programming method for generating priority vectors. J Oper Res Soc 46(5):641–648
Chu AT, Kalaba RE, Spingarn K (1979) A comparison of two methods for determining the weights of belonging to fuzzy sets. J Optim Theory Appl 27(4):531–538
Di Nardo D, Alshahwan N, Briand L, Labiche Y (2015) Coverage-based regression test case selection, minimization and prioritization: a case study on an industrial system. Softw Test Verif Reliab 25(4):371–396
Engstrom E, Skoglund M, Runeson P (2008) Empirical evaluations of regression test selection techniques: a systematic review. In: Proceedings of the second ACM-IEEE international symposium on empirical software engineering and measurement, pp 22–31
Fahad M, Nadeem A (2008) A survey of UML based regression testing. In: Shi Z, Mercier-Laurent E, Leake D (eds) Intelligent information processing IV IIP 2008. IFIP – the international federation for information processing, vol 288. Springer, Boston, pp 200–210
Fang C, Chen Z, Wu K, Zhao Z (2014) Similarity-based test case prioritization using ordered sequences of program entities. Softw Qual J 22(2):335–361
Graves TL, Harrold MJ, Kim J-M, Porter A, Rothermel G (2001) An empirical study of regression test selection techniques. ACM Trans Softw Eng Methodol (TOSEM) 10(2):184–208
Gupta R, Harrold MJ, Soffa ML (1996) Program slicing-based regression testing techniques. Softw Test Verif Reliab 6(2):83–111
Hao D, Zhang L, Zhang L, Rothermel G, Mei H (2014) A unified test case prioritization approach. ACM Trans Softw Eng Methodol (TOSEM) 24(2):10–31
Harrold M, Soffa M (1989) Interprocedual data flow testing. ACM SIGSOFT Softw Eng Notes 14(8):158–167
Harrold MJ, Jones JA, Li T, Liang D, Orso A, Pennings M, Sinha S, Spoon SA, Gujarathi A (2001) A regression test selection for Java software. In: Proceedings of the 16th ACM SIGPLAN conference on object oriented programming systems languages and applications. ACM, New York, pp 312–326
Hewitt J, Rilling JA (2006) Light-weight proactive software change impact analysis using use case maps. In: Proceedings of the international workshop on software evolvability. IEEE, Budapest, Hungary, pp 41–46
Holland JH (1973) Genetic algorithms and the optimal allocation of trials. SIAM J Comput 2(2):88–105
Holland JH (1975) Adaptation in natural and artificial systems Ann Arbor. Univ Michigan Press 1:975
Horwitz S, Reps T, Binkley D (1990) Interprocedural slicing using dependence graphs. ACM Trans Program Lang Syst (TOPLAS) 12(1):26–60
Huang YC, Huang CY, Chang JR, Chen TY (2010) Design and analysis of cost-cognizant test case prioritization using genetic algorithm with test history. 2010 IEEE 34th annual computer software and applications conference. IEEE, Seoul, South Korea, pp 413–418
Iqbal MZZ, Malik ZI, Nadeem A (2007) An approach for selective state machine based regression testing. In: Proceedings of the 3rd international workshop on advances in model-based testing. ACM, New York, pp 44–52
Kim S, Clark JA, McDermid JA (2000) Class mutation: mutation testing for object-oriented programs. In: Proc Net ObjectDays. Net Objects, Erfurt, Germany, pp 9–12
Kundu D, Samanta D (2009) A novel approach to generate test cases from UML activity diagrams. J Object Technol 8(3):65
Larsen L, Harrold MJ (1996) Slicing object-oriented software. In: Proceedings of IEEE 18th international conference on software engineering, pp 495–505
Law J, Rothermel G (2003) Incremental dynamic impact analysis for evolving software systems. In: Proceedings of the international symposium on software reliability engineering. IEEE, Denver, CO, USA, pp 430–441
Le Traon Y, Jeron T, Jezequel JM, Morel P (2000) Efficient OO integration and regression testing. IEEE Trans Reliab 49(1):12–25
Li Z, Harman M, Hierons RM (2007) Search algorithms for regression test case prioritization. IEEE Trans Softw Eng 33(4):225–237
Lu Y, Lou Y, Cheng S, Zhang L, Hao D, Zhou Y, Zhang L (2016) How does regression test prioritization perform in real-world software evolution. In: IEEE/ACM 38th international conference on software engineering (ICSE). IEEE, Austin, TX, USA, pp 535–546
Luo Q, Moran K, Poshyvanyk D (2016) A large-scale empirical comparison of static and dynamic test case prioritization techniques. In: 24th ACM SIGSOFT international symposium on foundations of software engineering. ACM, New York, pp 559–570
Maia MCO, Bittencourt RA, DeFigueiredo JCA, Guerrero DDS (2010) The hybrid technique for object-oriented software change impact analysis. In: 14th European conference on software maintenance and reengineering (CSMR). IEEE, Madrid, Spain, pp 252–255
Malishevsky AG, Ruthruff JR, Rothermel G, Elbaum S (2006) Cost-cognizant test case prioritization. Technical Report TR-UNL-CSE-2006-0004, University of Nebraska-Lincoln
Mansour N, Salem H (2006) Ripple effect in object-oriented programs. J Comput Methods Sci Eng 6(5):23–32
Marchetto A, Islam MM, Asghar W, Susi A, Scanniello G (2016) A multi-objective technique to prioritize test cases. IEEE Trans Softw Eng 42(10):918–940
Musa S, Sultan ABM, Ghani AABA, Baharom S (2014) A regression test case selection and prioritization for object-oriented programs using dependency graph and genetic algorithm. Res Inven Int J Eng Sci 4(7):54–64
Musa S, Sultan ABM, Abd-Ghani AAB, Salmi B (2015) Regression test cases selection for objectoriented programs based on affected statements. Int J Softw Eng Appl 9(10):91–108
Najumudheen ESF, Mall R, Samanta D (2009) A dependence graph-based test coverage analysis technique for object-oriented programs. In: 2009 sixth international conference on information technology: new generations, pp 763–768
Panda S, Munjal D, Mohapatra DP (2016) A slice-based change impact analysis for regression test case prioritization of object-oriented programs. Adv Sofw Eng. https://doi.org/10.1155/2016/7132404
Panigrahi CR, Mall R (2012) A hybrid regression test selection technique for object-oriented programs. Int J Softw Eng Appl 6(4):17–34
Panigrahi CR, Mall R (2013) An approach to prioritize the regression test cases of object-oriented programs. CSI Trans ICT 1(2):159–173
Pilskalns O, Uyan G, Andrews A (2006) Regression testing uml designs. In: 2006 22nd IEEE international conference on software maintenance, pp 254–264
Rothermel G, Harrold MJ (1994a) A framework for evaluating regression Test Selection Techniques. In: Proceeding of the 16th international conference on software engineering, ICSE 1994. IEEE, Sorrento, Italy, pp 201–210
Rothermel G, Harrold MJ (1994b) Selecting regression tests for object-oriented software. ICSM 94:14–25
Rothermel G, Harrold MJ (1996) Analyzing regression test selection techniques. IEEE Trans Softw Eng 22(8):529–551
Rothermel G, Harrold MJ (1997) A safe, efficient regression test selection technique. ACM Trans Softw Eng Methodol (TOSEM) 6(2):173–210
Rothermel G, Harrold MJ, Dedhia J (2000) Regression test selection for C++ software. J Softw Test Verif Reliab 10(2):77–109
Rovegard P, Angelis L, Wohlin C (2008) An empirical study on views of the importance of change impact analysis issues. IEEE Trans Softw Eng 34:516–530
Sabharwal S, Sibal R, Sharma C (2011) A genetic algorithm based approach for prioritization of test case scenarios in static testing. 2nd international conference on computer and communication technology (ICCCT). IEEE, Allahabad, India, pp 304–309
Shiri M, Hassine J, Rilling JA (2007) A requirement level modification analysis support framework. In: Third international IEEE workshop on software evolvability 2007. IEEE, Paris, France, pp 67–74
Singh Y, Kaur A, Suri B (2010) Test case prioritization using ant colony optimization. ACM SIGSOFT Softw Eng Notes 35(1):940
Skoglund M, Runeson P (2005) A case study of the class firewall regression test selection technique on a large scale distributed software system. In: 2005 international symposium on empirical software engineering. IEEE, p 10
White L, Jaber K, Robinson B (2005) Utilization of extended firewall for object-oriented regression testing. In: Proceedings of the 21st IEEE international conference on software maintenance. IEEE, Budapest, Hungary, pp 695–698
Yadav DK, Dutta S (2016) Test case prioritization technique based on early fault detection using fuzzy logic. 3rd IEEE international conference on computing for sustainable global development (INDIACom). IEEE, New Delhi, India, pp 1033–1036
Yadav DK, Dutta S (2017) Regression test case prioritization technique using genetic algorithm. In: Sahana S, Saha S (eds) Advances in computational intelligence Advances in intelligent systems and computing, vol 509. Springer, Singapore, pp 33–140
Yadav DK, Dutta S (2019a) Test case prioritization using clustering approach for object oriented software. Int J Inf Syst Model Des (IJISMD) 10(3):92–109
Yadav DK, Dutta SK (2019b) Test case prioritization based on early fault detection technique. Recent Patents Comput Sci. https://doi.org/10.2174/2213275912666190404152603(ISSN: 1874-4796 (Online))
Acknowledgements
We are thankful to Department of Computer Science & Engineering, Birla Institute of Technology Mesra, Ranchi for providing the laboratory facilities to carryout this research work. We are heartly thankful to our Vice-Chancellor Prof. S. Konar and our Head of Department CSE Prof. V. Bhattacharya for their constant inspiration and encouragement. Without their support, this research article would not have been possible.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Yadav, D.K., Dutta, S. Regression test case selection and prioritization for object oriented software. Microsyst Technol 26, 1463–1477 (2020). https://doi.org/10.1007/s00542-019-04679-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00542-019-04679-7