V současné době existuje velké množství lehce
dostupných nástrojů pro testování softwaru. Automatizované, ať už funkční nebo
zátěžové testy, by dokonce bez nástrojů nemohly existovat. Bezpečnostní
testování se rovněž neobejde bez různých nástrojů, které se nacházejí v
arsenálu bezpečnostních testerů. Jaké nástroje a pomůcky ale může používat
tester ke zvýšení efektivity své práce při manuálních testech? Co vše může
pomoci ke zrychlení a zkvalitnění těchto testů?
Smyslem testování je získávat
informace o kvalitě produktu. Jaké informace si přeje zákazník či manager
získat ohledně kvality výrobku, to určuje cíle testování souhrnně označované
jako testovací mise. Mise tedy určuje, co je cílem konkrétního cyklu testování.
Dejme tomu, že manager hledá odpovědi na otázku, zda je produkt připraven na
nasazení. Konkrétně ho zajímá, jaká je chybovost jednotlivých modulů aplikace,
nakolik jsou splněny požadavky a jestli produkt obsahuje nějaké závažné
nedostatky.
V této situaci bude
seznam cílů obsahovat následující body:
- odhadnout chybovost jednotlivých modulů
aplikace
- zkontrolovat soulad aplikace s požadavky
- pokud existují, tak najít závažné chyby
bránící nasazení aplikace
Jasná definice cílů
umožní testerovi zaměřit se na ně a zpracovávat úkoly s efektivnějším
vynaložením úsilí a času. Jinými slovy nenechat se rozptylovat činnostmi, které
rovněž mohou být součástí testování, ale cílům současné mise nepřispívají vůbec
nebo méně než kdyby tester vynaložil svůj čas jinak. Znalost a porozumění cílům
testování je tedy nástrojem k lepšímu řízení vlastních zdrojů.
Protože při tvorbě
efektivních testů a hledání chyb je pro co nejlepší výsledek důležitý důvtip a
kreativita, je vhodné mít po ruce vždy alespoň jednu pomůcku pro jejich povzbuzení.
Mezi jednu z nejspolehlivějších pomůcek patří seznam už dříve použitých
zajímavých nápadů nebo testů, které v minulosti často odhalily nějakou chybu.
Tento seznam se označuje jako heuristika a je součástí know-how testera. Heuristika slouží jako studnice nápadů a inspirace,
která může pomoci objevit velké množství chyb ve velmi
krátkém čase. Tester si přečte
jeden dva nápady, a i když třeba na současný produkt nejdou přímo aplikovat,
inspirují ho k tomu, podívat se na software z pohledu, který ho předtím
nenapadl. Tester začne přemýšlet způsobem: „Hmmm, co by se asi stalo, kdyby
došlo k tomuto.“
U manuálního
testování tester často narazí na chybu, u které je obtížné najít podmínky, za
kterých je chyba vyvolána. Pro usnadnění hledání těchto podmínek se používají
různá zařízení pro sledování činnosti uživatele. Ty mohou mít podobu softwaru
zaznamenávajícího stisky kláves a kliknutí uživatele spolu se snímáním
obrazovky nebo třeba webové kamery namířené na monitor a klávesnici. Ve
složitějších případech, kdy výpis logu testerovi z nějakého důvodu nevyhovuje
nebo není dostupný, je užitečné se vyzbrojit nějakým nástrojem pro sledování
interních stavů aplikace, například vypisujícím zásobník volání.
Nástroje sledující
akce uživatele využívají testeři nejen k odhalení podmínek vyvolání chyb, ale
taky ke sledování chování budoucích uživatelů například při testech uživatelské
přívětivosti.
Při testování toho,
jak se aplikace vyrovnává s chybovými situacemi, kdy narazí na neočekávaný
problém, často ruční zadání problematických vstupů nestačí. V tomto případě je
potřeba použít nějaký nástroj k vyvolání chybových stavů uvnitř aplikace.
Takovýto simulátor chyb je velmi užitečný například při testování více
vláknových aplikací. Tam může docházet k problémům typu race condition, kdy
dojde ke špatnému zpracování sdílených dat. Problémy, které nejsou vyvolány
přímo zadáním neočekávaných dat, může tester bez vhodného simulátoru chyb jen
těžko vyvolat. Je třeba tedy použít pro konkrétní aplikaci vytvořený nástroj
nebo provést některou z technik odborného pročítání kódu.
V některých situacích
má tester za úkol provádět i takzvané testování bílé skříňky, kdy je mu k
dispozici ke zkoumání i zdrojový kód aplikace. V takovém případě se mu na
internetu otevírá celá škála volně dostupných nástrojů založených na inspekci
kódu. Tyto nástroje jsou určené spíše vývojovému týmu pro hledání obvyklých
chyb. Pokud by se však tester ocitnul v situaci, kdy by bylo efektivní tyto
nástroje využít, byla by škoda na ně zapomenout a buď chyby neodhalit, nebo je
odhalit jiným časově náročnějším způsobem. Tyto nástroje dokáží odhalit špatně
inicializované proměnné, nedostatečné ošetření vstupů, ale některé z nich se
specializují například na bezproblémový chod webových stránek na různých
prohlížečích.
Zejména v případě
nedostatku času pro otestování aplikace mohou být užitečné nástroje simulující
více méně náhodné klikání myší a vyplňování textu. Tester může takový nástroj spouštět
při odchodu z práce a druhý den ráno jen kontrolovat, jaké chyby nástroj
objevil a reportovat je. Takové testování zkušeného testera nemůže nahradit,
ale může být užitečnou a levnou pomůckou, která je volně dostupná na internetu
často i se zdrojovými soubory.
Arsenál nástrojů a
pomůcek testera v boji, jehož cílem je nalezení chyb a určení kvality produktu,
může být rozsáhlý. Výše zmíněný přehled je jen drobnou ukázkou, že nástroje
patří i do manuálního testování. Je škoda, pokud si tester svoji výzbroj nerozšiřuje
a netříbí. Jestliže existuje způsob, jak okamžitě zvýšit produktivitu testera,
je to právě použitím nějaké vhodné pomůcky. Tyto nástroje nemají známé
konkrétní zástupce, jako tomu bývá u automatizovaných testů, kdy většina lidí v
oboru názvy konkrétních předních nástrojů zná. Testeři sice u některých skupin
nástrojů vědí, že takové pomůcky existují, ale v situacích, kdy je možné využít
předností těchto nástrojů, volí často zbytečně časově náročnější a nevýhodnější
metody. To je jeden z důvodů, proč jsou někteří manuální testeři a testovací
týmy výrazně efektivnější než jiné.
Tester by se tedy
rozhodně neměl bát věnovat čas na seznamování se s novými nástroji a přístupy,
které mohou zvýšit jeho výkonnost. Snaha o zlepšování svého vzdělání, pokud
není na úkor aktuálních pracovních výkonů, je určitě ve všech softwarových
firmách vítaná.
Vybavení testera/
test analytika:
-
Připravený
seznam testovacích nápadů (univerzální nebo dle typu softwaru)
-
Nástroj
na nahrávání obrazovky do formy videa (Můžete si stáhnout nějaký freeware nebo
je dobré použít webkameru)
-
Nástroj
pro náhodné testování dané aplikace (lze jednoduše vytvořit, máte-li seznam
objektů, nebo pokud je umíte identifikovat)
-
Validátory
HTML, XML, ...
-
Nástroj
pro automatickou inspekci kódu
-
A další
nástroje dle zaměření testera a typu dané aplikace
Vybavení test
manažera:
-
Šablona
test plánu
-
Sada
metrik pro různé příležitosti (např. pro měření kvality softwaru, účinnosti
testovacích technik nebo testování, postupu oproti plánu)
-
Šablona
reportu pro projekt manažera
-
Sada
motivačních historek a myšlenek pro zapamatování si toho, co je skutečným cílem
a pro hledání nových způsobů zlepšování kvality, pokud nemáte takové
prostředky, jaké byste potřebovali.
-
Seznam
otevřených otázek a úkolů
-
Nástěnka
s aktuálními informacemi o termínech, plánu a výsledcích