DD3459 Software Reliability 9.0 credits

Mjukvaru pålitlighet

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.

Performance on the course for individuals will be assessed by the grade awarded for lab work and a take-home examination. Successfully completed lab work gives a total of 3 points. The examination gives 4.5 points. The total number of points given by the course is 7.5 points.

In addition to the Masters level course which involves lab work 3 hp and an exam 4.5 hp, the graduate level version of this course requires an extra graduate level project for 1.5hp.

This will typically be based on a taking a research paper in software testing, implementing some practical aspects of it to perform testing experiments at an advanced level, and writing the results up in a written report.

  • Education cycle

    Third cycle
  • Main field of study

  • Grading scale

    P, F

At present this course is not scheduled to be offered.

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 different kinds of systems, including procedural, embedded and object-oriented systems, construct a test suite from a simple test requirement model, construct a state transition model for model-based testing, automatically generate test cases using a test-case generation (TCG) tool, assess the quality of a test suite according to a variety of coverage models.

Course main content

The course will include the following topics:

software testing concepts according to the V-model different schools of testing white-box testing graph coverage models logic coverage models data flow coverage models black-box testing random testing pairwise testing boundary testing model-based testing statechart models specification-based testing graphical requirements modeling, including use-case modeling logical requirements modeling, including preconditions, postconditions and class invariants, JML, OCL temporal logic requirements modeling, including safety and liveness properties automated test case generation using model checkers advanced topics such as mutation testing. The theoretical subjects are supported by laboratories that are intended to deepen student understanding of important concepts.

Eligibility

Literature

Examination

  • EXA1 - Examination, 9.0, grading scale: P, F

Offered by

EECS/Theoretical Computer Science

Contact

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

Examiner

Karl Meinke <karlm@kth.se>

Version

Course syllabus valid from: Spring 2013.
Examination information valid from: Spring 2019.