Survey on Prioritizing Test Cases in Various Levels of the Software Development Life Cycle

Survey on Prioritizing Test Cases in Various Levels of the Software Development Life Cycle

Gayatri Nayak, Mitrabinda Ray
Copyright: © 2021 |Pages: 28
DOI: 10.4018/IJITPM.2021010101
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Test case prioritization is a technical method to reorder the execution of test cases to reduce regression testing costs. This paper has examined various existing techniques that are widely used and suggests improving test case prioritization process after finding many research gaps. These research gaps are collected after doing a thorough study on 206 papers after surfing 310 papers on test case generation and prioritization techniques. These papers are collected from different electronic databases such as IEEE Explore, Science Direct, ACM Library, Springer, Wiley, and Elsevier. The authors have targeted to make a statistical record to show research contribution on test case prioritization at three levels of software development life cycle. This survey shows that 20.87% of papers are contributing for TCP at the requirement phase, 38.83% of papers are contributing for TCP at the design phase, 40.29% of papers are contributing to TCP at the coding phase. The inference of this study cites many future recommendations for the current researchers in the conclusion section.
Article Preview
Top

1. 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 suiteIJITPM.2021010101.m01, IJITPM.2021010101.m02 be its permutation and IJITPM.2021010101.m03 be a function used to define a relation between P and the real numbers, determine PIJITPM.2021010101.m04 such thatIJITPM.2021010101.m05.

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

  • 1.

    Customer requirements.

  • 2.

    Frequent change in requirements.

  • 3.

    Implementation complexity of code.

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.

Complete Article List

Search this Journal:
Reset
Volume 15: 1 Issue (2024)
Volume 14: 1 Issue (2023)
Volume 13: 4 Issues (2022): 3 Released, 1 Forthcoming
Volume 12: 4 Issues (2021)
Volume 11: 4 Issues (2020)
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 4 Issues (2016)
Volume 6: 4 Issues (2015)
Volume 5: 4 Issues (2014)
Volume 4: 4 Issues (2013)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing