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
TDA567 - Testing, debugging and verification
Testning, felsökning och verifiering
 
Syllabus adopted 2020-02-17 by Head of Programme (or corresponding)
Owner: TIDAL
7,5 Credits
Grading: TH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail
Education cycle: First-cycle
Major subject: Computer Science and Engineering, Information Technology
Department: 37 - COMPUTER SCIENCE AND ENGINEERING


Teaching language: English
Application code: 62118
Open for exchange students: Yes
Block schedule: C

Module   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 2021 am J   09 Apr 2021 pm J,  Contact examiner

In programs

TKITE SOFTWARE ENGINEERING, Year 2 (elective)
TKITE SOFTWARE ENGINEERING, Year 3 (elective)
TIDAL COMPUTER ENGINEERING - Common branch of study, Year 3 (compulsory elective)
MPSYS SYSTEMS, CONTROL AND MECHATRONICS, MSC PROGR, Year 1 (elective)

Examiner:

Moa Johansson

  Go to Course Homepage


Eligibility

General entry requirements for bachelor's level (first cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

The same as for the programme that owns the course.
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

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 main aim of the course is to provide a basic
understanding of techniques that cope with errors in programs. Recurring themes
are:

a) the identification of errors

b) their analysis

c) their removal.



The course also provides an understanding of
systematic ways to convince oneself 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

Knowledge and understanding:
  • 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 software verification.
Competence and skills:
  • Express precise specifications of software units,
  • Systematically discover inputs on which a program fails,
  • Locate, analyse, and fix the error which caused the failure,
  • Formally reason about simple programs for guaranteeing correctness.
Judgement and approach:
  • Judge the various error removal and prevention practices that one can encounter in a working context,
  • 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

The course covers 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.

After the course, students have understood - and are 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 sense in the presence of a specification of what the program is supposed to do.

Organisation

The course consists of lectures, exercise classes and laboratory work.

Literature

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

Examination including compulsory elements

The course is examined by a final individual written hall examination 5.0 hec at the end of the course, and laboratory work (hand-ins) 2.5 hec.

The laboratory work (hand-ins) is usually done in groups of 2-3 students.
In case a hand-in is not passed in the first attempt, the student is granted a second try.

A passing grade for the course requires a passing grade on both the laboratory work and the written hall examination.
Providing the student passes the course, the grade on the course is determined by the grade on the written hall examination.


Published: Mon 28 Nov 2016.