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

Pokročilé testování programů

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
NI-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:

Testování programu je nezbytné, aby bylo zajištěno, že program dodržuje svou specifikaci, že změny nezpůsobují regrese nebo bezpečnostní problémy. Cílem kurzu je představit pokročilé techniky testování programů nad rámec psaní jednotkových testů, zejména fuzzing a symbolická exekuce.

Požadavky:

Předpokládá se, že studenti znají základní pojmy z oblasti testování, například jednotkové testování (jak je prezentováno v BI-OOP).

Osnova přednášek:

1. Úvod - testování specifikací

2. Coverage - strukturální testování

3. Property-based testing, random fuzzing

4. Minimalizace testovacích příkladů

5. Fuzzing založený na mutaci a mutační analýza

6. Greybox fuzzing a fuzzing založený na vyhledávání

7. Syntaktický fuzzing: fuzzing s (i pravděpodobnostními) gramatikami

8. Syntaktický fuzzing: greybox fuzzing s gramatikami, mining vstupních gramatik.

9. Doménově specifický fuzzing

10. Konkolický fuzzing

11. Symbolický fuzzing

12. Praktický fuzzing: kdy přestat, infrastruktura pro fuzzing ve velkém měřítku

13. Současný výzkum (např. diferenciální fuzzing pro JS runtimy )

Osnova cvičení:

1. Coverage a nástroje pro coverage kódu

2. Minimalizace testovacích příkladů

3. Greybox fuzzer

4. Greybox fuzzer s gramatikou

5. Konkolický fuzzing

6. Konzultace projektu

Cíle studia:

Cílem kurzu je seznámit studenty s pokročilými technikami testování programů, včetně fuzzingu a symbolického exekuce, teoreticky i prakticky, na příkladech reálného kódu a při psaní fuzzeru a hledání chyb v reálných programech.

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:

studijní materiály na 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 21. 11. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet7585206.html