Approaches

Below is a table listing approaches. For further information, please read the About and Contribute pages.

Legend:

  • TCP: Test Case Prioritization
  • TCS: Test Case Selection
  • TSR: Test Suite Reduction
  • TSA: Test Suite Augmentation
Category Name Description
Information History-based Uses information from previous testing cycles to decide about test case relevance.
Information Change-based Uses changes between versions to identify the relevant test cases.
Information Coverage-based Uses structural coverage information, whereby coverage can be of statement, method, class, file, etc.
Information Cost-aware Utilizes test case cost or time information to assess test relevance.
Information Requirements-based Relate tests with project-sensitive information, such as requirements and risk assessments.
Information Manual classification Requires at least some information that must be manually inputted by an expert.
Information Model-based Informs the test technique using behavioural or architectural models.
Information Trace-based Provides inputs and keeps track of the effects of those inputs throughout the program.
Information Fault-based Utilizes information related to fault detection or failure beaviour.
Information Test code Uses the plain text source code of the test cases.
Information Load factor Indicates what parts of the SUT are most used by different services and components.
Information Author count Number of authors associated with a certain part of the SUT.
Information Execution context Considers environment data such as libraries, APIs, databases, operating system, etc.
Algorithm Similarity / distance-based Assesses test cases based on their similarity, with the objective of diversifying the suite.
Algorithm Search-based Utilizes search-based algorithms, such as genetic or nature-inspired ones
Algorithm Machine learning-based Trains a ML model using historical or other data. Includes supervised, unsupervised and reinforcement learning methods.
Algorithm Graph-based Creates a graph representation of the SUT and utilizes graph theory algorithms to solve problems.
Algorithm Greedy Utilizes greedy algorithms and heuristics (usually based on coverage or similarity information).
Algorithm Constraints-based Utilizes constraint programming paradigm.
Algorithm Bloom filter or window-based Utilizes Bloom filter data structures and time windows to filter out tests that fail only once.