Loading...

Regression test selection in test-driven development

Mafi, Z ; Sharif University of Technology | 2024

79 Viewed
  1. Type of Document: Article
  2. DOI: 10.1007/s10515-023-00405-w
  3. Publisher: 2024
  4. Abstract:
  5. The large number of unit tests produced in the test-driven development (TDD) method and the iterative execution of these tests extend the regression test execution time in TDD. This study aims to reduce test execution time in TDD. We propose a TDD-based approach that creates traceable code elements and connects them to relevant test cases to support regression test selection during the TDD process. Our proposed hybrid technique combines text and syntax program differences to select related test cases using the nature of TDD. We use a change detection algorithm to detect program changes. Our experience is reported with a tool called RichTest, which implements this technique. In order to evaluate our work, seven TDD projects have been developed. The implementation results indicate that the RichTest plugin significantly decreases the number of test executions and also the time of regression testing despite considering the overhead time. The test suite effectively enables fault detection because the selected test cases are related to the modified partitions. Moreover, the test cases cover the entire modified partitions; accordingly, the selection algorithm is safe. The concept is particularly designed for the TDD method. Although this idea is applicable in any programming language, it is already implemented as a plugin in Java Eclipse. © 2023, The Author(s), under exclusive licence to Springer Science+Business Media, LLC, part of Springer Nature
  6. Keywords:
  7. Program differencing ; Regression test ; Software testing ; Test-driven development (TDD) ; Fault detection ; Iterative methods ; Regression analysis ; Change detection ; Regression test selection ; Regression tests ; Segmentation ; Software testings ; Test case ; Test driven development ; Test execution
  8. Source: Automated Software Engineering ; Volume 31, Issue 1 , 2024 ; 09288910 (ISSN)
  9. URL: https://link.springer.com/article/10.1007/s10515-023-00405-w