Search programme

​Use the search function to search amongst programmes at Chalmers. The study programme and the study programme syllabus relating to your studies are generally from the academic year you began your studies.

Syllabus for

Academic year
TDA567 - Testing, debugging and verification
Testning, felsökning och verifiering
Syllabus adopted 2021-02-26 by Head of Programme (or corresponding)
Owner: TIDAL
7,5 Credits
Grading: TH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail
Education cycle: First-cycle
Main field of study: Computer Science and Engineering, Software Engineering

Teaching language: English
Application code: 62115
Open for exchange students: Yes
Block schedule: C

Module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0114 Laboratory 2,5 c Grading: UG   2,5 c    
0214 Examination 5,0 c Grading: TH   5,0 c   11 Jan 2022 am J,  13 Apr 2022 pm J,  Contact examiner

In programs

TIDAL COMPUTER ENGINEERING - Common branch of study, Year 3 (compulsory elective)


Moa Johansson

  Go to Course Homepage


General entry requirements for bachelor's level (first cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

The same as for the programme that owns the course.
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

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 main aim of the course is to provide a basic
understanding of techniques that cope with errors in programs. Recurring themes

a) the identification of errors

b) their analysis

c) their removal.

The course also provides an understanding of
systematic ways to convince oneself that a program unit really does what it

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

Knowledge and understanding:
  • 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 software verification.
Competence and skills:
  • Express precise specifications of software units,
  • Systematically discover inputs on which a program fails,
  • Locate, analyse, and fix the error which caused the failure,
  • Formally reason about simple programs for guaranteeing correctness.
Judgement and approach:
  • Judge the various error removal and prevention practices that one can encounter in a working context,
  • 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.


The course covers 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.

After the course, students have understood - and are able to employ - the methods testing (trying to reveal the presence of errors in a systematic way), debugging (the act of isolating and fixing errors), and verification (reasoning about programs in order to guarantee correctness). All these methods only make sense in the presence of a specification of what the program is supposed to do.


The course consists of lectures, exercise classes and laboratory work.


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

Examination including compulsory elements

The course is examined by a final individual written hall examination 5.0 hec at the end of the course, and laboratory work (hand-ins) 2.5 hec.

The laboratory work (hand-ins) is usually done in groups of 2-3 students.
In case a hand-in is not passed in the first attempt, the student is granted a second try.

A passing grade for the course requires a passing grade on both the laboratory work and the written hall examination.
Providing the student passes the course, the grade on the course is determined by the grade on the written hall examination.

The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.

Page manager Published: Mon 28 Nov 2016.