Parameterized unit testing

Nikolai Tillmann (Microsoft Research)

Developer testing has been widely recognized as an important and valuable means of improving software reliability. Recently Parameterized Unit Testing has emerged as a very promising and effective methodology to separate two concerns: the specification of externally visible behavior by developers (black-box) and the generation and selection of relevant test inputs by tools (white-box). Pex is a tool that automatically produces a small test suite with high code coverage for a .NET program. To this end, Pex performs a systematic program analysis (using dynamic symbolic execution with the SMT solver Z3) to determine test inputs for Parameterized Unit Tests. This course presents principles, techniques, and applications of Parameterized Unit Testing in practice, and the Pex tool in particular. This course will also discuss the relationship to Code Contracts, a contract language for .NET. Exercises will leverage the interactive websites pex4fun.com and rise4fun.com.

El curso será dictado en inglés. La evaluación consiste en un examen con modalidad "take-home".


Acerca del profesor

Nikolai Tillmann has been working at Microsoft Research since 2001. His main areas of research are program authoring on mobile devices, program analysis, testing, code optimization, and verification. He leads the Pex project, a framework for runtime verification and automatic test case generation for .NET applications based on parameterized unit testing and dynamic symbolic execution. He is also involved in the Spur project, where he is working on a tracing Just-In-Time compiler for .NET and JavaScript code. Most recently, he started the TouchDevelop project, which enables writing of programs for mobile devices on mobile devices.