LIACS > Marcello M. Bonsangue >Testing Object Oriented Systems
Lecturers Frank de Boer
Marcello Bonsangue
Course number
Class number
Prerequisites Student MSc Computer Science
Language English
Hackathon 17 Dec 2017 from 9:00 to 17:00 in room t.b.a.
Schedule Fall 2018

September 17, 24
October 1, 8, 15, 22, 29
November 5, 12, 19, 26
December 3, 10

Lectures: 11:00-12:45, room Huygens 207 (except for the last lecture on 4 Dec that will be in  Snellius B01)


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. .


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 consists of lectures, in-class assignements and a final programming work, where the students will be grouped in teams with the goal of to design and program a prototype test environment for an object oriented language.


P. Ammann and J. Offutt Introduction to software testing, Cambridge University Press, 2008. ISBN 978-0-521-88038-1

Schedule Lectures

Nun Date Topic Reading Remarks


[AO08] P. Ammann and J. Offutt, Introduction to software testing, Cambridge University Press, 2008.

[Ham02] R. Hamlet. Random Testing. In Encyclopedia of Software Engineering, Wiley, 2002.

[LMPBL05] G. Lee, J. Morris, K. Parker, G.A. Bundell, and P. Lam. Using symbolic execution to guide test generation. Software Testing, Verification and  Reliability 15:41–61, 2005. 

[PY08] M. Pezzè and M. Young. Software Testing and Analysis: Process, Principles, and Techniques.  John Wiley & Sons, 2008.

[Tre08] J. Treatmans. Model Based Testing with Labelled Transition Systems. Formal Methods and Testing:1-38,  .


The final grade is a combination of grades for
(1) in-class assignments (40%)
(2) a critical attitude in class (10%) and
(3) a programming assignments (50%).