Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2024/2025

Advanced Program Testing

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
NIE-APT Z,ZK 5 2P+1C anglicky
Garant předmětu:
Pierre Donat-Bouillud
Přednášející:
Pierre Donat-Bouillud
Cvičící:
Pierre Donat-Bouillud
Předmět zajišťuje:
katedra teoretické informatiky
Anotace:

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.

Požadavky:

The students are expected to be familiar with the basic notions of testing, such as unit testing (such as presented in BI-OOP).

Osnova přednášek:

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)

Osnova cvičení:

1. Coverage and code coverage tools

2. Test-case minimization

3. Greybox fuzzer

4. Greybox fuzzer with grammar

5. Concolic fuzzing

6. Project consultation

Cíle studia:

The aim of the course is to introduce students to advanced program testing techniques, including fuzzing and symbolic execution, both theoretically, and in practice, by looking at real code examples and by writing a fuzzer and finding bugs in real programs with it.

Studijní materiály:

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/>.

Poznámka:

https://courses.fit.cvut.cz/NI-APT/

Další informace:
https://courses.fit.cvut.cz/NI-APT/
Rozvrh na zimní semestr 2024/2025:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
Út
St
Čt
místnost TK:PU1
Donat-Bouillud P.
09:15–10:45
(přednášková par. 1)
Dejvice
NTK PU 1
místnost T9:346
Donat-Bouillud P.
11:00–12:30
SUDÝ TÝDEN

(přednášková par. 1
paralelka 102)

Dejvice
NBFIT učebna

Rozvrh na letní semestr 2024/2025:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 12. 12. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet7586706.html