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

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 2023/2024:
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
místnost TH:A-1247
Donat-Bouillud P.
12:45–14:15
(přednášková par. 1)
Thákurova 7 (budova FSv)
seminární místnost
místnost TH:A-1247
Donat-Bouillud P.
14:30–16:00
SUDÝ TÝDEN

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

Thákurova 7 (budova FSv)
seminární místnost
St
Čt

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