SEJul 11, 2014

UCov: a User-Defined Coverage Criterion for Test Case Intent Verification

arXiv:1407.3091v111 citations
Originality Incremental advance
AI Analysis

This addresses a specific need in software testing for more focused regression testing, though it is incremental as it complements rather than replaces existing criteria.

The paper tackles the problem that existing coverage criteria in regression testing do not ensure testing of important code like bug fixes or application scenarios, and proposes UCov, a user-defined coverage criterion that allows testers to specify execution patterns for intent verification, with implementation in Java showing practical application in two case studies.

The goal of regression testing is to ensure that the behavior of existing code is not altered by new program changes. The primary focus of regression testing should be on code associated with: a) earlier bug fixes; and b) particular application scenarios considered to be important by the tester. Existing coverage criteria do not enable such focus, e.g., 100% branch coverage does not guarantee that a given bug fix is exercised or a given application scenario is tested. Therefore, there is a need for a complementary coverage criterion in which the user can define a test requirement characterizing a given behavior to be covered as opposed to choosing from a pool of pre-defined and generic program elements. We propose UCov, a user-defined coverage criterion wherein a test requirement is an execution pattern of program elements and predicates. Our proposed criterion is not meant to replace existing criteria, but to complement them as it focuses the testing on important code patterns that could go untested otherwise. UCov supports test case intent verification. For example, following a bug fix, the testing team may augment the regression suite with the test case that revealed the bug. However, this test case might become obsolete due to code modifications not related to the bug. But if an execution pattern characterizing the bug was defined by the user, UCov would determine that test case intent verification failed. We implemented our methodology for the Java platform and applied it onto two real life case studies. Our implementation comprises the following: 1) an Eclipse plugin allowing the user to easily specify non-trivial test requirements; 2) the ability of cross referencing test requirements across subsequent versions of a given program; and 3) the ability of checking whether user-defined test requirements were satisfied, i.e., test case intent verification.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes