Techniques |
Applicability |
TCS
|
Industry Motivation
Industry Evaluation
|
Experiment subject(s) |
Industrial Partner |
Programming Language |
Industrial proprietary, small scale
Confidential subsystem "X-crawler" (233 TCs "executable specifications") |
|
Natural language |
Effectiveness Metrics |
Efficiency Metrics |
Other Metrics |
Accuracy/precision/recall
|
Execution time
|
Applicability/Generality
|
Information Approach |
Algorithm Approach |
Open Challenges |
|
|
Combine technique to traditional code-based approaches.
|
Abstract
Regression testing is an essential software maintenance activity before the release of a new version implementing a bug fix or a new feature. A regression test selection (RTS) technique chooses a subset of existing test cases to ensure that the system will not be adversely affected by the latest modifications. With the rise of DevOps, behavior-driven development (BDD) is growing in popularity as it is in close alignment with agile practices, for example, continuous integration. Hence, it is necessary to propose a novel and effective RTS technique for BDD specifically to accelerate the development process while ensuring software quality. Since most existing techniques for RTS are code-based and thus subject to some limitations, we present a requirement-based technique which uses the requirements in BDD to select test cases in both high-level (acceptance testing) and low-level (unit testing). Our technique firstly illustrates the new requirement with a scenario, and subsequently computes the semantic similarity of the new scenario and all existing scenarios with the vector space model. According to the results, the modification-traversing regression test cases can be selected in a semi-automated way. We also conduct an experimental study to evaluate our technique in terms of inclusiveness, precision, efficiency and generality. The study shows that our technique is applicable for BDD and effective in practice.