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.

Semester
2nd semester
Enrollment based on exam contract
Impossible
Grading method
Grading (scale from 0 to 20)
Can retake in second session
Yes
Taught in
English
Faculty
Faculty of Science and Bio-engineering Sciences
Department
Computer Science
Educational team
Coen DE ROOVER (course titular)
Activities and contact hours
26 contact hours Lecture
26 contact hours Seminar, Exercises or Practicals
Course Content

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.

Course material
Digital course material (Required) : Website van het vak, http://soft.vub.ac.be/~cderoove/software_quality/
Additional info

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. 

Learning Outcomes

Algemene competenties

Knowledge Application:

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.

Judgements and Communication

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. 

Grading

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:

  • Presentation on publications with a relative weight of 1 which comprises 40% of the final mark.

    Note: 1 oral presentation that synthesizes two recent publications in the domain (40%)

Within the Written Exam category, the following assignments need to be completed:

  • Reports on assignments with a relative weight of 1 which comprises 60% of the final mark.

    Note: 3 written assignments in which students apply quality assurance techniques on realistic software (20% each)

Additional info regarding evaluation

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%)

Academic context

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