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. |