PUT

ICSE 2010 Tutorial T8 (Monday, 3 May 2010 Afternoon)

Parameterized Unit Testing: Theory and Practice

Nikolai Tillmann, Jonathan de Halleux(Microsoft Research)

Tao Xie ( North Carolina State University)

Latest Talk Slides (PPT)

Among various types of testing, developer testing has been widely recognized as an important and valuable means of improving software reliability, partly due to its capabilities of exposing bugs early in the development life cycle. Recently parameterized unit testing has emerged as a very promising and effective methodology to allow the separation of two developer testing concerns or tasks: the specification of external, black-box behavior (i.e., assertions or specifications) by developers and the generation and selection of internal, white-box test inputs (i.e., high-code-covering test inputs) by tools. A parameterized unit test (PUT) is simply a test method that takes parameters, calls the code under test, and states assertions. PUTs have been supported by JUnit 4 and .NET test frameworks such as NUnit, xUnit, and MbUnit. Various industrial testing tools such as Pex for Microsoft Visual Studio .NET and Agitar AgitarOne for Java also exist to generate test inputs for PUTs.

This tutorial presents the latest research and practice on principles, techniques, and applications of parameterized unit testing in practice, highlighting success stories, research and education achievements, and future research directions in developer testing. The tutorial will help improve developer skills and knowledge for writing PUTs and give overview of tool automation in supporting PUTs. Attendees will acquire the skills and knowledge needed to perform research or conduct practice in the field of developer testing and to integrate developer testing techniques in their own research, practice, and education.

Related Links:

Venues of Presentations: