Article Preview
Top1. Introduction
In the present E-Commerce-oriented state of business, web applications play very vital role. These are buildup of different web technologies and are hosted over web servers so that users can access them using intranet or internet through a web browser. Being volatile in nature, effective and consistent testing of web applications becomes necessary. In order to satisfy the never-ending expectations of the customers and to sustain in a highly competitive era, frequent updates and up gradations in web applications (dynamic websites) on hourly or daily basis are required, without suspending the provided services. Regression testing is required to validate these updates and up gradations because any fault in a specific page can interfere with one or more functionalities of the website. Moreover, structure of these applications is complex; any dynamic website consists of a number of pages that are, in turn, connected to several other pages hence fault on any one page can hamper performance. The efficacy of proper testing is to be measured in terms of effective and complete testing within a limited time.
Regression testing is one of the inevitable processes executed during the maintenance phase of SDLC (Chauhan, 2010; Mathur, 2012; Singh, 2012).
The formal definition of regression testing as specified by IEEE is,
“Selective retesting of a system or component to verify that modifications have not caused unintended effects and that the system or component still complies with its specified requirement…” (IEEE Standard Computer Dictionary).The main objective behind its execution is to ensure that changes introduced in the delivered software do not initiate any new fault in the modified as well as the previously flawlessly working and tested code. It is a complex process to certify that recently introduced changes/features do not hamper the performance of the existing, unchanged part of the software.
The formal definition (Rothermal, Untch, & Harrold, 2001) of Test Case Prioritization (TCP), one of the strategies followed during regression testing, is given below.
Given: Let a test suite T be given along with the set of all possible permutations (ordering) of T, PT, of T and a function f from PT to the real numbers.
Problem: Find a new permutation T which belongs to the set of permutations PT such that its value for f(T) is greater than or equal to any other permutation T which also belongs to PT where PT represents the set of all possible permutations of T, and f is a function that, when applied to any such ordering, yields an award value for that ordering. It is assumed that higher award values are preferable to lower ones. In other words, f is a quantitative measure that satisfies the goal of escalating the likelihood of satisfying predefined objectives.
TCP is a discrete combinatorial problem which falls under the class of NP-Hard problems (Cormen, Leiserson, Rivest & Stein, 2001; Horowitz, Sahni & Rajasekaran, 2007; Jingui, Min & Immune, 2010) and its time complexity is exponential in nature. Finding optimal sequence of a large size test suite is a challenging task for which various attempts have been made by the researcher’s fraternity; however, finding a near optimal solution could be an alternative. Several software engineering problems are formulated as single objective optimization problems and TCP is one example. During TCP there could be various objective(s) to be satisfied. However, in this study finding the highest rate of fault coverage is the objective. During literature study, it has been noted that diverse optimization problems have been effectively solved using nature inspired approaches and the achieved results are optimal or nearby optimal in nature. Various nature inspired techniques such as Hill Climbing, Genetic Algorithm and Tabu search have already been applied to solve test cases prioritization problem (Li, Harman, & Hierons, 2007).