Software Reliability, sofrel12
This page is under regular maintenance. Please bookmark it and check regularly for changes.
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.
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.
- 2012-04-17: I have returned the exam papers to studentexpeditionen (level 2, CSC building) and the grades are in Rapp. Model answers will be placed below. Some students have not yet finished all labs. You must finish all labs to pass the course and get credit in Ladok.
- 2012-03-14: The examination for this course will be placed on this web page this afternoon.
You will be able to download it here
- 2012-02-21: The examination for this course has been scheduled for Wednesday 14th March. It will be an open-book take-home exam that you can download from this web page, and sit at home. You will have 36 hours to work on the exam. Further instructions will be given later.
- 2012-02-02: I have put a revised version of lab 2 on this web page with some corrections and clarifications. Please make sure you use this new version.
- 2012-01-26: I have now put all lecture slides in .pptx and .pdf formats on this page. Lab 2 has been added.
- 2012-01-26: I have put a new copy of Lab 1 on this web page, which corrects some typo errors in the original.
- 2011-09-29: The course will begin in January 2012 for the first time.
Here are past and current exam papers:
All students must ensure that their names are registered within the rapp system to ensure they receive a grade in LADOK. If your name has not been entered, please contact your study advisor. I cannot enter names into rapp for you.
During the last week of the course a course evaluation form will be distributed.
If you miss this class you can download the
course evaluation form
return it (filled in) to my mail tray (Karl Meinke) on level 4 at any time.
- P. Amman and J. Offutt, Introduction to Software Testing, Cambridge University Press, 2008.
You may like to do further background reading, during the course or at a later date. The following texts can be recommended:
- G. Fraser et al., Testing with model checkers: a Survey, 2007.
- Model-based testing: M. Utting and B. Legeard, Practical Model-Based Testing: a Tools Approach, Morgan Kaufmann, 2007.
- Context-driven school of testing: C. Kaner, J. Bach, B. Pettichord, Lessons Learned in Software Testing, a Context-Driven Approach, Wiley, 2001.
- Quality school of testing: E. Kit, Software Testing in the Real World, Addison Wesley, 1995.
- Standards school of testing: W. Hetzel, The Complete Guide to Software Testing, Wiley, 1993.
- Agile school of testing: L. Crispin and J. Gregory, Agile Testing: A Practical Guide for Testers and Agile Teams, Addison Wesley, 2009.
The course DD2459 runs during period 3 of 2012. The exact timetable can be found using
using the course code DD2459.
Practical Laboratory Work
To pass the course you must complete and submit *all* lab assignments.