Testování rozhodovacích tabulek
Hodnocení uživatelů: / 0
NejhoršíNejlepší 

{jcomments on}Základním úkolem každé testovací techniky je určení, jaké testy je nutné provést, aby bylo možné (s určitou mírou rizika) říci, že aplikace pracuje tak jak má a neobsahuje chyby. Jejich přístup k řešení tohoto problému vychází od intuice a zkušenosti testera (například u testování nesmyslných hodnot) a končí u čistě "vědeckých" a hodně teoretických přístupů. K nim patří i testování rozhodovacích tabulek.


Rozhodovací tabulka je součástí Teorie rozhodování. Tato tabulka zobrazuje tzv. "výplaty" pro kombinaci Stavů okolností a Alternativ, ze kterých je možné vybírat. Jinak řečeno je to způsob jak relativně přehledně zobrazit možnosti, ze kterých vybíráme, a situace, které jsou k danému rozhodování relevantní, a na jejich kombinaci vyčíslit náklady nebo například přínos, který nám taková kombinace přináší. Zřejmě nejlepší je demonstrovat použití rozhodovací tabulky na konkrétním příkladu.

Dejme tomu, že nějaký autodopravce zvažuje pořízení nového nákladního auta. Rozhoduje se mezi přímou koupí a pronájmem. Za stavy okolností, které při výběru zvažuje, považuje množství zakázek, které může díky novému vozidlu získat a každou kombinaci mezi stavy okolností a možnými alternativami ohodnotí nějakou částkou, například měsíčními tržbami. Navíc pro každý stav okolností může určit míru pravděpodobnosti, s jakou daný stav nastane.

 

Taková tabulka může sloužit jako podklad pro rozhodování. Hodnoty, které jsem zde použil, jsou čistě ilustrační bez jakékoli snahy o věrnost.

Otázkou, kterou si teď můžeme klást, je jak nám taková tabulka pomůže při testování. Odpovědí je, že přesně tato tabulka nám příliš k užitku nebude. Rozhodovací tabulka, která je při přípravě testů používána, vypadá trochu odlišně. Základ ale znovu tvoří kombinace mezi řádky a sloupci. Řádky představují Podmínky. Jde konkrétní možnosti, které mohou v testované aplikaci nastat. Nebo ještě lépe řečeno - Podmínky představují možné vstupy do aplikace.

Ve sloupcích nalezneme Pravidla, což jsou v zásadě Boolean hodnoty, říkající zda byla příslušná podmínka splněna nebo ne. Kombinace řádků a sloupců představuje konkrétní situaci v aplikaci (například nastavení různých prvků v GUI aplikace).

Až do tohoto bodu je rozdíl mezi klasickou rozhodovací tabulkou a tabulkou určenou pro testování jen velmi malý. Podstatným rozdílem je ale další část tabulky, která obsahuje tzv. Akce. V podstatě se jedná o výstupy z aplikace. Výstupů existuje samozřejmě celá řada, od klasického zobrazení výsledku nějaké operace, přes zobrazení chybové hlášky až po vygenerování výstupního souboru atd. V rozhodovací tabulce je možné namapovat tyto výstupy na konkrétní kombinace vstupů aplikace.

Ukážeme si to znovu na jednoduchém příkladu. Představme si například, že testován je rezervační systém pro některé z divadel. Součástí tohoto systému je i vstupní formulář umožňující zákazníkovi vložit datum, na které chce rezervaci, a počet lístků. V této chvíli zde nebudu řešit všechny související funkčnosti, které jsou o podobného systému předpokládány, a soustředím se pouze na tato dvě vstupní pole. Pro ně si stanovím základní podmínky. Pro datumové pole platí, že není možné vložit datum starší než dnešní. Pro pole pro zadání množství platí, že musí jít o číslo a nesmí být menší než 0. Předpokládejme, že testovaný formulář obsahuje tlačítko Potvrdit, které je neaktivní a zaktivuje se pouze v případě, že vstupní hodnoty ve formuláři jsou validní (tedy splňují uvedené podmínky).

Tabulka zobrazuje všechny kombinace vstupů, které pro dané podmínky mohou nastat. Hodnoty T a F zastupují pojmy True a False, a říají, zda byla příslušná podmínka splněna. V řádku Akce je pomocí daná akce byla použita Y nebo ne N. 

Uvedený příklad je triviální a konstrukce rozhodovací tabulky je zde časově náročnější než vytváření samotných testů jen na základě úvahy. Rozhodovací tabulky ale mají své místo při přípravě testů u složitějších systému, kde může nastat více kombinací vstupů a tomu odpovídá i větší množství akcí na výstupu. Výhodou tohoto přístupu je jeho "formálnost". Pokud jej tester při přípravě testů využije, je veden strukturou tabulky. Tím, že se zde téměř "strojově" pokrývají kombinace vstupů, je možné pokrýt i kombinaci vstupů, která by jinak nemusela být do testů vůbec zahrnuta.

Při přípravě testů s pomocí rozhodovací tabulky se doporučuje pokrývat alespoň jedním testem každý sloupec Pravidel. Tak je zaručeno otestování všech kombinací vstupů. Samozřejmě i zde není možné úplně se oprostit od možné lidské chyby. Jinak řečeno, aby rozhodovací tabulka měla přínos pro testování, musí být dobře připravena a správně vyplněna.

 

 

Nejbližší události


Testování software, Powered by Joomla!; Joomla templates by SG web hosting