Search course

Use the search function to find more information about the study programmes and courses available at Chalmers. When there is a course homepage, a house symbol is shown that leads to this page.

Graduate courses

Departments' graduate courses for PhD-students.


Syllabus for

Academic year
TDA567 - Testing, debugging and verification
Syllabus adopted 2014-02-25 by Head of Programme (or corresponding)
Owner: TKITE
7,5 Credits
Grading: TH - Five, Four, Three, Not passed
Education cycle: First-cycle
Major subject: Computer Science and Engineering, Information Technology

Teaching language: English
The course is open for exchange students
Block schedule: A

Course elements   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0114 Laboratory 2,5c Grading: UG   2,5c    
0214 Examination 5,0c Grading: TH   5,0c   12 Jan 2015 pm H,  14 Apr 2015 pm V

In programs

TIDAL COMPUTER ENGINEERING, Year 3 (compulsory elective)


Docent  Laura Kovacs


TDA565   Program verification TDA566   Testing, debugging and verification

Course evaluation:

  Go to Course Homepage



In order to be eligible for a first cycle course the applicant needs to fulfil the general and specific entry requirements of the programme(s) that has the course included in the study programme.

Course specific prerequisites

To be eligible for the course students should have successfully completed:
  • one year of an education aiming at a bachelor degree within Computer Science, Computer Engineering, Software Engineering, or equivalent
  • a course in discrete mathematics (such as TMV200)
  • a course in object oriented programming (such as TDA545)


The aim of the course is to provide a basic understanding of techniques that cope with errors in programs, and skills in how to employ these techniques. Reoccurring themes are a) the identification of errors, b) their analysis, and c) their removal. The course also provides understanding of - and skills in - systematic ways of creating evidence that a program unit really does what it should.

Learning outcomes (after completion of the course the student should be able to)

After completion of the course the student is expected to be able to
- describe the possibilities and limitations of both informal and formal techniques for the discovery, analysis, and resolving of program errors
- describe the concept of precise specifications of software units
- discuss the principles of verification
- express precise specifications of software units
- characterise inputs on which a program fails
- locate, analyse, and fix the error which caused the failure
- formally reason about simple programs for guaranteeing correctness
- judge the various error tracing and prevention practices they encounter
- contribute to the development and improvement of error removal and prevention techniques in a given context
- follow up on, and take advantage of, conceptual and technical developments in the area of testing, debugging, and verification that go beyond the exact techniques covered in the course


Contrasting formal and informal methods, testing (terminology, coverage, unit tests, a unit test framework), debugging (control, workflow, localisation, tools), formal specifications (pre-/postconditions, invariants), formal verification (logics, tool support). Throughout, the course is concerned with imperative programs in general, and object-oriented programs in particular.


The course is held as a combination of lectures, exercise classes and assignments (labs), as detailed in the course home page.


The course slides and relevant literature will be distributed online on the course home page.


The course is examined by a final individual written hall exam, 5.0 hec, and Laboration (practical hand-in assignments), 2.5 hec. The laborations are usually done in groups of 2-3 students.

In case a practical hand-in assignment is not passed in the first attempt, the student is granted a second try.

The exam and the labs can be passed independently. However, to pass the course both the labs and exam must have been passed. In case of a pass, the final course grade is determined by the final exam.

Published: Fri 18 Dec 2009. Modified: Mon 28 Nov 2016