Detail předmětu

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

FIT-ATAAk. rok: 2020/2021

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

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

Způsob a kritéria hodnocení

Dva hodnocené projekty, každý za 15 bodů.

Podmínky zápočtu:
Získání 15 bodů z projektů.

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

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 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. Lokalizace chyb
    • Lokalizace založená na metodě řezů.
    • Lokalizace
      založená na chybových reportech.

  6. Testování
    řízené daty I
    • Kombinační
      testování.
    • Minimalizace
      testovacích dat.
    • Testování
      aplikačního rozhraní.
    • Systematické
      generování testovacích dat.
    • Mutační
      testování.

  7. Testování
    řízené daty II
    • 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
    • Nízkoúrovňové
      stopování.


  10. Verifikace za
    běhu II
    • Testovací
      vlastnosti, temporální vlastnosti, parametrické vlastnosti.
    • Instrumentace
      programů


  11. Testování
    paralelních programů I
    • Klasifikace
      paralelních chyb.
    • Kontrakty pro
      paralelismus.
    • Systematické
      vs. náhodné testování.
    • Metody vkládání
      šumu.


  12. Testování
    paralelních programů II
    • Algoritmy Atomrace, Eraser.
    • Vektorové hodiny.
    • Algoritmus Fasttrack.


  13. Management testů
    • Prioritizace testů.
    • Evaluace testovacích sad. Test flakiness.
    • Reportování výsledků. Spolehlivost reportů, ukazatele Accuracy, Precision,
      Recall, F1.

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

eLearning