Course syllabus for Testing, debugging and verification

The course syllabus contains changes
See changes

Course syllabus adopted 2022-02-14 by Head of Programme (or corresponding).

Overview

  • Swedish nameTestning, felsökning och verifiering
  • CodeTDA567
  • Credits7.5 Credits
  • OwnerTIDAL
  • Education cycleFirst-cycle
  • Main field of studyComputer Science and Engineering, Software Engineering
  • DepartmentCOMPUTER SCIENCE AND ENGINEERING
  • GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail

Course round 1

  • Teaching language English
  • Application code 62126
  • Block schedule
  • Open for exchange studentsYes

Credit distribution

0114 Laboratory 2.5 c
Grading: UG
0 c2.5 c0 c0 c0 c0 c
0214 Examination 5 c
Grading: TH
0 c5 c0 c0 c0 c0 c
  • 14 Jan 2025 am J
  • 16 Apr 2025 pm J
  • Contact examiner

In programmes

Examiner

Go to coursepage (Opens in new tab)

Eligibility

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, TMV211)
  • a course in object oriented programming (such as DAT050)

Aim

The main aim of the course is to provide a basic understanding of techniques that cope with errors in programs. Recurring themes are:

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

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.

Content

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.

Organisation

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

Literature

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.

The course syllabus contains changes

  • Changes to course rounds:
    • 2024-04-15: Examinator Examinator changed from Wolfgang Ahrendt (ahrendt) to Yehia Abd Alrahman (yehiaa) by Viceprefekt/adm
      [Course round 1]