Testování softwaru pomůže na zemi, ve vodě i ve vzduchu

Sdílet

 Autor: © artenot - Fotolia.com
Již při vzniku požadavků na software se musíme ptát, jak se bude testovat. Jen tak poznáme, že dělá přesně to, co chceme.

Moderoval jsem konferenci o testování a ladění softwaru LaTes a jeden z přednášejících uvedl svoji prezentaci výčtem exemplárních selhání softwaru. Pamatuji si dva z uvedených příkladů. Velká loď nešla kvůli chybě v softwaru v přístavu zastavit a systémy nové stíhačky se přepnuly do nouzového režimu při přechodu do jiného časového pásma. Tehdy jsem to komentoval pro pobavení publika, že „bez testování softwaru není bezpečno na zemi, ve vodě ani ve vzduchu“. Můžeme se nad tím pousmát, ale obdobné „nebezpečno“ na nás číhá všude. „Zblázní“ se nám mobil, počítač, podnikový software apod. Proč? To firmy neumí udělat software bez chyb? Speciálně u podnikového softwaru často slýcháme větu: „To snad ten dodavatel vůbec netestoval.“

Je ale vůbec možné dodat bezchybný software? Teoreticky ano – při nekonečném počtu testovacích cyklů, za nekonečně dlouhý čas a s vynaložením nekonečně velkých nákladů. Matematika je neúplatná, čím složitější systém, tím hůře.

Samotné testování softwaru je poměrně košatou disciplínou. To nejzákladnější rozdělení je na funkční a zátěžové testování, speciálně bych zmínil ještě testování bezpečnosti aplikace.

Při funkčním testování ověřujeme nejen to, že aplikace dělá přesně to, co má, ale i jak se chová v hraničních podmínkách. Funkční testování v současnosti nabývá na důležitosti vzhledem ke zvyšující se složitosti systémů a neustále se zrychlujícímu inovačnímu cyklu aplikací.

Při zátěžovém testování simulujeme reálnou zátěž systému a monitorujeme jeho chování, sledujeme závislost výkonu systému na zátěži a odhalujeme úzká místa aplikace. Systém se chová jinak při padesáti uživatelích a jinak při pěti tisících. Závislost není lineární, aplikace mají úzká hrdla a limity výkonnosti, kde už nepomůže jen navyšování výkonu hardwaru. Veřejně známá selhání některých systémů v poslední době jsou, myslím, dostatečně odstrašujícími příklady nedostatečného testování.

Bezpečnostní testování prověřuje zranitelnost a možnosti průniku do informačního systému. Je kriticky důležité v oborech, kde případný bezpečnostní incident má nejen negativní dopad na důvěryhodnost instituce, ale může přímo ohrozit i její existenci.

První věc, o kterou bychom se však měli zajímat po vyřešení položené otázky, tedy „proč, jak a kdy“, je metodika testování. Je v ní ukryté značné know-how, které je však potřeba vždy přizpůsobit konkrétní organizaci. V tomto případě je skutečně dobré neobjevovat Ameriku, ale poohlédnout se po trhu a nechat si poradit zavedenou specializovanou firmou. Většina společností však bohužel právě tvorbu metodiky testování velmi podceňuje. V současné době sleduji trend v oblasti školení, kdy jsou nejvíce požadovány kurzy zaměřené na seznámení s nástroji na testování, téměř ale chybí poptávka po školeních metodiky. Skoro bych z toho usuzoval, že už máme dobře rozmyšleno jak na to a teď nám už jen stačí se naučit pracovat s nějakým nástrojem.

Chtěli byste software bez chyb? Nedosáhnete toho, ale za pokus to stojí, a uživatelé vás budou mít rádi.

Autor pracuje jako senior sales manager ve společnosti Komix