Detail předmětu

Automatizované testování a dynamická analýza

FIT-ATAAk. rok: 2021/2022

Kritéria pokrytí. Graf toku řízení. Jednotkové testování. Testovací dvojníci. Testování založení na požadavcích. Lokalizace chyb. Testování řízené daty. Automatické generování testovacích dat. Fuzz testování. Výkonnostní testování. Verifikace za běhu. Testování paralelních programů. Management testů. Spolehlivost testovacích reportů.

Garant předmětu

Doporučená nebo povinná literatura

Spillner, A., Linz, T. , Schaefer, H.: Software Testing Foundations : A Study Guide for the Certified Tester Exam. Rocky Nook Computing. 2014. 296 s.. ISBN 9781937538422
Myers, G. J., Sandler, C., Badgett, T.: The Art of Software Testing, 3. vydání. John Wiley & Sons, 2011, 256 s., ISBN 978-1118031964
Farrell-Vinay, P.: Manage Software Testing. Auerbach Publications, 2008, 537 s., ISBN 978-0-8493-9383-9
Kaner, C., James, B., Pettichord, B.: Lessons Learned in Software Testing: A Context-Driven Approach. Wiley Computer Publishing, 2002, 286 s., ISBN 0-471-08112-4.
Marick, B.: The Craft Of Software Testing, Subsystem Testing, Prentice Hall PTR, 1995, ISBN 0-13-177411-5.
Ammann, P., Offutt, J.: Introduction to Software Testing. Cambridge University Press, 2008, 322 s. ISBN 978-0-511-39330-3.

Způsob a kritéria hodnocení

Dva hodnocené projekt po 20 bodech a závěrečná zkouška za 60 bodů.

Jazyk výuky

čeština

Cíl

Získat přehled o různých přístupech k testování softwaru. Pozornost je věnována automatizaci ověřování softwaru. Získat praktické dovednosti se sledováním běhů programů a komunikace softwarových systémů. Získat praktické dovednosti s testováním softwaru na úrovni potřebné pro osobu odpovědnou za návrh testovacího přístupu (QA analyst).

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Vypracování projektů v předepsaných termínech.

Zařazení předmětu ve studijních plánech

  • Program MITAI magisterský navazující

    specializace NBIO , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NISD , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NISY , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NISY do 2020/21 , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NIDE , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NCPS , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NSEC , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NMAT , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NGRI , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NNET , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NVIZ , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NSEN , libovolný ročník, letní semestr, 5 kreditů, povinný
    specializace NMAL , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NHPC , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NVER , libovolný ročník, letní semestr, 5 kreditů, povinný
    specializace NEMB , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NADE , libovolný ročník, letní semestr, 5 kreditů, volitelný
    specializace NSPE , libovolný ročník, letní semestr, 5 kreditů, volitelný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova


  1. Testování založené na modelech I

    • Graf toku řízení, interprocedurální CFG.

    • Generování testovacích případů řízené pokrytím.



  2. Testování založené na modelech II

    • Automatizace jednotkových testů.

    • Návrhové vzory jednotkových testů xUnit.



  3. Stálost testů a testovací dvojníci

    • Stálost testů podle xUnit.

    • Testovací dvojníci a platformy pro mocking.



  4. Testování založené na požadavcích

    • Klasifikace požadavků.

    • Stopovatelnost požadavků.

    • Automatizace testů v chováním řízeném vývoji (BDD).



  5. Testování řízené daty I

    • Kombinační testování.

    • Minimalizace testovacích dat.



  6. Testování řízené daty II

    • Testování aplikačního rozhraní.

    • Systematické generování testovacích dat.



  7. Testování řízené daty III

    • Mutační testování. 

    • Pokrytím řízené fuzz testování



  8. Výkonnostní testování

    • Měřitelné výkonnostní parametry.

    • Typy výkonnostního testování.

    • Proces výkonnostního testování.



  9. Verifikace za běhu I 

    • Testovací vlastnosti, temporální vlastnosti, parametrické vlastnosti.

    • Instrumentace programů



  10. Testování paralelních programů I

    • Klasifikace paralelních chyb.

    • Kontrakty pro paralelismus.

    • Systematické vs. náhodné testování.

    • Metody vkládání šumu.



  11. Testování paralelních programů II

    • Algoritmy Atomrace, Eraser.

    • Vektorové hodiny.

    • Algoritmus Fasttrack.



  12. Verifikace za běhu II

    • Nízkoúrovňové stopování.

    • Post-mortem analýza.



Projekt

26 hod., povinná

Vyučující / Lektor

Osnova


  1. Návrh automatizované testovací sady se znalostí zdrojových kódů a/nebo požadavků.

  2. Implementace monitoru pro RV (verifikace za běhu).