How Do Static and Dynamic Test Case Prioritization Techniques Perform on Modern Software Systems? An Extensive Study on GitHub Projects

06/26/2018
by   Qi Luo, et al.
0

Test Case Prioritization (TCP) is an increasingly important regression testing technique for reordering test cases according to a pre-defined goal, particularly as agile practices gain adoption. To better understand these techniques, we perform the first extensive study aimed at empirically evaluating four static TCP techniques, comparing them with state-of-research dynamic TCP techniques across several quality metrics. This study was performed on 58 real-word Java programs encompassing 714 KLoC and results in several notable observations. First, our results across two effectiveness metrics (the Average Percentage of Faults Detected APFD and the cost cognizant APFDc) illustrate that at test-class granularity, these metrics tend to correlate, but this correlation does not hold at test-method granularity. Second, our analysis shows that static techniques can be surprisingly effective, particularly when measured by APFDc. Third, we found that TCP techniques tend to perform better on larger programs, but that program size does not affect comparative performance measures between techniques. Fourth, software evolution does not significantly impact comparative performance results between TCP techniques. Fifth, neither the number nor type of mutants utilized dramatically impact measures of TCP effectiveness under typical experimental settings. Finally, our similarity analysis illustrates that highly prioritized test cases tend to uncover dissimilar faults.

READ FULL TEXT

page 11

page 12

page 22

page 26

research
01/18/2018

A Large-Scale Empirical Comparison of Static and Dynamic Test Case Prioritization Techniques

The large body of existing research in Test Case Prioritization (TCP) te...
research
02/23/2021

Automating Test Case Identification in Open Source Projects on GitHub

Software testing is one of the very important Quality Assurance (QA) com...
research
01/25/2022

Investigating Software Testability and Test cases Effectiveness

Software measurement is an essential management tool to develop robust a...
research
08/10/2017

Test Case Prioritization Techniques for Model-Based Testing: A Replicated Study

Recently, several Test Case Prioritization (TCP) techniques have been pr...
research
11/14/2017

A Comparative Case Study on the Impact of Test-Driven Development on Program Design and Test Coverage

Test-driven development (TDD) is a programming technique in which the te...
research
09/01/2018

Test Case Prioritization Using Test Similarities

A classical heuristic in software testing is to reward diversity, which ...
research
11/09/2021

Test cases as a measurement instrument in experimentation

Background: Test suites are frequently used to quantify relevant softwar...

Please sign up or login with your details

Forgot password? Click here to reset