LIACS > Marcello M. Bonsangue >Foundation of Software Testing
Lecturers Frank de Boer
Marcello Bonsangue
Course number
Prerequisites Student MSc Computer Science and MSc ICT in Business and the Public Sector
Language English
Hackathon 10 Dec 2020, from 9:15 to max 17:00 online
Schedule Fall 2020

September 3, 10, 17, 24
October 1, 8, 15, 22, 29
November 5,  12, 19, 26
December 10 (hackathon, all day)

Lectures: 9:15-11:00, online


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 software testing , with a particular focus on unit testing, in which a single piece of software 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.

Check Brighspace for more information.


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