Multi-objective test prioritization via a genetic algorithm

It is a challenging job for the software industry to release a product with the right quality level at the right time. There are some components within a software system that are more critical to the system’s operation than others. Faults in components with high criticality are responsible directly or indirectly for causing high failure rate of the overall system compared to same faults in components with low criticality. Estimating the criticality of a component at the design level and focusing test effort per component based on the estimated criticality of the component helps to improve the reliability of a system within the available test resources. The objective is to identify the criticality level of a component at the design level and make a better test plan so that the high-critical components would be tested more completely and rigorously than other less-critical components. We first propose a method to estimate the criticality of a component within a system. The criticality estimation method is based upon design documents. We prioritize the components for testing according to their estimated criticality. Then, we present a genetic algorithm-based technique to select test cases out of a large pool of test cases. The intensity with which each component is tested is proportionate to its priority and the test suite is optimal under other constraints. We have conducted experiments to compare our scheme with a related scheme. The experimental results establish that higher reliability can indeed be achieved using our scheme.

[1]  Tarun Jaiswal,et al.  Fundamentals of Software Engineering , 2017, Lecture Notes in Computer Science.

[2]  Atif M. Memon,et al.  Developing a Single Model and Test Prioritization Strategies for Event-Driven Software , 2011, IEEE Transactions on Software Engineering.

[3]  Hany H. Ammar,et al.  A scenario-based reliability analysis approach for component-based software , 2004, IEEE Transactions on Reliability.

[4]  Durga Prasad Mohapatra,et al.  Source Code Prioritization Using Forward Slicing for Exposing Critical Elements in a Program , 2011, Journal of Computer Science and Technology.

[5]  Durga Prasad Mohapatra,et al.  Risk analysis: a guiding force in the improvement of testing , 2013, IET Softw..

[6]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[7]  Rajeev Kumar,et al.  Improved Sampling of the Pareto-Front in Multiobjective Genetic Optimizations by Steady-State Evolution: A Pareto Converging Genetic Algorithm , 2002, Evolutionary Computation.

[8]  Aditya P. Mathur,et al.  On the estimation of reliability of a software system using reliabilities of its components , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[9]  Durga Prasad Mohapatra,et al.  Reliability Improvement Based on Prioritization of Source Code , 2010, ICDCIT.

[10]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[11]  Rajiv Gupta,et al.  A methodology for controlling the size of a test suite , 1990, Proceedings. Conference on Software Maintenance 1990.

[12]  Rajib Mall,et al.  System testing for object‐oriented systems with test case prioritization , 2009, Softw. Test. Verification Reliab..

[13]  Barry Boehm,et al.  Top 10 list [software development] , 2001 .

[14]  Gregg Rothermel,et al.  Incorporating varying test costs and fault severities into test case prioritization , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[15]  Gregg Rothermel,et al.  Prioritizing test cases for regression testing , 2000, ISSTA '00.

[16]  Neelam Gupta,et al.  Experiments with test case prioritization using relevant slices , 2008, J. Syst. Softw..

[17]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[18]  Harlan D. Mills,et al.  Engineering software under statistical quality control , 1990, IEEE Software.

[19]  Hany H. Ammar,et al.  Scenario-based reliability analysis of component-based software , 1999, Proceedings 10th International Symposium on Software Reliability Engineering (Cat. No.PR00443).

[20]  John D. Musa,et al.  Operational profiles in software-reliability engineering , 1993, IEEE Software.

[21]  Peter J. Fleming,et al.  An Overview of Evolutionary Algorithms in Multiobjective Optimization , 1995, Evolutionary Computation.

[22]  Barry W. Boehm,et al.  Software Defect Reduction Top 10 List , 2001, Computer.

[23]  Lionel C. Briand,et al.  Dynamic coupling measurement for object-oriented software , 2004, IEEE Transactions on Software Engineering.

[24]  David W. Binkley,et al.  The application of program slicing to regression testing , 1998, Inf. Softw. Technol..

[25]  Neelam Gupta,et al.  Improving Fault Detection Capability by Selectively Retaining Test Cases during Test Suite Reduction , 2007, IEEE Transactions on Software Engineering.

[26]  Gregg Rothermel,et al.  Test Case Prioritization: A Family of Empirical Studies , 2002, IEEE Trans. Software Eng..

[27]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[28]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[29]  David Leon,et al.  An empirical evaluation of test case filtering techniques based on exercising complex information flows , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[30]  W. Masri,et al.  An empirical evaluation of test case filtering techniques based on exercising complex information flows , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[31]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.