TSTL: the template scripting testing language

被引:14
作者
Holmes, Josie [1 ]
Groce, Alex [2 ]
Pinto, Jervis [2 ]
Mittal, Pranjal [2 ]
Azimi, Pooria [2 ]
Kellar, Kevin [2 ]
O'Brien, James [3 ]
机构
[1] Penn State Univ, Dept Geog, State Coll, PA USA
[2] Oregon State Univ, Sch Elect Engn & Comp Sci, Corvallis, OR 97331 USA
[3] Macquarie Univ, Risk Frontiers, Sydney, NSW, Australia
基金
美国国家科学基金会;
关键词
Software testing; Domain-specific languages; Explicit-state model checking; End-user testing; Geographic information systems;
D O I
10.1007/s10009-016-0445-y
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A test harness, in automated test generation, defines the set of valid tests for a system, as well as their correctness properties. The difficulty of writing test harnesses is a major obstacle to the adoption of automated test generation and model checking. Languages for writing test harnesses are usually tied to a particular tool and unfamiliar to programmers, and often limit expressiveness. Writing test harnesses directly in the language of the software under test (SUT) is a tedious, repetitive, and error-prone task, offers little or no support for test case manipulation and debugging, and produces hard-to-read, hard-to-maintain code. Using existing harness languages or writing directly in the language of the SUT also tends to limit users to one algorithm for test generation, with little ability to explore alternative methods. In this paper, we present TSTL, the template scripting testing language, a domain-specific language (DSL) for writing test harnesses. TSTL compiles harness definitions into an interface for testing, making generic test generation and manipulation tools for all SUTs possible. TSTL includes tools for generating, manipulating, and analyzing test cases, including simple model checkers. This paper motivates TSTL via a large-scale testing effort, directed by an end-user, to find faults in the most widely used geographic information systems tool. This paper emphasizes a new approach to automated testing, where, rather than focus on developing a monolithic tool to extend, the aim is to convert a test harness into a language extension. This approach makes testing not a separate activity to be performed using a tool, but as natural to users of the language of the system under test as is the use of domain-specific libraries such as ArcPy, NumPy, or QIIME, in their domains. TSTL is a language and tool infrastructure, but is also a way to bring testing activities under the control of an existing programming language in a simple, natural way.
引用
收藏
页码:57 / 78
页数:22
相关论文
共 84 条
[11]  
[Anonymous], 2001, Model checking
[12]  
[Anonymous], 1994, Encyclopedia of software Engineering
[13]  
[Anonymous], 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, ISSTA 2014
[14]  
[Anonymous], 2010, Proceedings of the 19th International Symposium on Software Testing and Analysis, ISSTA'10
[15]  
Arcuri Andrea., 2011, Proceedings of the 2011 International Symposium on Software Testing and Analysis, P265
[16]   LITTLE LANGUAGES [J].
BENTLEY, J .
COMMUNICATIONS OF THE ACM, 1986, 29 (08) :711-721
[17]   End-user software engineering [J].
Burnett, M ;
Cook, C ;
Rothermel, G .
COMMUNICATIONS OF THE ACM, 2004, 47 (09) :53-58
[18]  
Cadar C., 2008, Proceedings of the 8th USENIX conference on Operating systems design and implementation, OSDI'08, (USA), P209
[19]   QIIME allows analysis of high-throughput community sequencing data [J].
Caporaso, J. Gregory ;
Kuczynski, Justin ;
Stombaugh, Jesse ;
Bittinger, Kyle ;
Bushman, Frederic D. ;
Costello, Elizabeth K. ;
Fierer, Noah ;
Pena, Antonio Gonzalez ;
Goodrich, Julia K. ;
Gordon, Jeffrey I. ;
Huttley, Gavin A. ;
Kelley, Scott T. ;
Knights, Dan ;
Koenig, Jeremy E. ;
Ley, Ruth E. ;
Lozupone, Catherine A. ;
McDonald, Daniel ;
Muegge, Brian D. ;
Pirrung, Meg ;
Reeder, Jens ;
Sevinsky, Joel R. ;
Tumbaugh, Peter J. ;
Walters, William A. ;
Widmann, Jeremy ;
Yatsunenko, Tanya ;
Zaneveld, Jesse ;
Knight, Rob .
NATURE METHODS, 2010, 7 (05) :335-336
[20]  
Chelimsky D., 2010, RSPEC BOOK BEHAV DRI