The course syllabus contains changes
See changesCourse syllabus adopted 2022-02-14 by Head of Programme (or corresponding).
Overview
- Swedish nameTestning, felsökning och verifiering
- CodeTDA567
- Credits7.5 Credits
- OwnerTIDAL
- Education cycleFirst-cycle
- Main field of studyComputer Science and Engineering, Software Engineering
- DepartmentCOMPUTER SCIENCE AND ENGINEERING
- GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail
Course round 1
- Teaching language English
- Application code 62115
- Block schedule
- Open for exchange studentsYes
Credit distribution
Module | Sp1 | Sp2 | Sp3 | Sp4 | Summer | Not Sp | Examination dates |
---|---|---|---|---|---|---|---|
0114 Laboratory 2.5 c Grading: UG | 2.5 c | ||||||
0214 Examination 5 c Grading: TH | 5 c |
|
In programmes
- 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
- Wolfgang Ahrendt
- Assistant Head of Department, Computer Science and Engineering
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, TMV211)
- a course in object oriented programming (such as DAT050)
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
- 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.
- 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.
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.
The course syllabus contains changes
- Changes to course rounds:
- 2022-10-07: Examinator Examinator changed from Moa Johansson (jomoa) to Wolfgang Ahrendt (ahrendt) by Viceprefekt/adm
[Course round 1]
- 2022-10-07: Examinator Examinator changed from Moa Johansson (jomoa) to Wolfgang Ahrendt (ahrendt) by Viceprefekt/adm