|
Schedule
Lectures: 11:15-13:00, room 402
|
Goal
The course presents an introduction to the fundamentals of software testing, explaining the principle in testing and the basic test types. The main focus is on unit testing and object-orientation. Students are expected to read, understand and present research papers on testing object-oriented systems, and to design and program in teams (part of) a test environment for unit testing, in which a Java class can be tested in isolation. Each student is expected to write a short report about the results obtained. This report will be written in scientific paper format and, provided that the quality of the results is sufficient, we will encourage and help the authors to submit this paper to a scientific conference. .
Description
Software testing is the process of executing a program with the intent of finding errors. Most of the defects in software are design errors, due not to the goodness of programmers, but because the complexity of software is becoming intractable. Testing is more than just debugging. Testing is not only used to locate defects and correct them. It is also used in validation and verification of software systems.
Due to the large diversity of testing methods and testing techniques, this course focuses on the fundamentals of testing object-oriented systems, with a particular focus on unit testing, in which a class can be tested in isolation.
The course is divided in three blocks. The first block is an introduction to software testing and to software testing activities. In the second block the students will receive a research paper on testing object oriented systems to read, understand and present in class. Finally, in the third block the students will be grouped in teams with the goal of to design and program a prototype test environment for an object oriented language.
Literature

Schedule Lectures
| Nun | Date | Topic | Reading | Slides | Exercises |
| 1a | 6 sep | Overview and motivation | Slides 0 | ||
| 1b | What is testing? | [AO08]:1 | Slides 1 | ||
| 2a | 13 sep | Tasks assignment | [AO08]:2.2.1.5, 2.2.3.1, 2.3.7 | ||
| 3a | 20 sep | Structural graph coverage | [AO08]:2.1, 2.2.1 | Wang Yi | |
| 3b | Data flow graph coverage | [AO08]:2.2.2, 2.2.3, 2.3 | Wang Hao | ||
| 27 Sep | No lesson | ||||
| 4a | 4 oct | Discussion: From graph to program | |||
| 4b | Graph coverage for programs and specifications | [AO08]:2.4, 2.5 | Enrico | ||
| 5a | 11 oct | Logic coverage | [AO08]:3.1, 3.2 | Jim | |
| 5b | Logic coverage of programs | [AO08]:3.3, 3.4 | Martin | ||
| 6a | 18 oct | Input space partitioning | [AO08]:4.1, 4.2 | Oswald | |
| 6b | Syntax based testing | [AO08]:5.1, 5.2 | Frank A. | ||
| 7a | 25 oct | Integration and OO testing, Specification-based grammars | [AO08]:5.3, 5.4 | Wouter | Assignment 1 |
| 7b | Testing OO software | [AO08]:7.1 | Frank v.S. | ||
| 8a | 1 nov | Building testing tools | [AO08]:8.1, 8.2 | Eric | |
| 8b | Mock objects and interaction testing | [O09]:4 | Roxana | ||
| 9a | 8 nov | Mock objects | [O09]:5 | Kabamba | |
| 9b | Assignment1 discussion | Frank and Marcello | |||
| 9 | 15 nov | Assignment 1 presentations | all | ||
| 10 | 22 nov | Assignment2 discussion | Frank and Marcello | ||
| 11 | 29 nov | Assignment 2 presentations | all | ||
| 12 | 6 dec | Assignment 2 presentations | all |
Bibliography
[AO08] P. Ammann and J. Offutt, Introduction to software testing, Cambridge University Press, 2008.
[O09] Roy Osherove, The Art of Unit Testing with Examples in .NET, Manning Publications, 2009.
Examinations
The final grade is a combination of grades for(1) the presentation (50%) and
(2) the report on own contribution of the programming assignment (50%).
