Advertisement

Regression test case selection and prioritization for object oriented software

  • Dharmveer Kumar YadavEmail author
  • Sandip Dutta
Technical Paper
  • 12 Downloads

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.

Notes

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.

References

  1. 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–405Google Scholar
  2. Al-Salami NMA (2009) Evolutionary algorithm definition. Am J Eng Appl Sci 2(4):789–795CrossRefGoogle Scholar
  3. Askarunisa MA, Shanmugapriya ML, Ramaraj DN (2010) Cost and coverage metrics for measuring the effectiveness of test case prioritization techniques. INFOCOMP 9(1):43–52Google Scholar
  4. 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, TaiwanGoogle Scholar
  5. 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, BerlinCrossRefGoogle Scholar
  6. Biswas S, Mall R, Satpathy M, Sukumaran S (2011) Regression test selection techniques: a survey. Informatica 35(3):289–321Google Scholar
  7. Black S (2008) Deriving an approximation algorithm for automatic computation of ripple effect measures. Inf Softw Technol 50(7–8):723–736CrossRefGoogle Scholar
  8. Bohner SA (1996) Impact analysis in the software change process: the year 2000 perspective. Inicsm 96:42–51Google Scholar
  9. Briand LC, Labiche Y, O’Sullivan L, Sówka MM (2006) Automated impact analysis of UML models. J Syst Softw 79(3):339–352CrossRefGoogle Scholar
  10. Byson NA (1995) A goal programming method for generating priority vectors. J Oper Res Soc 46(5):641–648CrossRefGoogle Scholar
  11. 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–538MathSciNetzbMATHCrossRefGoogle Scholar
  12. 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–396CrossRefGoogle Scholar
  13. 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–31Google Scholar
  14. 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–210Google Scholar
  15. 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–361CrossRefGoogle Scholar
  16. 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–208zbMATHCrossRefGoogle Scholar
  17. Gupta R, Harrold MJ, Soffa ML (1996) Program slicing-based regression testing techniques. Softw Test Verif Reliab 6(2):83–111CrossRefGoogle Scholar
  18. 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–31CrossRefGoogle Scholar
  19. Harrold M, Soffa M (1989) Interprocedual data flow testing. ACM SIGSOFT Softw Eng Notes 14(8):158–167CrossRefGoogle Scholar
  20. 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–326Google Scholar
  21. 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–46Google Scholar
  22. Holland JH (1973) Genetic algorithms and the optimal allocation of trials. SIAM J Comput 2(2):88–105MathSciNetzbMATHCrossRefGoogle Scholar
  23. Holland JH (1975) Adaptation in natural and artificial systems Ann Arbor. Univ Michigan Press 1:975Google Scholar
  24. Horwitz S, Reps T, Binkley D (1990) Interprocedural slicing using dependence graphs. ACM Trans Program Lang Syst (TOPLAS) 12(1):26–60CrossRefGoogle Scholar
  25. 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–418CrossRefGoogle Scholar
  26. 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–52Google Scholar
  27. 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–12Google Scholar
  28. Kundu D, Samanta D (2009) A novel approach to generate test cases from UML activity diagrams. J Object Technol 8(3):65CrossRefGoogle Scholar
  29. Larsen L, Harrold MJ (1996) Slicing object-oriented software. In: Proceedings of IEEE 18th international conference on software engineering, pp 495–505Google Scholar
  30. 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–441Google Scholar
  31. Le Traon Y, Jeron T, Jezequel JM, Morel P (2000) Efficient OO integration and regression testing. IEEE Trans Reliab 49(1):12–25CrossRefGoogle Scholar
  32. Li Z, Harman M, Hierons RM (2007) Search algorithms for regression test case prioritization. IEEE Trans Softw Eng 33(4):225–237CrossRefGoogle Scholar
  33. 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–546Google Scholar
  34. 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–570Google Scholar
  35. 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–255Google Scholar
  36. Malishevsky AG, Ruthruff JR, Rothermel G, Elbaum S (2006) Cost-cognizant test case prioritization. Technical Report TR-UNL-CSE-2006-0004, University of Nebraska-LincolnGoogle Scholar
  37. Mansour N, Salem H (2006) Ripple effect in object-oriented programs. J Comput Methods Sci Eng 6(5):23–32Google Scholar
  38. 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–940CrossRefGoogle Scholar
  39. 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–64Google Scholar
  40. 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–108Google Scholar
  41. 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–768Google Scholar
  42. 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 CrossRefGoogle Scholar
  43. Panigrahi CR, Mall R (2012) A hybrid regression test selection technique for object-oriented programs. Int J Softw Eng Appl 6(4):17–34Google Scholar
  44. Panigrahi CR, Mall R (2013) An approach to prioritize the regression test cases of object-oriented programs. CSI Trans ICT 1(2):159–173CrossRefGoogle Scholar
  45. Pilskalns O, Uyan G, Andrews A (2006) Regression testing uml designs. In: 2006 22nd IEEE international conference on software maintenance, pp 254–264Google Scholar
  46. 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–210Google Scholar
  47. Rothermel G, Harrold MJ (1994b) Selecting regression tests for object-oriented software. ICSM 94:14–25Google Scholar
  48. Rothermel G, Harrold MJ (1996) Analyzing regression test selection techniques. IEEE Trans Softw Eng 22(8):529–551CrossRefGoogle Scholar
  49. Rothermel G, Harrold MJ (1997) A safe, efficient regression test selection technique. ACM Trans Softw Eng Methodol (TOSEM) 6(2):173–210CrossRefGoogle Scholar
  50. Rothermel G, Harrold MJ, Dedhia J (2000) Regression test selection for C++ software. J Softw Test Verif Reliab 10(2):77–109CrossRefGoogle Scholar
  51. 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–530CrossRefGoogle Scholar
  52. 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–309Google Scholar
  53. 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–74CrossRefGoogle Scholar
  54. Singh Y, Kaur A, Suri B (2010) Test case prioritization using ant colony optimization. ACM SIGSOFT Softw Eng Notes 35(1):940CrossRefGoogle Scholar
  55. 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 10Google Scholar
  56. 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–698CrossRefGoogle Scholar
  57. 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–1036Google Scholar
  58. 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–140Google Scholar
  59. 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–109CrossRefGoogle Scholar
  60. 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)) CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2019

Authors and Affiliations

  1. 1.Department of Computer Science and EngineeringBirla Institute of TechnologyRanchiIndia

Personalised recommendations