1 / 22

Testovanie

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?

dmitri
Download Presentation

Testovanie

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Testovanie 7. víkend s Linuxom 5. – 6. október 2002 Žilina Stanislav Meduna ETM Aktiengesellschaft stano@meduna.org

  2. Obsah • Zmysel testovania • Plánovanie testov • Druhy testov • Čím sa vyznačuje dobrý test? • Obvyklé problémy

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

  4. Plánovanie testov • Stratégia • Čas • Zdroje • ľudské • technické • Formálne procesy

  5. Druhy testov • Test modulov (unit) • Smoke • Integračný • Funkčný • Systémový • Test výkonnosti • Beta test • Akceptačný • Regresný

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

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

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

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

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

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

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

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

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

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

  16. Regresný test • Overenie, či sa zmenou nezavliekli chyby • Sada testov, obvykle rozsiahla • Automatické spúšťanie • Unit testy, testy UI, hocičo automatizovateľné

  17. Dobrý test • Reprodukovateľný • Cielený • Efektívny • Pokrývajúci celý testovaný objekt • Testerský prístup: Chcem to rozbiť • Automatizovaný • Rýchly

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

  19. 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/

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

  21. Zdroje • Táto prednáška • http://www.meduna.org/testovanie/ • Google :-) • Prax

  22. Stanislav Meduna ETM Aktiengesellschaft stano@meduna.org

More Related