Syllabus for |
|
TDA567 - Testing, debugging and verification |
Testning, felsökning och verifiering |
|
Syllabus adopted 2021-02-26 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 |
Main field of study: Computer Science and Engineering, Software Engineering
|
Department: 37 - COMPUTER SCIENCE AND ENGINEERING
|
Teaching language: English
Application code: 62115
Open for exchange students: Yes
Block schedule:
C
Module |
|
Credit distribution |
|
Examination dates |
Sp1 |
Sp2 |
Sp3 |
Sp4 |
Summer course |
No Sp |
0114 |
Laboratory |
2,5 c |
Grading: UG |
|
|
2,5 c
|
|
|
|
|
|
|
0214 |
Examination |
5,0 c |
Grading: TH |
|
|
5,0 c
|
|
|
|
|
|
11 Jan 2022 am J, |
13 Apr 2022 pm J, |
Contact examiner |
In programs
MPSYS SYSTEMS, CONTROL AND MECHATRONICS, MSC PROGR, Year 1 (elective)
TIDAL COMPUTER ENGINEERING - Common branch of study, Year 3 (compulsory elective)
TKITE SOFTWARE ENGINEERING, Year 2 (elective)
TKITE SOFTWARE ENGINEERING, Year 3 (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.
The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.