Article Preview
Top1. Introduction
Software testing is required to validate a software module by identifying any errors present in its code. Although different category of software testing (Rothermel et al., 2001) methods are available, the regression testing perception is quite interesting. It improves the quality of the software by checking the upgraded codes without affecting the performance of a pre-tested code (Rosero et al., 2016). Furthermore, it also ensures that the updated software satisfies the user’s requirement by minimizing the number of defects or bugs. It is to be noted that the impact of regression testing always depend on the test cases through which the verification of the software is done. The regression testing has the following techniques:
- 1.
Test Case Selection (Select part of test suite)
- 2.
Test Case Minimization/Reduction (Minimize/reduce the test suite)
- 3.
Test Case Prioritization (reordering of every test cases depend upon software developer).
Literature study says that TCP is basically used to obtain maximum advantages (Mei et al.,2012) by reordering the test cases. Preference should be given to test cases which are accomplished with multiple criteria at every levels of software development life cycle to increase the efficacy of test cases and minimizing the testing time and cost. According to Rothermal et al. (Rothermel et al., 2001, the prioritization of test case is defined as:
“Given a test suite, be its permutation and be a function used to define a relation between P and the real numbers, determine P such that.
It can be concluded from the above definition that α exhibits the possible ordering combinations of test cases for prioritization of the given test suite P and function f is used to provide a decision rate for that type of ranking. Basic objective of prioritizing test cases is as follows:
- 1.
Exposing the rate of fault can be increased by maximum occurrence of faults which are presented on their severity level.
- 2.
If some specific code updated prior to the regression testing procedure, then it may lead to generate more errors related to that code.
- 3.
Maximize coverage rate of the coverable code in the system.
To increase the number of fault disclosure, every phase of SDLC should be tested thoroughly. Requirement based TCP (Krishnamoorthi et al.,2009) is mainly depending on the three factors that are
Model based test case prioritization (MBTCP) approach is used in design phrase of a software product (Panigrahi et al.,2010). In this approach the key idea is graphical representation of the designed model. This graphical model is used to represent control and data dependency among objects like different types of inheritance, polymorphism and message passing. This approach uses various techniques like historical value based approach, business criticality test value, early fault detection rate (Jerfeey et al.,2007) etc, for prioritizing test cases derived from the designed model.
Code based testing is regulating amount of code is being tested. Code based test case prioritization is performed in coding phase of SDLC for better performance of system software. Different approaches are used for prioritizing test case like analysis of program structure (Ma et al.,2008) dependencies structure and code coverage based etc.