Recenze: Testování softwaru
Patton, R.: Testování softwaru. Praha, Computer Press 2002, ISBN 80-7226-636-5, 313 stran, náklad neuveden, cena 395 Kč. Překlad z anglického originálu Ron Patton: Software Testing. Pearson Education, Inc., Asociate Publisher SAMS, 2000, Indianapolis, USA. Přeložil David Krásenský.
Software je určitým způsobem součástí každého současného automatizačního projektu. Jakožto součást automatizovaného systému je významnou složkou zajišťující jeho funkční schopnosti, bezpečnost a spolehlivost. Dobrý a spolehlivý softwarový nástroj je nepominutelným pomocníkem při projektování automatizovaných systémů. Je tedy mnoho důvodů, pro které se odborníci v oboru automatizace o problematiku tvorby softwaru musejí zajímat a zajímají. Problematika tvorby a testování softwaru v automatizovaných systémech je integrální součástí jejich návrhu a realizace a lze ji považovat za specifické aplikační odvětví softwarového inženýrství. Zcela jasně to vidíme na aplikacích programovatelných automatů a obecněji na aplikacích počítačů v úlohách reálného času, kdy můžeme mluvit o počítačích řídicích.
Testování softwaru je v těchto aplikacích velmi náročným úkolem, se kterým si často nevíme rady. Jeho význam je mimořádný zejména v souvislosti se zajišťováním spolehlivosti a bezpečnosti a klíčovou úlohu má v automatizačních aplikacích v energetice, především jaderné, v dopravě apod.
Recenzovaná kniha tedy jistě upoutá pozornost projektantů automatizovaných systémů. Hned v úvodu konstatujme, že nebudou zklamáni. Je to kniha dobrá a právě v této době potřebná. Je rozdělena do šesti částí.
Název první části je Z ptačí perspektivy a naznačuje, že úvodem je podán základní přehled problematiky. Názvy kapitol této části – Úvod do testování softwaru, Proces vývoje softwaru a Podstata testování softwaru – blíže naznačují, o čem bude řeč. Budoucího čtenáře lze ujistit, že se o těchto tématech skutečně dozví to podstatné. I poučený čtenář úvodní stránky nepřeskočí a s potěšením se začte do zajímavého výkladu, proloženého vhodnými a pozoruhodnými příklady. Autor zde prokazuje své bohaté zkušenosti z praxe a široce založenou informovanost.
Nemůžeme předpokládat, že zde nalezneme rozbor veškerých témat do všech detailů a ze všech možných hledisek. Například v otázce modelů životního cyklu by bylo možné více zdůraznit význam modelu, který autor označuje jako spirálový. Bylo by možné také pojednat o příčinách obtíží při jeho uplatnění v reálných podmínkách. To však jsou již spíše otázky k diskusi nad knihou a k dalšímu studiu než výtky na adresu autora. K této části ještě poznamenáváme, že zde projektant automatizace najde např. jasné a přesné vysvětlení rozdílu mezi verifikací a validací, pojmy dnes běžně používanými, avšak jen zřídka správně pochopenými.
Druhá část knihy, nazvaná Základy testování, je rozdělena do čtyř kapitol. Spíše než jejich názvy bude obsah této části charakterizovat výběr zajímavých termínů z nadpisů podkapitol. Nalezneme zde termíny testování specifikací, dynamické a statické testování, testy splněním, testy selháním, testování dat, hraniční podmínky, testování stavů, formální revize kódu, standardy a zásady kódování, druhy chyb v programovém kódu, testování jednotek a integrace, testování modulů, toky dat, úplná analýza programového kódu apod.
Třetí část, Aplikace postupů testování, je rozdělena do šesti kapitol, věnovaných specifickým problémům testování softwaru. Jsou to testování konfigurace, tj. závislosti softwaru na technickém vybavení, dále testování kompatibility, které se zaměřuje na kompatibilitu implementačních základen, verzí aplikací a sdílených dat. Zvláštní kapitola se zabývá testováním cizích jazyků. Tím se rozumí především lokalizace softwaru v různých jazykových prostředích. Testování použitelnosti je zaměřeno na testování uživatelského rozhraní zejména z hlediska jeho vlastností požadovaných a ověřených praxí. Testování je podrobena i dokumentace a zvláštní kapitola se věnuje testování webových stránek.
Nepříliš rozsáhlá čtvrtá část Doplňkové testování seznamuje s možnostmi a účelností automatického testování softwaru. Nenalezneme zde mnoho odkazů na teoretické práce, které, jak dosavadní zkušenosti ukazují, dosud nenalezly výraznou odezvu v praxi. Jsou však zde zmíněny spíše praktické, jednoduché a účelné prostředky. V závěru kapitoly je pojednáno o testování pomocí beta verzí softwaru.
Pátá část, s názvem Práce s testovou dokumentací, zahrnuje plánování testů, testovací procedury, záznamy o testech a způsoby prezentace zjištěných chyb. Zajímavé je zavedení pojmu životní cyklus chyby a velmi podnětné jsou způsoby kvantitativního hodnocení chybovosti softwaru. Zde se může projektant automatizačního softwaru vhodně inspirovat.
Poslední část se nazývá Budoucnost a dotýká se obecnějších otázek zajišťování kvality softwaru, např. organizačního zabezpečení testů, normalizace atd. Je v ní zařazena i kapitola označená Kariéra softwarového testera, snažící se usnadnit zájemcům o tuto činnost další odborný rozvoj. Nalezneme zde přehled informačních zdrojů: instituce, firmy, konference, internetové odkazy a přehled literatury, vesměs z autorova regionu. Překladatel alespoň v nutném minimu doplnil některé nám bližší údaje.
Téma testování softwaru je v knize zpracováno téměř dokonalým způsobem. I zdánlivě jednoduché problémy jsou podány zajímavě a úsporně. Nesetkáme se zde s nudným omíláním trivialit, nikoliv ojedinělým znakem současné počítačové literatury. Velmi výstižné jsou ilustrace a opět lze kladně hodnotit jejich účelnost a vhodnost. Mají daleko k obvyklým triviálním, rádoby vtipným obrázkům z některých počítačových publikací.
Poté, co jsme provedli potenciálního čtenáře tím, co v ní nalezne, musíme ho upozornit na to, co by v knize hledat mohl, ale nenajde. Kniha je zaměřena na současné nejčastější počítačové aplikace a ty lze, velmi zjednodušeně, označit jako aplikace počítačů typu PC. Již desetiletí trvající prorůstání počítačové techniky typu PC s tzv. řídicími počítači dnes již nedovoluje oblast PC označit za oblast pro obor automatizace nezajímavou anebo okrajovou. Problematika automatizovaných systémů by jistě vyžadovala, aby zpracování některých témat bylo rozšířeno a prohloubeno. Jen namátkou můžeme uvést testování programové implementace řídicích algoritmů v reálném čase. Již tak obsáhlá publikace se však dotýká všeho podstatného, co platí i pro automatizační aplikace počítačů. Lze říci, že poskytuje dobrý a nezbytný základ i pro specifické aplikační obory.
Závěrem obrátíme pozornost ještě k formální stránce zpracování knihy. Každá kapitola je zakončena stručným shrnutím, které je skutečně stručné a výstižné. Jsou také připojeny otázky ke cvičení, jejichž zhodnocení ponecháme na budoucím čtenáři. Je rovněž připojen rejstřík. Ten je zřejmě sestaven automatizovaně. Odkazy sice vedou na správná místa, avšak ne vždy nalezneme plnohodnotný výklad hledaného termínu. U některých položek se můžeme pozastavit nad důvody, proč byly do rejstříku zařazeny. Je pochopitelné, že sestavení hodnotného rejstříku je velmi pracné, a zde nacházíme dnes obvyklé úsporné řešení.
Součástí recenze knihy přeložené z cizího jazyka musí být zhodnocení práce překladatele. Byla velmi dobrá, zcela vybočující ze současného průměru překladů odborné literatury. S počítačovou hantýrkou se nesetkáme, překlady nových a neobvyklých termínů jsou vkusné. Vazba na původní anglické a obecněji známé termíny je zachována. Stylistická úroveň je velmi dobrá.
Autor této recenze před časem, při příležitosti recenze jiné publikace nakladatelství Computer Press, kritizoval nízkou úroveň překladu a měl i výhrady odborné. V případě Testování softwaru může vyslovit, bez stop ironie, okřídlenou frázi: „Tato kniha by neměla chybět v knihovně projektanta počítačově založených automatizovaných systémů“ a udělit recenzované publikaci bez nejmenšího zaváhání pět hvězdiček.
doc. Ing. Jiří Cendelín, CSc.
|