Ve světě testování a zajišťování kvality často slyšíme slova Test Oracles a Test Heuristics, ale co to je a jak je můžeme implementovat do našich každodenních testovacích aktivit?
Podívejme se na velmi pěkné vysvětlení testovacích věštců a testovací heuristiky od Katrina Clokie
Představte si, že chci jíst nálev. Moje okurky jsou uloženy ve velké skleněné nádobě. V mé domácnosti byl posledním člověkem, který snědl okurku, můj manžel. Zavřel nádobu pevně. Při prvním pokusu se mi ho nepodařilo otevřít.
Co mám dělat dál?
Zkontroluji, zda se otáčím doleva, uvolním víko a zkusím to znovu. Potom vytáhnu utěrku, abych zajistil lepší uchopení při kroucení víka nádoby. Nakonec v určité frustraci půjdu najít svého manžela. Úspěšně otevírá nádobu.
Když čelím sklenici, která se neotevře, existuje řada věcí, o kterých vím, že stojí za to vyzkoušet. Toto jsou moje heuristiky otevírání sklenic. Když jsem instruován, abych otestoval softwarovou aplikaci, existuje řada věcí, o kterých vím, že stojí za to je vyzkoušet. Toto jsou moje testovací heuristiky.
Heuristika jsou jednoduše techniky založené na zkušenostech pro řešení problémů, učení a objevování. Pokud je vyčerpávající hledání nepraktické, používají se heuristické metody k urychlení procesu hledání uspokojivého řešení. Mezi příklady této metody patří použití obecného pravidla, poučený odhad, intuitivní úsudek nebo zdravý rozum.
Příklad:
Předpokládejme, že testujete web elektronického obchodování. Stránka s výsledky vyhledávání většiny webů elektronického obchodování obsahuje filtry a funkce třídění. Prostřednictvím let zkušeností s testováním webových stránek elektronického obchodování jsem se dozvěděl, že kombinace filtrů a možností řazení pravděpodobně odhalí zajímavé chyby, jak tomu bylo mnohokrát, proto na svém dalším projektu intuitivně otestuji některé scénáře související s kombinací filtrů a možností řazení.
Představte si, že jdu na oběd s kamarádem. Ve čtvrtek vstupuji do restaurace ve 12 hodin. Po hodině jídla si v pátek v 13 hodin opouštím restauraci. I když jsem zažil jen jednu hodinu, svět kolem mě se posunul o den.
Jak zjistím, že je tu problém?
Možná mám na svém mobilním telefonu několik oznámení od přátel a rodiny, kteří se zajímají, kde jsem. Možná mám parkovací lístek. Možná uvidím někoho číst páteční noviny.
Existuje řada způsobů, jak mohu určit, že jsem vynechal den svého života. Toto jsou moje věštci cestování časem. Existuje řada způsobů, jak mohu zjistit, že jsem objevil chybu v softwarové aplikaci. To jsou moje testovací věštci.
Věštci jsou jednoduše principem nebo mechanismem, kterým rozpoznáváme problém. Test Oracles jsou v zásadě vaše očekávané výsledky.
Příklad:
Předpokládejme, že testujete přihlašovací funkce webu. Nejprve můžete zkontrolovat pomocí platného uživatelského jména a platného hesla a očekávat před přihlášením zobrazit přesměrování na stránku mého účtu nebo přesměrování na stránku. Avšak poté, co se pokusíte přihlásit a uvidíte chybovou odpověď 500, vy znát že se něco pokazilo.
Testovací věštci i testovací heuristika jsou zásadní, pokud jde o průzkumné testování v agilním prostředí. Když nemáme dostatek času na konstrukci testovacích případů a produkt se neustále vyvíjí, nemůžeme se spoléhat jen na předem navržené testovací skripty, musíme použít naše znalosti domény (Test Oracles) a předchozí zkušenosti s testováním (Test Heuristics ) být schopen rychle navrhovat a provádět testy současně a zároveň se učit o produktu.