DD2459 Software Reliability 7.5 credits


The subject matter of this course concerns modern and practical techniques for software testing and reliability modeling, suitable for the working software engineer.

Software testing concerns the problem of analyzing and evaluating software products to reach some conclusion about their fitness for use. For safety critical, mission critical and enterprise critical systems development it is nowadays essential to have some form of software quality assurance measures in place within an IT project. Quality assurance measures may involve both managerial and technical procedures. However, the primary focus of this course will be on technical procedures to predict, discover and diagnose errors in software systems.

Show course information based on the chosen semester and course offering:

Offering and execution

No offering selected

Select the semester and course offering above to get information from the correct course syllabus and course offering.

Course information

Content and learning outcomes

Course contents *

The course will cover the following topics:

  • software testing concepts according to the V-model
  • graphical requirements modeling, including use case modeling
  • logical requirements modeling, including preconditions, postconditions and class invariants
  • graph coverage models
  • logic coverage models
  • input space partitioning
  • syntax based testing
  • reliability models
  • advanced topics such as automated and model based testing.

The theoretical subjects are supported by laboratories that are intended to deepen the student’s understanding of important concepts.

Intended learning outcomes *

After the course the student shall be able to: 

  • identify the basic activities needed for software testing, including requirements capture, test planning, test case generation, test case execution, fault diagnosis and fault correction,
  • construct requirements models for simple embedded, reactive and object-oriented systems,
  • construct a test suite for a simple requirements model,
  • assess the quality of a test suite according to a variety of coverage models.

Course Disposition

No information inserted

Literature and preparations

Specific prerequisites *

Single course students:

SF1604 Linear algebra, SF1625 Calculus in one variable, DD1337 Programming, DD1338 Algorithms and Data Structures, or corresponding courses.

Recommended prerequisites

Discrete mathematics corresponding to SF1630, SF1662, SF1679 or SF1688.


No information inserted


Kurslitteratur meddelas senast 4 veckor innan kursstart på kursens hemsida.

Examination and completion

Grading scale *

A, B, C, D, E, FX, F

Examination *

  • LAB1 - Laboratory Work, 3.0 credits, Grading scale: P, F
  • TEN1 - Examination, 4.5 credits, Grading scale: A, B, C, D, E, FX, F

Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.

The examiner may apply another examination format when re-examining individual students.

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted


Karl Meinke

Further information

Course web

Further information about the course can be found on the Course web at the link below. Information on the Course web will later be moved to this site.

Course web DD2459

Offered by

EECS/Computer Science

Main field of study *

Computer Science and Engineering

Education cycle *

Second cycle

Add-on studies

No information inserted


Karl Meinke, e-post: karlm@kth.se

Ethical approach *

  • All members of a group are responsible for the group's work.
  • In any assessment, every student shall honestly disclose any help received and sources used.
  • In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.

Supplementary information

In this course, the EECS code of honor applies, see: