Skip to main content
Log in

Regression test case selection and prioritization for object oriented software

  • Technical Paper
  • Published:
Microsystem Technologies Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Black S (2008) Deriving an approximation algorithm for automatic computation of ripple effect measures. Inf Softw Technol 50(7–8):723–736

    Google Scholar 

  • Bohner SA (1996) Impact analysis in the software change process: the year 2000 perspective. Inicsm 96:42–51

    Google Scholar 

  • Briand LC, Labiche Y, O’Sullivan L, Sówka MM (2006) Automated impact analysis of UML models. J Syst Softw 79(3):339–352

    Google Scholar 

  • Byson NA (1995) A goal programming method for generating priority vectors. J Oper Res Soc 46(5):641–648

    Google Scholar 

  • 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

    MathSciNet  MATH  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    MATH  Google Scholar 

  • Gupta R, Harrold MJ, Soffa ML (1996) Program slicing-based regression testing techniques. Softw Test Verif Reliab 6(2):83–111

    Google Scholar 

  • 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

    Google Scholar 

  • Harrold M, Soffa M (1989) Interprocedual data flow testing. ACM SIGSOFT Softw Eng Notes 14(8):158–167

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Holland JH (1973) Genetic algorithms and the optimal allocation of trials. SIAM J Comput 2(2):88–105

    MathSciNet  MATH  Google Scholar 

  • Holland JH (1975) Adaptation in natural and artificial systems Ann Arbor. Univ Michigan Press 1:975

    Google Scholar 

  • Horwitz S, Reps T, Binkley D (1990) Interprocedural slicing using dependence graphs. ACM Trans Program Lang Syst (TOPLAS) 12(1):26–60

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Kundu D, Samanta D (2009) A novel approach to generate test cases from UML activity diagrams. J Object Technol 8(3):65

    Google Scholar 

  • 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

    Google Scholar 

  • Le Traon Y, Jeron T, Jezequel JM, Morel P (2000) Efficient OO integration and regression testing. IEEE Trans Reliab 49(1):12–25

    Google Scholar 

  • Li Z, Harman M, Hierons RM (2007) Search algorithms for regression test case prioritization. IEEE Trans Softw Eng 33(4):225–237

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Article  Google Scholar 

  • Panigrahi CR, Mall R (2012) A hybrid regression test selection technique for object-oriented programs. Int J Softw Eng Appl 6(4):17–34

    Google Scholar 

  • Panigrahi CR, Mall R (2013) An approach to prioritize the regression test cases of object-oriented programs. CSI Trans ICT 1(2):159–173

    Google Scholar 

  • 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

    Google Scholar 

  • Rothermel G, Harrold MJ (1994b) Selecting regression tests for object-oriented software. ICSM 94:14–25

    Google Scholar 

  • Rothermel G, Harrold MJ (1996) Analyzing regression test selection techniques. IEEE Trans Softw Eng 22(8):529–551

    Google Scholar 

  • Rothermel G, Harrold MJ (1997) A safe, efficient regression test selection technique. ACM Trans Softw Eng Methodol (TOSEM) 6(2):173–210

    Google Scholar 

  • Rothermel G, Harrold MJ, Dedhia J (2000) Regression test selection for C++ software. J Softw Test Verif Reliab 10(2):77–109

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Singh Y, Kaur A, Suri B (2010) Test case prioritization using ant colony optimization. ACM SIGSOFT Softw Eng Notes 35(1):940

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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))

    Article  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Dharmveer Kumar Yadav.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00542-019-04679-7

Navigation