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:
- Pex - Automated White box Testing for .NET (free download)
- Pex Open Source Extensions (open source download)
- Wiki site for Teaching Parameterized Unit Testing/Pex
Venues of Presentations:
- ICSE 2009 by Jonathan de Halleux, Nikolai Tillmann, and Tao Xie
- TISQA 2009 by Tao Xie (PPT)(PDF)