Grammar-based test generation with YouGen

Grammars are traditionally used to recognize or parse sentences in a language, but they can also be used to generate sentences. In grammar‐based test generation (GBTG), context‐free grammars are used to generate sentences that are interpreted as test cases. A generator reads a grammar G and generate...

Full description

Saved in:
Bibliographic Details
Published inSoftware, practice & experience Vol. 41; no. 4; pp. 427 - 447
Main Authors Hoffman, Daniel Malcolm, Ly-Gagnon, David, Strooper, Paul, Wang, Hong-Yi
Format Journal Article
LanguageEnglish
Published Chichester, UK John Wiley & Sons, Ltd 10.04.2011
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Grammars are traditionally used to recognize or parse sentences in a language, but they can also be used to generate sentences. In grammar‐based test generation (GBTG), context‐free grammars are used to generate sentences that are interpreted as test cases. A generator reads a grammar G and generates L(G), the language accepted by the grammar. Often L(G) is so large that it is not practical to execute all of the generated cases. Therefore, GBTG tools support ‘tags’: extra‐grammatical annotations which restrict the generation. Since its introduction in the early 1970s, GBTG has become well established: proven on industrial projects and widely published in academic venues. Despite the demonstrated effectiveness, the tool support is uneven; some tools target specific domains, e.g. compiler testing, while others are proprietary. The tools can be difficult to use and the precise meaning of the tags are sometimes unclear. As a result, while many testing practitioners and researchers are aware of GBTG, few have detailed knowledge or experience. We present YouGen, a new GBTG tool supporting many of the tags provided by previous tools. In addition, YouGen incorporates covering‐array tags, which support a generalized form of pairwise testing. These tags add considerable power to GBTG tools and have been available only in limited form in previous GBTG tools. We provide semantics for the YouGen tags using parse trees and a new construct, generation trees. We illustrate YouGen with both simple examples and a number of industrial case studies. Copyright © 2010 John Wiley & Sons, Ltd.
Bibliography:ark:/67375/WNG-58K85470-N
ArticleID:SPE1017
istex:60A39282E1A784B5D13BB2F80307B0AC2729C857
ObjectType-Article-2
SourceType-Scholarly Journals-1
ObjectType-Feature-1
content type line 23
ISSN:0038-0644
1097-024X
1097-024X
DOI:10.1002/spe.1017