Test Case Prioritization Using Test Similarities

09/01/2018
by   Alireza Haghighatkhah, et al.
0

A classical heuristic in software testing is to reward diversity, which implies that a higher priority must be assigned to test cases that differ the most from those already prioritized. This approach is commonly known as similarity-based test prioritization (SBTP) and can be realized using a variety of techniques. The objective of our study is to investigate whether SBTP is more effective at finding defects than random permutation, as well as determine which SBTP implementations lead to better results. To achieve our objective, we implemented five different techniques from the literature and conducted an experiment using the defects4j dataset, which contains 395 real faults from six real-world open-source Java programs. Findings indicate that running the most dissimilar test cases early in the process is largely more effective than random permutation (Vargha-Delaney A [VDA]: 0.76-0.99 observed using normalized compression distance). No technique was found to be superior with respect to the effectiveness. Locality-sensitive hashing was, to a small extent, less effective than other SBTP techniques (VDA: 0.38 observed in comparison to normalized compression distance), but its speed largely outperformed the other techniques (i.e., it was approximately 5-111 times faster). Our results bring to mind the well-known adage, "don't put all your eggs in one basket". To effectively consume a limited testing budget, one should spread it evenly across different parts of the system by running the most dissimilar test cases early in the testing process.

READ FULL TEXT
research
07/22/2020

EPiT : A Software Testing Tool for Generation of Test Cases Automatically

Software test cases can be defined as a set of condition where a tester ...
research
06/28/2022

Test2Vec: An Execution Trace Embedding for Test Case Prioritization

Most automated software testing tasks can benefit from the abstract repr...
research
09/14/2023

Test Case Generation and Test Oracle Support for Testing CPSs using Hybrid Models

Cyber-Physical Systems (CPSs) play a central role in the behavior of a w...
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
06/26/2018

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

Test Case Prioritization (TCP) is an increasingly important regression t...
research
05/27/2023

Toward Cost-effective Adaptive Random Testing: An Approximate Nearest Neighbor Approach

Adaptive Random Testing (ART) enhances the testing effectiveness (includ...
research
07/15/2018

Visualizing test diversity to support test optimisation

Diversity has been used as an effective criteria to optimise test suites...

Please sign up or login with your details

Forgot password? Click here to reset