Article Preview
Top1. Introduction
Software testing is a process of executing a program or application, with the intent of finding the errors in the software. The conduct of software testing thus becomes essential and is often a complex activity. Testing is predominantly important and cannot be overlooked, as it ensures the quality of the software. In the conduct of software testing the role of test cases are vital. Test case is the set of conditions or variables under which a tester will determine whether an application, software system or one of its features is working correctly, as it was originally intended. Test case repository, namely the test suite gets updated continuously as the software application stays in use, thus growing in size. In due course, the grown test suite may contain redundant, irrelevant as well as unfit test cases. Since, testing is an expensive activity, unnecessary execution of redundant, irrelevant and unfit test cases will increase testing cost. Test case selection is thus required to remove redundant, irrelevant, and unfit test cases which in turn will improve the quality of software testing.
Although, there exist several fitness parameters and testing objectives for testing software application or program, the prominent consideration of a single parameter and objective is not justifiable and is not fulfilling the objectives of the software. Some objectives of software testing are conflicting in nature. For example, coverageability of one objective can affect other objectives like cost, fitness of test cases and number of test cases in the class while considering all objectives concurrently. Hence, the test cases should be classified and selected in such a way, that it will achieve maximum code coverage, client requirements, fault coverage and mutant killing score in minimum effort and cost.
Apart from this, fuzziness of test case fitness has created uncertainty in software testing. Ambiguity in fitness value and thereby in the selection of the test cases can be reduced by removing the test cases having high ambiguous values. In this purview, entropy, which is a measure of the amount of ambiguity in the outcome of a random experiment can be computed and used. It can be applied (Pradipta & Partha, 2014) to measure the ambiguity or uncertainty in the fitness computed, classification as well as in the selection of the test cases, thereby handling the ambiguity in the selection of test cases. Further, test case optimization, especially test case selection problem can be modelled as a search optimization problem. Ant colony optimization (ACO), a metaheuristic method, has been used for finding the approximate solutions of search optimization problems (Sonia, 2016; Maryam, 2016; Yi et al., 2017) such as multi-criteria test case selection and classification problems. ACO is particularly attractive for test case selection (Ya-nan et al., 2017; Niranjana, 2015) because no reliable heuristic is available to find the optimal subset of the test cases.