6 ECTS credits
150 h study time
Offer 1 with catalog number 4019541FNR for all students in the 2nd semester at a (F) Master - specialised level.
The goal of this course is to study advanced research in software quality. We explore modern tools and techniques for evaluating, assuring and improving the quality of software systems.
Topics include detecting common programming mistakes, finding clones in source code, monitoring assertions and program invariants, assessing the quality of test suites, and automatically generating tests.
The initial lectures present an overview of existing quality assurance techniques and their foundations:
1. Detecting and managing software clones
2. Detecting mechanical bugs using static analysis
3. Run-time monitoring of assertions and invariants
4. Assessing test suites using mutation analysis
5. Generating tests using symbolic execution
6. Debugging using program slicing
In the final lectures, we study recent publications to understand how these techniques are evolving to cope with the complexity of contemporary software. For these lectures, students prepare a presentation themselves on which they will be graded.
The goal of the practical sessions is to gain experience in applying, evaluating and possibly extending these techniques effectively to a real piece of software. Students will be graded on written reports about three assignments.
Lecture notes about the foundations of quality assurance techniques as well as current publications about their modern incarnations are available on the website of the course.
Students are able to describe the scope, power and applicability of existing tool-supported techniques for evaluating, assuring and improving the quality of software. Students are able to incorporate quality assurance tools successfully in the software lifecycle. To this end, students will be required to complete assignments in which they explore how existing tools fare in practice on realistic software. Students will be graded on a written report about three concrete assignments.
Based on a thorough grasp of the fundamentals, students are able to evaluate the novelty and applicability of future tools and techniques.
Students are able to analyze research papers in the domain of software quality. Students will be graded on a presentation that synthesizes the findings of at least two recent publications in the domain.
The final grade is composed based on the following categories:
Oral Exam determines 40% of the final mark.
Written Exam determines 60% of the final mark.
Within the Oral Exam category, the following assignments need to be completed:
Within the Written Exam category, the following assignments need to be completed:
Students will be graded as follows: 3 written assignments in which students explore how well existing quality assurance techniques fare in practice on realistic software (20% each), 1 oral presentation that synthesizes the findings of at least two recent publications on the foundations of a particular family of techniques in the domain (40%)
This offer is part of the following study plans:
Master of Applied Sciences and Engineering: Computer Science: Profile Artificial Intelligence
Master of Applied Sciences and Engineering: Computer Science: Profile Multimedia
Master of Applied Sciences and Engineering: Computer Science: Profile Software Languages and Software Engineering