Na vlnách Testing Waves, anebo co vás čeká a nemine

12. 11. 2013

Sdílet

Staré surfařské pravidlo říká, že čím lépe umíme „číst“ vlny, tím lépe pojedeme. Proč by to nemělo platit i v testingu?

(PR článek)

Pokud se podíváte na obrázek, vidíte trendový graf realizace testů na větším projektu v průběhu sedmi měsíců:

  • několik desítek lidí (analýza+vývoj+testing)
  • několik tisíc testů
  • cca 10 integrovaných hlavních aplikací

a k němu připojený trendový graf vývinu defectů, identifikovaných v průběhu tohoto testování.

Ness Technologies

Graf je navíc doplněn čárou…říkejme jí čára aktivit testerů v průběhu test exekuce. Tato čára aktivit testerů má - podle mých zkušeností - na většině projektů velmi podobný průběh.

Co nám říká?

Podívejme se na to z pohledu času.

První měsíc: testeři začali testovat ještě před prvním cyklem (plánovaném a realizovaném v měsíci 3-4). Je zde evidentní snaha předtestovat co se dá, podle dostupnosti testovacího prostředí.

Druhý měsíc: aktivity se postupně stupňují. Podle počtu NoRun testů je vidět, že se „doplánovovalo“ a pár set testů se ještě zařadilo do scope pro první cyklus.

Třetí měsíc: aktivita testerů prudce stoupá.

Je vidět, že největší objem nabývá až ve třetím týdnu (podobně to můžeme sledovat i ve druhém cyklu, kde je náběh už rychlejší a to ve druhém týdnu). Z toho můžeme odvodit, že není úplně možné počítat s maximální aktivitou hned v prvním nebo druhém týdnu testování. Zvláště to platí u jednorázových a větších projektů. Příčin je hned několik, mezi ty nejčastější patří:

  • dolaďování testovacího prostředí (přístupová práva, odstraňování kritických chyb test prostředí, …)
  • postupné seznamování testerů s dodávkou
  • postupný vliv aktivit a faktorů, které směřují řízení

Čtvrtý měsíc: na začátku mírný pokles aktivit (sledovatelný také v druhém cyklu) a následně prudký vzestup až na maximální úroveň daného cyklu. Pokles aktivit byl způsoben tým, že cyklus byl rozdělen na dvě kola, která ale na sebe časově přímo navazovala. Prudký nárůst ve čtvrtém měsíci dokládá zvyšování maturity testerů, dolaďování prostředí – jde o maximální nasazení všech zdrojů. Tomu odpovídá také počet nově nalezených defektů a defektů, které jsou v řešení od dodavatele.

Pátý měsíc: testování prvního cyklu bylo ukončeno. V tomto a následujícím měsíci docházelo v testovacím prostředí k proplachování (přeliv nových dat z produkce). Proto se dokončují jenom některé dílčí části v rámci test exekuce podle dostupnosti prostředí nebo jeho částí.

Šestý měsíc: podobně jako pátý měsíc, v závěru můžeme sledovat mírný nárůst NoRun testů – důsledek aktualizace testů podle vyhodnocení z prvního cyklu. Celkový počet přidávaných a řešených defektů víceméně stagnuje.

Sedmý měsíc: první vlna druhého cyklu – podobný průběh jako v prvním cyklu - náběh je ale výrazně rychlejší – tým je totiž sladěný, každý už zná svou roli, prostředí je více stabilní.

Osmý měsíc: průběh odpovídá čtvrtému měsíci v prvním cyklu s těmito rozdíly:

  • nižší počet Blocked testů (prostředí je totiž stabilnější)
  • menší pokles aktivit mezi koly (v třetím týdny druhého cyklu) oproti prvnímu cyklu
  • vyšší počet Passed testů v porovnání s NotCompleted testy (testy se teď realizují rychleji)
  • chybovost je vyšší – evidentně se zvýšila maturita testerů a jejich schopnost chyby odhalovat
  • odstranění blockerů umožňuje vyšší míru testovanosti - více se objevují skutečné chyby dodávky, snižuje se počet fiktivních chyb (vyplývajících např. z nekompletnosti test prostředí)

Co ještě lze z výše uvedeného vyčíst?

  1. Jak je vidět, aktivita v průběhu dvou cyklů probíhá velmi podobně
  2. Výrazně se na efektivitě testování projevuje:
  • zvyšování maturity testerů a celkové sladění týmu (včetně dodavatele)
  • stabilizace prostředí (druhý cyklus má výrazně méně Blockerů)
  1. S větším počtem identifikovaných chyb lze počítat až po zvýšení maturity týmu testerů a také po odstranění blockerů – je lepší s tímto stavem počítat až ve druhém cyklu
  2. Celková doba testování je poměrně dlouhá – řádově několik měsíců. Může posloužit jako pomůcka pro odhad, kolik času asi potřebujeme pro otestování dodávky na větším projektu.

Pozn.: projekt pokračoval ještě třetím (a posledním) cyklem testování, jehož průběh by odpovídal výše uvedeným trendům: měl rychlejší nárůst aktivit, ještě vyšší počet passed testů a pokles jak failed, tak i blocked testů – a s tím spojený pokles identifikovaných nových defektů.

Jsem přesvědčen, že s takovým vlnovým průběhem testovacích aktivit se můžete setkat i na jiných projektech. Sám jsem měl možnost si to mnohokrát ověřit – průběh resp. tvar čáry je vždy velice podobný. Pokud si to uvědomíme, můžeme tento fakt využít při plánování svých projektů. Jak? Nemůžeme sice ovlivnit průběh/tvar čáry aktivit, ale můžeme ovlivnit jejich časování při plánování testerských aktivit. A to následovně:

  • zkrácení času jednotlivých cyklů, či fází na časové ose (závisí od scope)
  • posun aktivit doleva (tj. začneme s testováním co nejdříve) jejich včasnou inicializací.

Závěrečné termíny projektu by v zásadě měly končit až po „vrcholech“ – tj. až v době, kdy nám počet defektů klesá a počet passed testů stoupá. V případě úspěšného projektu tak v konečném důsledku zajistíme splnění akceptačních kritérií :o)

Pozn.: Uváděný průběh je pouze ilustrativní - generalizované závěry v textu jsem uváděl na základě zkušeností z více projektů - a může sloužit jako obecná case study.

Průběh testerských aktivit na jiných projektech může být ovlivněn mnoha jinými faktory a v detailech (ale i celkovém průběhu) se může od uvedeného lišit. Vše závisí na aktuálních podmínkách daného projektu.

Jaroslav Strharský, Quality Assurance and Testing, Ness Technologies

ICTS24

Chcete se dozvědět více o testování a dalších IT službách? Potřebujete snížit náklady na firemní informační technologie? Využijte služeb společnosti Ness Technologies!