Authors:
R. Venkatesh
;
Ulka Shrotri
;
Amey Zare
and
Supriya Agrawal
Affiliation:
Tata Research Development and Design Centre, India
Keyword(s):
Formal Specification, Functional Test Generation.
Related
Ontology
Subjects/Areas/Topics:
Formal Methods
;
Service-Oriented Software Engineering and Management
;
Simulation and Modeling
;
Software Engineering
;
Software Engineering Methods and Techniques
;
Software Quality Management
Abstract:
Creating test cases to cover all functional requirements of real-world systems is hard, even for domain experts.
Any method to generate functional test cases must have three attributes: (a) an easy-to-use formal notation
to specify requirements, from a practitioner’s point of view, (b) a scalable test-generation algorithm, and (c)
coverage criteria that map to requirements.
In this paper we present a method that has all these attributes. First, it includes Expressive Decision Table
(EDT), a requirement specification notation designed to reduce translation efforts. Second, it implements
a novel scalable row-guided random algorithm with fuzzing (RGRaF)(pronounced R-graph) to generate test
cases. Finally, it implements two new coverage criteria targeted at requirements and requirement interactions.
To evaluate our method, we conducted experiments on three real-world applications. In these experiments,
RGRaF achieved better coverage than pure random test case generation. When compared wi
th manual approach,
our test cases subsumed all manual test cases and achieved up to 60% effort savings. More importantly,
our test cases, when run on code, uncovered a bug in a post-production sub-system and captured three
missing requirements in another.
(More)