Content area
Full text
Abstract - Regression testing is used to confirm that previous bugs have been fixed and that new bugs have not been introduced. Thus regression testing is done during maintenance phase and applied whenever a new version of a program is obtained by modifying an existing version. To perform a regression testing a set of new test cases and old test cases that were previously developed by software engineers are reused. This test suite is exhaustive in nature and it may take long time to rerun all test cases. Thus regression testing is too expensive and the number of test cases increases stridently as the software evolves. In present work, an additional fault detection test case prioritization technique is presented that prioritizes test cases in regression test suite based on number of concealed faults detected by test cases. Both noncost cognizant and cost cognizant prioritization of test cases have been performed using proposed technique and efficiency of prioritized suite is assessed using APFD and APFDc metric respectively.
Index Terms - APFD, APFDc, Cost-cognizant, Regression testing, Test case prioritization.
1.0 INTRODUCTION
A software product goes through requirement elicitation phase, design phase, implementation phase and testing phase before being fully operational and ready for use [1]. At the coding time developers often saves the set of test cases to test the module written and to reuse them later whenever software undergoes changes. When testing phase starts testing team creates a separate test suite, test environment and test oracle to validate the whole software system against customer satisfaction. Most of the time it is assumed that the software life cycle end after its delivery. But a long lasting maintenance phase starts after the deployment of the software to the customer's site. During this long life software evolves through numerous modifications and additions based on faults, change of user requirements, change of working platform or environments, change of government policies, and so forth. With the evolution of software product, maintaining its quality becomes more difficult and harder due to its numerous released versions, which goes on incrementing with every new set of changes to the previous version. These modifications into the existing software or addition of new features to the software may create new faults or may cause it...