Search for Prioritized Test Cases in Multi-Objective Environment During Web Application Testing

Regression testing is an expensive procedure that is implemented during maintenance phase of the Software Development Life Cycle of evolving software. During this process, test case prioritization is one of the strategies followed in which test cases are organized in a fashion so as to enhance efficiency in achieving some performance goal. During the process, there could be several aspects to be kept in mind due to resources constraints such as fault severity detected per unit of test cost, severity detection per test case execution, and execution time of test cases to detect all the faults. Keeping all such constraints in mind, the test case prioritization problem becomes a multi-objective problem where some of the objectives have to be maximized and the remaining ones minimized. In this study, experiments were performed on different versions of five web applications. The problem instance was found to vary from 5 $$\times $$× 5 test cases versus fault matrix, to 125 $$\times $$× 125 matrix. Random approach, 2-opt algorithm, improved 2-opt algorithm, greedy approach, additional greedy approach, Weighted Genetic Algorithm and Non-dominated Sorting Genetic Algorithm-II (NSGA-II) were applied to a generate prioritized test sequence which maximizes the Cost Cognizant Average Percentage of Fault Detection value, severity detection and minimizes test case execution cost to expose all the faults. The performances of these algorithms are compared, keeping these parameters in mind, and it is concluded that the performance of NSGA-II algorithm is better than that of all the other tested algorithms throughout all the experiments.

[1]  Kalyanmoy Deb,et al.  Multi-objective optimization using evolutionary algorithms , 2001, Wiley-Interscience series in systems and optimization.

[2]  Yuanyuan Zhang,et al.  The multi-objective next release problem , 2007, GECCO '07.

[3]  Gregg Rothermel,et al.  Cost-cognizant Test Case Prioritization , 2006 .

[4]  Gregg Rothermel,et al.  Leveraging user-session data to support Web application testing , 2005, IEEE Transactions on Software Engineering.

[5]  Rachel Harrison,et al.  Multiobjective simulation optimization in software project management , 2011 .

[6]  Sarat Kumar Das,et al.  Modelling the Pull-out Capacity of Ground Anchors Using Multi-objective Feature Selection , 2017 .

[7]  Gerardo Canfora,et al.  Defect prediction as a multiobjective optimization problem , 2015, Softw. Test. Verification Reliab..

[8]  Mark Harman,et al.  Search Algorithms for Regression Test Case Prioritization , 2007, IEEE Transactions on Software Engineering.

[9]  Stephane Durocher,et al.  Exploring Test Suite Diversification and Code Coverage in Multi-Objective Test Case Selection , 2015, 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST).

[10]  Mark Harman,et al.  Pareto efficient multi-objective test case selection , 2007, ISSTA '07.

[11]  Mahmoud Al-Ayyoub,et al.  Software-Defined System Support for Enabling Ubiquitous Mobile Edge Computing , 2017, Comput. J..

[12]  Mehdi Ehsan,et al.  Application of a Modified NSGA Method for Multi-Objective Static Distributed Generation Planning , 2011 .

[13]  M. Zandieh,et al.  Scheduling a Bi-Objective Hybrid Flow Shop with Sequence-Dependent Family Setup Times Using Metaheuristics , 2013 .

[14]  G. Mohankumar,et al.  Optimization of Machining Techniques in CNC Turning Centre Using Genetic Algorithm , 2013 .

[15]  Shingo Yamaguchi,et al.  A Petri-net based approach for software evolution , 2016, 2016 7th International Conference on Information and Communication Systems (ICICS).

[16]  Xin Yao,et al.  Multi-Objective Approaches to Optimal Testing Resource Allocation in Modular Software Systems , 2010, IEEE Transactions on Reliability.

[17]  Chiranjeev Kumar,et al.  Enhancing Efficiency of the Test Case Prioritization Technique by Improving the Rate of Fault Detection , 2017 .

[18]  Rachel Harrison,et al.  Multiobjective simulation optimisation in software project management , 2011, GECCO '11.

[19]  Brij Bhooshan Gupta,et al.  JS-SAN: defense mechanism for HTML5-based web applications against javascript code injection vulnerabilities , 2016, Secur. Commun. Networks.

[20]  S. Baskar,et al.  Multiobjective Decentralized Congestion Management Using Modified NSGA-II , 2011 .

[21]  Giuseppe Scanniello,et al.  A Multi-Objective Technique for Test Suite Reduction , 2013, ICSEA 2013.

[22]  M. I. Shapiai,et al.  Pareto Optimality Concept for Incorporating Prior Knowledge for System Identification Problem with Insufficient Samples , 2017 .

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

[24]  Zulkifli Mohd Nopiah,et al.  Application of a Multi-Objective Approach and Sequential Covering Algorithm to the Fatigue Segment Classification Problem , 2014 .

[25]  Dharma P. Agrawal,et al.  Handbook of Research on Modern Cryptographic Solutions for Computer and Cyber Security , 2016 .

[26]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[27]  Robert M. Hierons,et al.  Multi-objective optimisation for regression testing , 2016, Inf. Sci..

[28]  Kavita Choudhary,et al.  A Multi-Objective optimization algorithm for uniformly distributed generation of test cases , 2014, 2014 International Conference on Computing for Sustainable Global Development (INDIACom).

[29]  Shingo Yamaguchi,et al.  Petri net-based verification of security protocol implementation in software evolution , 2018, Int. J. Embed. Syst..

[30]  Thomas J. Ostrand,et al.  Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria , 1994, Proceedings of 16th International Conference on Software Engineering.

[31]  Joseph Robert Horgan,et al.  Effect of Test Set Minimization on Fault Detection Effectiveness , 1995, 1995 17th International Conference on Software Engineering.

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

[33]  Giuseppe Scanniello,et al.  A Multi-Objective Technique to Prioritize Test Cases Based on Latent Semantic Indexing , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.