Search programme

​Use the search function to search amongst programmes at Chalmers. The study programme and the study programme syllabus relating to your studies are generally from the academic year you began your studies.

Syllabus for

Academic year
TDA566 - Testing, debugging and verification
 
Syllabus adopted 2013-02-20 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 module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0108 Examination 7,5 c Grading: TH   7,5 c   18 Dec 2013 am M,  23 Apr 2014 pm V
0208 Laboratory 0,0 c Grading: UG   0,0 c    

In programs

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

Examiner:

Docent  Wolfgang Ahrendt


Replaces

TDA565   Program verification

Course evaluation:

http://document.chalmers.se/doc/fe2555aa-eb4a-4807-a4c9-3cfbac596537


  Go to Course Homepage

Eligibility:

For single subject courses within Chalmers programmes the same eligibility requirements apply, as to the programme(s) that the course is part of.

Course specific prerequisites

The requirement for the course is to have successfully completed one year of an education aiming at a bachelor degree within Computer science or equivalent. Also, basic knowledge of discrete mathematics and object-oriented programming is required.

Aim

The main aim of the course is to provide a basic understanding of techniques that cope with errors in programs. Reoccurring themes are a) the identification of errors, b) their analysis, and c) their removal. The course also provides an understanding of systematic ways of convince oneself that a program unit really does what it should. After the course, students should have understood - and be 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 sence in the the presence of a specification of what the program is supposed to do. In the course students will also learn how to use precise methods for writing requirements.

Learning outcomes (after completion of the course the student should be able to)

    * judge the possibilities and limitations of both informal and formal techniques for the discovery, analysis, and resolving of program errors
    * understand and express precise specifications of software units
    * systematically discover inputs on which a program fails
    * locate, analyse, and fix the error which caused the failure
    * reason about simple programs for guaranteeing correctness.

Content

Contrasting formal and informal methods, Testing (terminology, coverage, unit tests, JUnit), Debugging (control, workflow, localisation, tools), Formal specifications (assertions, invariants, JML), Automatic test case generation, Formal verification (Hoare logic, 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). Details are available from the course home page.

Literature

See the course homepage.

Examination

Written exam, and mandatory hand-ins.


Page manager Published: Mon 28 Nov 2016.