Upcoming seminars.

contentimg_img_1

This is the web page for the departmental research seminars at the Department of Computer Science at Aalborg University.

If you are interested in giving a seminar or would like further information, please contact Hans Hüttel (hans@cs.aau.dk).


19 May 2010 10:00, room 0.2.13

Pex: Advanced Unit Testing.

Nikolai Tillmann
Microsoft

I will talk about how automated program analysis techniques can be combined with unit testing to develop more thoroughly tested code in less time. First, the developer writes Parameterized Unit Tests (PUTs) instead of traditional unit tests. PUTs are algebraic specifications written as code, describing the behavior of a program from a client's point of view. Then Pex, an incubation project for Visual Studio developed at Microsoft Research, analyzes the PUTs together with the code under test. Pex computes test inputs that will trigger different program behaviors. The result is a small traditional test suite that often achieves high code coverage and may expose bugs. To this end, Pex performs dynamic symbolic execution, where the program is executed multiple times with different concrete inputs, while the taken execution paths are monitored at the instruction level. A constraint solver computes new concrete test inputs that will exercise different execution paths. Pex provides a framework called Moles that makes it easy to isolate code from environment dependencies for unit testing. Pex has been used in Microsoft to test core .NET components. Pex is publicly available, enabling a new software development and testing experience.

19 May 2010 11:00, room 13

Code Contracts.

Mike Barnett

Code Contracts for .NET is a comprehensive system for design-by-contract programming throughout the .NET platform. It consists of a standardized API for expressing preconditions and postconditions for methods as well as object invariants. It allows programmers to document these common programming assumptions in a maintainable and machine-readable form. Code Contracts are publically available through Microsoft Visual Studio’s DevLabs incubation website.

Having a standard API that is accessible from all .NET languages means that tools can take advantage of the contracts authored in any .NET language. We demonstrate our prototype tools for automatic documentation generation, runtime checking, static analysis, and IDE integration. We also discuss the design choices for such a system, the technical challenges, and the future prospects for Code Contracts becoming an integral part of the .NET Framework.