Každý považuje svoji práci za nejdůležitější ;-)
Ale vážně - důvody, proč jsem napsal tolik testů, jsem uvedl v reakci na předchozí diskuzní příspěvek.
Sadu zmiňovaných testů jsem napsal dvakrát v různých verzích a v obou případech jsem dostal stejný globální výsledek - na důkladné funkcionální otestování bylo potřeba _více než dvojnásobek kódu, než je rozsah aplikace_.
V mé odpovědi na předchozí diskuzní příspěvek je i seznam typů testů seřazených podle (mojí představy) jejich důležitosti. Rozhodně není potřeba v běžné (nikoliv bezpečnostně kritické) aplikaci otestovat všechno, tak jak jsem to udělal já. Ale nějaké testy by se asi napsat (nebo provést - pokud se jedná o manuální testy) měly. Kolik jich bude, záleží na specifických podmínkách projektu. Ve svém článku nabízím *horní odhad* ověřený reálnými testy na semirealistické aplikaci. Kdo chce, může nad tím zamyslet nebo se tím inspirovat.
A ještě na závěr filosofická úvaha - z mého _akademického_ pohledu si myslím, že vývojáři a testeři jsou na jedné lodi, protože oběma by mělo jít především o celkovou kvalitu výsledného produktu. Z tohoto pohledu by mělo být pro vývojáře přínosem, když tester "testuje, tedy je" a pomáhá tak kvalitu produktu zvýšit. Ale připouštím, že v praxi to může být jinak ;-)
Jaké to celé má smysl, je možné si přečíst v prokliku hned na samém začátku článku:
"Její popis si v případě zájmu můžete přečíst v Automatické testování webových aplikací: souhrnný přehled výsledků"
Stručně řečeno: Vyvíjíme aplikaci, která bude sloužit pro výzkum nových testovacích metod. Potřebujeme napsat tolik testů, abychom mohli s vysokou mírou jistoty (nikdy nebude 100 %) říci, že aplikace neobsahuje chyby. Aplikace bude sloužit jako etalon. Když její protestovanost byla z našeho pohledu dostatečná, začali jsme z tohoto etalonu připravovat tzv. "poruchové klony". Každý poruchový klon má úmyslně injektovánu jednu nebo více typických sw chyb.
Toto je primární účel.
Sekundární účel, kvůli kterému jsem napsal tento článek, je, že mohu odborné veřejnosti poskytnout zajímavé _reálné_ údaje z oblasti testování. Pravděpodobně nikdo z běžného byznysu se nepokusí o takovou míru pokrytí testy, jako jsem to udělal já (třeba z toho důvodu, že tomu nebude chtít věnovat tolik času). A pokud ano, nebude to pravděpodobně zveřejňovat. Využití informací ze článku bych si představoval např. tak, že tester nebo spíše manažer testování si _může_ na základě mých informací udělat představu či dokonce kvalifikovaný odhad pracnosti. Jednoduše - Heroutova aplikace má celkem 17 případů užití (use-case) a napsal na ni asi 1000 testů. Naše aplikace má 50 případů užití...
Co je to smysluplný test?
Každý test, který jsem napsal, pokládám za smysluplný. Pokud bych je však měl seřadit podle důležitosti, pak by seznam od nejméně důležitých vypadal následovně:
- existence tooltipů a placeholderů
- texty v tooltipech placeholderech
- texty v alertech (potvrzovacích zprávách), negativních i pozitivních
- doprovodné texty na stránkách (např. nadpisy tabulek)
- názvy sloupečků v tabulkách
- existence tabulek
- existence modálních oken (až sem to byly pasivní testy)
- negativní testy (např. záporné hodnoty počtu účastníků zkoušky)
- okrajové podmínky v aktivních testech (např. student si zruší svůj jedinný předmět)
- běžné aktivity uživatele - tyto testy se jako jediné snad nedají vynechat, protože si nedovedu představit, že by někdo vydal aplikace (a podepsal se pod ni) a neověřil základní funkčnost