Automatizace v testování Dušan Vaněk
Čím více stoupá komplexita a integrace,... ...tím více se zvyšuje význam automatizace v testování
Automatizace v testování se kterými NÁSTROJI ve KTERÝCH oblastech PRO/PROTI automatizaci KDO může automatizovat JAK automatizaci konstruovat CO a PROČ je (ne)vhodné automatizovat
Oblasti automatizace v testování Automatizace vykonání testů (ATEx - Automated Test Execution) functionality tests reliability tests performance tests Automatizace analýzy a návrhu testů (ATAD – Automated Test Analysis & Design) Automatizace řízení a vyhodnocování testování (ATMEv - Automated Test Management and Evaluation)
ATEX – aut. vykonání testů nástroje pro záznam maker (Macro Recorders) zaznamenávající: akce s objekty DOM (Document Object Model) akce myši a klávesnice (či jiných periférií) nástroje pro přehrávání maker (Macro Players) functionality tests (včetně regrese) non-functionality tests nástroje pro porovnávání (Comparators) záznamů dat v databázích obsahu souborů dřívějšího a současného obsahu disků/adresářů struktury tabulek/polí v databázích a jejich vlastností současných a dřívějších výsledků testů
ATAD - aut. analýzy a návrhu testů nástroje pro extrakci dat (Data Extractors) nástroje pro analýzu Dat (typicky pro hledání tříd ekvivalence) (Data Analysis Tools) nástroje pro extrakci/generování Test cases (Test Case Generators)
ATME – aut. řízení a vyhodnocování testování nástroje pro automatizaci sledování stavu ukazatelů kvality (Quality Metrics Tracking Tools) nástroje monitorující pokrytí kódu testy (Coverage monitoring tools)
Functionality vs. performance tests na GUI vs. substituce za klienta assertions vs. měření hodnot přenositelnost skriptů speciality architektury distribuce vyvolat správně load není triviální (příklad)
Výhody a nevýhody ATEx Jasná průkaznost výsledků. Jistota, že každá iterace testů probíhá stejně. Výrazně snižuje použití HR při vykonání testů. Testy je možno vykonávat i „bez přítomnosti“ živých pracovníků. Odbourává to, co irituje pracovníky testování – nudnou rutinu. Testy je možno vykonávat denně (i několikrát), a to i s automatickým spouštěním. Většinou je třeba připravit dokonale terminály pro sběr výsledků. Je třeba zasadit skripty ATEx správy elementů testování. Změna připraveného testu je v některých situacích poměrně náročná. Vyžaduje dokonale zpracované sady dat (včetně očekávaných výsledků). Výrazně se zvyšuje použití HR při přípravě testů a při analýze výsledků testů. Nástroje nejsou laciné, nebo mají omezenou použitelnost.
Kdo může automatizovat code-based vs. visual-based skriptování nad existujícím kódem vs. příprava „abstrakce“ pomocí test cases hrubá síla vs. optimalizace tvorby skriptů
Automatizace se musí vyplatit v konečném důsledku (v součtu za cykly) musí být lacinější, než manuální testy nebo musí přinést testy do jinak netestovatelné oblasti nebo musí zvýšit důvěryhodnost testů nebo jiná výhoda – automat neprotestuje, když má jít na noční
Znaky vhodnosti pro výběr a optimalizace Nenasazovat plošně, ale pouze u Test Cases, u kterých: je plánován větší počet iterací (alespoň 5 až desítky) je možno jeden Test Script použít pro otestování velkého množství Test Cases (např. pro velké množství dat) spíše již ustálené funkcionality Optimalizovat Test Scripts a jejich strukturu získat obecněji použitelné skripty (zejména parametrizací) dekompozicí do elementárních skriptů a funkcí zajistit znovuvyužitelnost (viz Business Components HP QC)
Příklady nástrojů „nejvyšší liga“ (velké možnosti, ale též nejdražší) Mercury Inc. IBM/Rational Compuware „střední liga“ (hodně možností, avšak příznivější cena) GUIdancer Empirix „dobrá koupě“ (limitované možnosti, dobrá cena, je však třeba vědět, k čemu nám budou sloužit) JStudio Automate 6 Macro Express Open STA Ken Test Man ApTest Manager Atlassian JIRA