Pokročilé testování programů
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 Pá - Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Mgr. specializace Počítačová bezpečnost, 2020 (volitelný předmět)
- Mgr. specializace Návrh a programování vestavných systémů, 2020 (volitelný předmět)
- Mgr. specializace Počítačové systémy a sítě, 2020 (volitelný předmět)
- Mgr. specializace Manažerská informatika, 2020 (volitelný předmět)
- Mgr. specializace Softwarové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Systémové programování, verze od 2020 (volitelný předmět)
- Mgr. specializace Webové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Znalostní inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2020 (volitelný předmět)
- Mgr. program, pro fázi studia bez specializace, ver. pro roky 2020 a vyšší (volitelný předmět)
- Study plan for Ukrainian refugees (volitelný předmět)
- Mgr. specializace Systémové programování, verze od 2023 (PS, volitelný předmět)
- Mgr. specializace Teoretická informatika, 2023 (volitelný předmět)