학술논문

Cost-effective functional testing of reactive software
Document Type
Conference
Source
2015 International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE) Evaluation of Novel Approaches to Software Engineering (ENASE), 2015 International Conference on. :67-77 Apr, 2015
Subject
Computing and Processing
General Topics for Engineers
Testing
Ignition
Pattern matching
Automata
Software
Formal languages
Scalability
Formal Specification
Functional Test Generation
Language
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 with 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.