Search course

Use the search function to find more information about the study programmes and courses available at Chalmers. When there is a course homepage, a house symbol is shown that leads to this page.

Graduate courses

Departments' graduate courses for PhD-students.

​​​​

Syllabus for

Academic year
TDA567 - Testing, debugging and verification
 
Syllabus adopted 2014-02-25 by Head of Programme (or corresponding)
Owner: TKITE
7,5 Credits
Grading: TH - Five, Four, Three, Not passed
Education cycle: First-cycle
Major subject: Computer Science and Engineering, Information Technology
Department: 37 - COMPUTER SCIENCE AND ENGINEERING


Teaching language: English
Open for exchange students
Block schedule: A

Course elements   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0114 Laboratory 2,5c Grading: UG   2,5c    
0214 Examination 5,0c Grading: TH   5,0c   12 Jan 2015 pm H,  14 Apr 2015 pm V

In programs

TKITE SOFTWARE ENGINEERING, Year 3 (elective)
TIDAL COMPUTER ENGINEERING, Year 3 (compulsory elective)
MPSYS SYSTEMS, CONTROL AND MECHATRONICS, MSC PROGR, Year 1 (elective)

Examiner:

Docent  Laura Kovacs

Replaces

TDA565   Program verification TDA566   Testing, debugging and verification

Course evaluation:

http://document.chalmers.se/doc/22a612e7-d6d9-4079-a58a-729fbfe7aca4


  Go to Course Homepage

 

Eligibility:

In order to be eligible for a first cycle course the applicant needs to fulfil the general and specific entry requirements of the programme(s) that has the course included in the study programme.

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

Aim

The aim of the course is to provide a basic understanding of techniques that cope with errors in programs, and skills in how to employ these techniques. Reoccurring themes are a) the identification of errors, b) their analysis, and c) their removal. The course also provides understanding of - and skills in - systematic ways of creating evidence 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
- 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 verification
- express precise specifications of software units
- characterise inputs on which a program fails
- locate, analyse, and fix the error which caused the failure
- formally reason about simple programs for guaranteeing correctness
- judge the various error tracing and prevention practices they encounter
- 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

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

Organisation

The course is held as a combination of lectures, exercise classes and assignments (labs), as detailed in the course home page.

Literature

The course slides and relevant literature will be distributed online on the course home page.

Examination

The course is examined by a final individual written hall exam, 5.0 hec, and Laboration (practical hand-in assignments), 2.5 hec. The laborations are usually done in groups of 2-3 students.


In case a practical hand-in assignment is not passed in the first attempt, the student is granted a second try.


The exam and the labs can be passed independently. However, to pass the course both the labs and exam must have been passed. In case of a pass, the final course grade is determined by the final exam.


Published: Fri 18 Dec 2009. Modified: Mon 28 Nov 2016