Code: NIE-APT |
Advanced Program Testing |
Lecturer: Pierre Donat-Bouillud Ph.D. |
Weekly load: 2P+1C |
Completion: A, EX |
Department: 18101 |
Credits: 5 |
Semester: W |
- Description:
-
Testing a program is essential to ensure that a program respects its specification, that changes do not introduce regressions or security issues. The goal of the course is to present advanced program testing techniques, beyond writing unit tests, especially fuzzing and symbolic execution.
- Contents:
-
1. Introduction - specification testing
2. Coverage - structural testing
3. Property-based testing and random fuzzing
4. Test-case minimization
5. Mutation-based fuzzing and mutation analysis
6. Greybox fuzzing and search-based fuzzing
7. Syntactic fuzzing: fuzzing with possibly probabilistic grammars
8. Syntactic fuzzing: greybox fuzzing with grammars, mining input grammars
9. Domain-specific fuzzing
10. Concolic fuzzing
11. Symbolic fuzzing
12. Practical fuzzing: when to stop, infrastructure for fuzzing at scale
13. Current research (e.g. differential fuzzing for JS engines)
- Seminar contents:
-
1. Coverage and code coverage tools
2. Test-case minimization
3. Greybox fuzzer
4. Greybox fuzzer with grammar
5. Concolic fuzzing
6. Project consultation
- Recommended literature:
-
Aniche, Maurício. Effective Software Testing: A developer's guide. Simon and Schuster, 2022. ; Zeller, Andreas, et al. "The fuzzing book." (2019).
Pezz?, Mauro, and Michal Young. Software testing and analysis: process, principles, and techniques. John Wiley & Sons, 2008.
Baldoni, Roberto, Emilio Coppa, Daniele Cono D?elia, Camil Demetrescu, and Irene Finocchi. ?A Survey of Symbolic Execution Techniques.? (2018).
The Fuzzing Book<https://www.fuzzingbook.org/>.
- Keywords:
- testing, fuzzing, symbolic execution
Abbreviations used:
Semester:
- W ... winter semester (usually October - February)
- S ... spring semester (usually March - June)
- W,S ... both semesters
Mode of completion of the course:
- A ... Assessment (no grade is given to this course but credits are awarded. You will receive only P (Passed) of F (Failed) and number of credits)
- GA ... Graded Assessment (a grade is awarded for this course)
- EX ... Examination (a grade is awarded for this course)
- A, EX ... Examination (the award of Assessment is a precondition for taking the Examination in the given subject, a grade is awarded for this course)
Weekly load (hours per week):
- P ... lecture
- C ... seminar
- L ... laboratory
- R ... proseminar
- S ... seminar