Syllabus

Testing, Debugging and Verification

Testning, felsökning & verifiering

Course
DIT084
First cycle
7.5 credits (ECTS)
Disciplinary domain
NA Natural sciences 100%

About the Syllabus

Registration number
GU 2025/3968
Date of entry into force
2026-03-15
Decision date
2025-11-27
Valid from semester
Autumn term 2026
Decision maker
Department of Computer Science and Engineering

Grading scale

Four-grade scale, digits

Course modules

Written hall examination, 5 credits
Laboratory work, 2.5 credits

Position

The course is mandatory within Computer Science, Bachelor's Programme (N1COS).

The course can be part of the following programmes:

  1. Computer Science, Master's Programme (N2COS)
  2. Software Engineering and Management, Master's Programme (N2SOF)
  3. Applied Data Science, Master's Programme (N2ADS)

The course is a also a single-subject course at Gothenburg University.

Main field of study with advanced study

ITDVA Computer Science - G1F First cycle, has less than 60 credits in first-cycle course/s as entry requirements

Entry requirements

To be eligible for the course students should have successfully completed 45 hec of an education aiming at a bachelor degree within Computer Science, Software Engineering or equivalent. Within these 45 hec, the student should have successfully completed:

  • A 7.5 hec course in discrete mathematics (such as DIT980)
  • A 7.5 hec course in imperative/object-oriented programming (such as DIT012 or DIT953)

Applicants must prove knowledge of English: English 6/English level 2 or the equivalent level of an internationally recognized test, for example TOEFL, IELTS.

Content

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, and c) their removal. The course also provides an understanding of systematic ways to convince oneself that a program unit really does what it should.

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

Objectives

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.

Sustainability labelling

No sustainability labelling.

Form of teaching

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

Language of instruction: English

Examination formats

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.


If a student who has been failed twice for the same examination element wishes to change examiner before the next examination session, such a request is to be granted unless there are specific reasons to the contrary (Chapter 6 Section 22 HF).

If a student has received a certificate of disability study support from the University of Gothenburg with a recommendation of adapted examination and/or adapted forms of assessment, an examiner may decide, if this is consistent with the course’s intended learning outcomes and provided that no unreasonable resources would be needed, to grant the student adapted examination and/or adapted forms of assessment.

If a course has been discontinued or undergone major changes, the student must be offered at least two examination sessions in addition to ordinary examination sessions. These sessions are to be spread over a period of at least one year but no more than two years after the course has been discontinued/changed. The same applies to placement and internship (VFU) except that this is restricted to only one further examination session.

If a student has been notified that they fulfil the requirements for being a student at Riksidrottsuniversitetet (RIU student), to combine elite sports activities with studies, the examiner is entitled to decide on adaptation of examinations if this is done in accordance with the Local rules regarding RIU students at the University of Gothenburg.

Grades

Sub-courses

  1. Written hall examination, 5 credits
    Grading scale: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U)
  2. Laboratory work, 2.5 credits
    Grading scale: Pass (G) and Fail (U)

The grading scale comprises: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U).

To pass the course, students must receive a passing grade in both modules. The grade for the entire course will be determined by the written exam.

Course evaluation

The course is evaluated through meetings both during and after the course between teachers and student representatives. Further, an anonymous questionnaire is used to ensure written information. The outcome of the evaluations serves to improve the course by indication which parts could be added, improved, changed or removed.

Other regulations

The course is a joint course together with Chalmers.

The course replaces the course DIT083 Testing, debugging and verification, 7.5credits. The course cannot be included in a degree which contains DIT083. Neither can the course be included in a degree which is based on another degree in which the course DIT083 is included.

The course cannot be included in a degree which contains DIT635. Neither can the course be included in a degree which is based on another degree in which the course DIT635 is included.