220 likes | 426 Views
Testovanie. 7. víkend s Linuxom 5. – 6. október 2002 Žilina Stanislav Meduna ETM Aktiengesellschaft stano@meduna.org. Obsah. Zmysel testovania Plánovanie testov Druhy testov Čím sa vyznačuje dobrý test? Obvyklé problémy. Zmysel testovania. Spĺňa produkt očakávania?
E N D
Testovanie 7. víkend s Linuxom 5. – 6. október 2002 Žilina Stanislav Meduna ETM Aktiengesellschaft stano@meduna.org
Obsah • Zmysel testovania • Plánovanie testov • Druhy testov • Čím sa vyznačuje dobrý test? • Obvyklé problémy
Zmysel testovania • Spĺňa produkt očakávania? • písané aj nepísané • zákazníka aj dodávateľa • Zistenie problémov čím skôr • Úspora nákladov • Overenie vlastností po zmenách • Zabránenie znovuzavlečeniu chýb
Plánovanie testov • Stratégia • Čas • Zdroje • ľudské • technické • Formálne procesy
Druhy testov • Test modulov (unit) • Smoke • Integračný • Funkčný • Systémový • Test výkonnosti • Beta test • Akceptačný • Regresný
Unit test • Testuje konkrétny modul, triedu, ... • Overenie súladu správania sa modulu so špecifikáciou • Čo najlepšie pokrytie modulu • Dobrý test je zároveň príkladom použitia • Podmienkou je kvalitná špecifikácia rozhrania • Reakcia na platné aj neplatné vstupy
Unit test • V prípade problému • zreprodukovať v Unit teste • opraviť • overiť • Ideál: najprv test, potom implementácia • Obvykle súčasne s modulom • Mal by trvať relatívne krátko
Smoke test • Cieľom je overenie základnej konzistencie • Rýchly test, „či sa z toho nezadymí“ • Automatizovaný • Spúšťať • pred checkinom • denne • Problém v smoke teste má najvyššiu prioritu
Integračný test • Zistenie problémov vyplývajúcich zo spojenia jednotlivých komponentov • Pochopil volajúci a volaný rozhranie rovnako? • Sú dodržané predpoklady pre volanie? • Nezabudlo sa na niečo? • Podmienkou sú uspokojivé Unit testy
Funkčný test • Systematické overenie funkčnosti • Dodávateľ, ale z pohľadu zákazníka • Existuje požadovaná funkčnosť? • Dáva korektné výsledky? • Reaguje korektne na neplatné vstupy? • Interaguje s okolím podľa požiadaviek? • Podmienkou sú formulované požiadavky (requirements)
Systémový test • Spĺňa systém ako celok požiadavky? • Testuje systém v reálnom prostredí • Dôraz na spojenie systému s okolím
Test výkonnosti • Overenie výkonnosti • Rýchlosť odozvy • Priepustnosť • Spotreba zdrojov • ... • Vypovedacia hodnota len na konkrétnej konfigurácii • Benchmarky len pre benchmarky nemajú význam
Stress test • Overenie funkčnosti pri preťažení • Často spadne niečo úplne iné • Nečakané efekty • Rast spotreby pamäti kvôli buffrovaniu • Priepustnosť pre rovnomernú záťaž nie je rovnaká ako pre „burst“ • Odhalí nevhodné algoritmy – napr. O(n2) kde by išlo aj O(n log n) • Občas aj v operačnom systéme ...
Beta test • Vývojári sú k vlastným chybám „slepí“ • Klient musí za ochotu testovať niečo dostať, inak testovať nebude • Niekedy stačí nová funkčnosť • Dostatočný čas • Práca s takto získanými hláseniami
Akceptačný test • Formálne odobrenie produktu klientom • U zákazníka • Zákazník ho vyvíja aj vykonáva • Máva právne následky
Regresný test • Overenie, či sa zmenou nezavliekli chyby • Sada testov, obvykle rozsiahla • Automatické spúšťanie • Unit testy, testy UI, hocičo automatizovateľné
Dobrý test • Reprodukovateľný • Cielený • Efektívny • Pokrývajúci celý testovaný objekt • Testerský prístup: Chcem to rozbiť • Automatizovaný • Rýchly
Obvyklé problémy • Pre testovanie sa nenaplánujú zdroje • Test sa píše dávno po testovanom objekte • Funkčnosť testuje tá istá osoba, ktorá implementovala • Mizerná (prípadne žiadna) špecifikácia • Nikto nevie, čo je vlastne požadované • Reprodukovať test je problém • Počas testovania sa ešte húfne robia zmeny
Podporný software • Unit testy • http://unitpp.sourceforge.net/ • http://pyunit.sourceforge.net/ • http://www.junit.org/index.htm • Regresné testy • http://www.gnu.org/software/dejagnu/ • http://www.gnu.org/software/dejagnu/
Zhrnutie • Testovanie je systematická činnosť • Software má veľa aspektov, ktoré treba otestovať • Rôzne testy sú vhodné pre rôzne účely • Čím skôr sa na chybu príde, tým menej nákladné je odstránenie
Zdroje • Táto prednáška • http://www.meduna.org/testovanie/ • Google :-) • Prax
Stanislav Meduna ETM Aktiengesellschaft stano@meduna.org