Evolutionary Cost Cognizant Regression Test Prioritization for Object-Oriented Programs Based on Fault Dependency

  • Abstract
  • Keywords
  • References
  • PDF
  • Abstract

    Regression testing performed to provide confidence on the newly or updated software system is a resource consuming process. To ease this process, various techniques are developed. One such technique, test case prioritization, orders test cases with respect to the goals such that the most important test case in achieving those goals is scheduled earlier during the testing session. Among such performance goals, the rate of faults detections, measure how faults are detected quickly throughout the regression testing process. Improved dependency detection among faults provides faster feedback to the developers which gives chance to debug leading faults earlier in time. One other goal, the rate of fault severity detection, measure how fast severe fault can be detected in the testing process. Although, previous works address these issues but assumed that the costs of executing test cases and severities of detected faults are the same. However, costs of test and severities of faults varied. Furthermore, they did not consider incorporating evolution process such as applying genetic algorithms to their technique. In this work, we proposed an evolutionary cost-cognizant regression testing approach that prioritizes test case according to the rate of severity detection of test cases connected with dependent faults using genetic algorithms. The aim is to reveal more severe leading faults earlier using least cost in executing the test suite and to measure the efficacy of the technique using APFDc.



  • Keywords

    Test Case Prioritization, Regression testing, Genetic Algorithms, APFDc.

  • References

      [1] Yoo S & Harman M, (2007), “Regression Testing Minimisation, Selection and Prioritisation: A Survey,” Softw. Testing, Verif. Reliab., vol. 7, pp. 1–30.

      [2] Catal C & Mishra D, (2013), “Test case prioritization: A systematic mapping study,” Softw. Qual. J., vol. 21, no. 3, pp. 445–478.

      [3] Singh Y, Kaur A, Suri B & Singhal S, (2012), “Systematic Literature Review on Regression Test Prioritization Techniques,” Informatica, vol. 36, pp. 379–408.

      [4] Shrivathsan AD, Ravichandran KS & Sekar KR, (2015), “Test suite reduction mechanisms: A survey,” Int. J. Appl. Eng. Res., vol. 10, no. 18, pp. 39841–39848.

      [5] Mohapatra SK & Prasad S, (2015), “Test Case Reduction Using Ant Colony Optimization for Object Oriented Program,” vol. 5, no. 6, pp. 1424–1432.

      [6] Khan SUR, Lee SP, Parizi RM & Elahi M, (2014), “A code coverage-based test suite reduction and prioritization framework,” 2014 4th World Congr. Inf. Commun. Technol. WICT 2014, pp. 229–234.

      [7] Beena R & Sarala S, (2013), “Code Coverage Based Test Case Selection,” Int. J. Softw. Eng. Appl. (IJSEA), Vol.4, No.6, Novemb. 2013, vol. 4, no. 6, pp. 39–49.

      [8] Wang S, Ali S, Gotlieb A & Liaaen M, (2016), “A systematic test case selection methodology for product lines: results and insights from an industrial case study,” Empir. Softw. Eng., vol. 21, no. 4, pp. 1586–1622.

      [9] Wang Y, Zhao X & Ding X, (2015), “An Effective Test Case Prioritization Method Based on Fault Severity,” in Software Engineering and Service Science (ICSESS), 2015 6th IEEE International Conference, pp. 737–741.

      [10] Malishevsky G, Ruthruff JR, Rothermel G & Elbaum S, (2006), “Cost-cognizant Test Case Prioritization,” Technical Report TR-UNL-CSE-2006-0004, Department of Computer Science and Engineering, University of Nebraska–Lincoln, Lincoln, Nebraska, U.S.A., 12 March 2006.

      [11] Rava M & Wan-Kadir WMN, (2016), “A Review on Automated Regression Testing,” Int. J. Softw. Eng. Its Appl., vol. 10, no. 1, pp. 221–232.

      [12] Beszedes, T. Gergely, L. Schrettner, Jasz J, Lango L & Gyimothy T, (2012), “Code coverage-based regression test selection and prioritization in WebKit,” IEEE Int. Conf. Softw. Maintenance, ICSM, pp. 46–55.

      [13] Musa S, Sultan AB, Abdl Ghani AA, & Baharom S, ,(2014)“A Regression Test Case Selection and Prioritization for Object- Oriented Programs using Dependency Graph and Genetic Algorithm,” Int. J. Eng. Sci., vol. 4, no. 7, pp. 54–64.

      [14] Elbaum S, Kallakuri P, Malishevsky A, Rothermel G & Kanduri S, (2003), “Understanding the effects of changes on the cost-effectiveness of regression testing techniques,” Softw. Testing, Verif. Reliab., vol. 13, no. 2, pp. 65–83.

      [15] Elbaum S, Malishevsky AG & Rothermel G, (2002), “Test case prioritization: a family of empirical studies,” IEEE Trans. Softw. Eng., vol. 28, no. 2, pp. 159–182.

      [16] Jovanovic S, (2009), “Software Testing Methods and Techniques,” IPSI BgD Trans. Internet Res., vol. 5, no. 1, pp. 30–41.

      [17] Hao D, Zhang L, Zang L, Wang Y, Wu X, Xie T & Member S, (2016), “To Be Optimal or Not in Test-Case Prioritization,” vol. 42, no. 5, pp. 490–504.

      [18] Goel N & Sharma M, (2015), “Prioritization of Test Cases and Its Techniques,” Int. J. Comput. Appl., vol. 5, no. 4, pp. 85–89.

      [19] Lou Y, Hao D & Zhang L, (2015), “Mutation-based test-case prioritization in software evolution,” 2015 IEEE 26th Int. Symp. Softw. Reliab. Eng. ISSRE 2015, pp. 46–57.

      [20] 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. Testing, Verif. Reliab., pp. 371–396.

      [21] Kumar H & Chauhan N, (2015), “A Module Coupling Slice Based Test Case Prioritization Technique,” Int. J. Mod. Educ. Comput. Sci., vol. 7, no. 7, pp. 8–16.

      [22] Kayes I & Chakareski J, (2014), “The Network of Faults: A Complex Network Approach to Prioritize Test Cases for Regression Testing,” Innov. Syst. Softw. Eng., vol. cs.SE, pp. 1–13.

      [23] Wang Y, Zhao X, & Ding X, (2015), “An effective test case prioritization method based on fault severity,” in Proceedings of the IEEE International Conference on Software Engineering and Service Sciences, ICSESS, 2015, vol. 2015–Novem, pp. 737–741.

      [24] Ranga K, (2015), “Analysis and Design of Test Case Prioritization Technique for Regression Testing,” IJIRST –International J. Innov. Res. Sci. Technol., vol. 2, no. 01, pp. 248–252.

      [25] Di Nucci D, Panichella A, Zaidman A, & De Lucia A, (2015), “Hypervolume-Based Search for Test Case Prioritization,” Lect. Notes Comput. Sci. (including Subser. Lect. Notes Artif. Intell. Lect. Notes Bioinformatics), vol. 9275, pp. 157–172.

      [26] Silva A, (2012), “A vocabulary of program slicing-based techniques,” ACM Comput. Surv., vol. 44, no. 3, pp. 1–41.

      [27] Larsen L & Harrold MJ, (1996), “Slicing object-oriented software,” 18th Int. Conf. Softw. Eng., pp. 495–505.

      [28] Horwitz S, Reps T, & Binkley D, (1988), “Interprocedural slicing using dependence graphs,” Proc. ACM SIGPLAN 1988 Conf. Program. Lang. Des. Implement. - PLDI ’88, vol. 12, no. 1, pp. 35–46.

      [29] Panigrahi CR & Mall R, (2013), “An approach to prioritize the regression test cases of object-oriented programs,” vol. 1, no. June, pp. 159–173.

      [30] Walkinshaw N, Roper M, & Wood M, (2003), “The Java system dependence graph,” Proc. - 3rd IEEE Int. Work. Source Code Anal. Manip. SCAM 2003, pp. 55–64.

      [31] Donglin L & Harrold MJ, (1998), “Slicing objects using system dependence graphs,” Softw. Maintenance, 1998. Proceedings. Int. Conf., no. November, pp. 358–367.

      [32] Sinha S, Harrold MJ, & Rothermel G, (1999), “System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow,” Softw. Eng. 1999. Proc. 1999 Int. Conf., no. May 1999, pp. 432–441.

      [33] Meng Y, Xu D, Zhang Z, & Li W, (2015), “System Dependency Graph Construction Algorithm Based on Equivalent Substitution,” 2015 Eighth Int. Conf. Internet Comput. Sci. Eng., pp. 106–110.

      [34] Harman M & Danicic S, (1995), “Using program slicing to simplify testing,” Softw. Testing, Verif. Reliab., vol. 5, no. 3, pp. 143–162.

      [35] Mohapatra DP, Mall R, & Kumar R, (2006), “An overview of slicing techniques for object-oriented programs,” Inform., vol. 30, no. 2, pp. 253–277, 2006.

      [36] Kovács G, Magyar F, & Gyimóthy T, (1996), “Static slicing of java programs,” 1996.

      [37] Zhao X, (1998), “Applying Program Dependence Analysis To Java Software,” Work. Softw. Eng. Database Syst. Int. Comput. Symp., no. June 2001, pp. 162–169, 1998.

      [38] Elbaum S, Malishevsky A, & Rothermel G, (2001), “Incorporating varying test costs and fault severities into test case prioritization,” in Proceedings - International Conference on Software Engineering, 2001, pp. 329–338.

      [39] Kavitha R & Sureshkumar N, (2010), “Test Case Prioritization for Regression Testing based on Severity of Fault,” Int. J. Comput. Sci. Eng., vol. 02, no. 05, pp. 1462–1466.




Article ID: 19486
DOI: 10.14419/ijet.v7i4.1.19486

Copyright © 2012-2015 Science Publishing Corporation Inc. All rights reserved.