Blog

1. Co je Quality Engineering a proč už nestačí testovat na konci

Přístupy k testování Quality Engineering

1. díl ze série čtyř článků na téma 'O Quality Engineeringu', které přibližují tento celkový přístup v zajištění kvality softwaru.

Kvalita jako něco, co řešíme až když je pozdě

Ještě poměrně nedávno bylo naprosto běžné, že se kvalita softwaru začala řešit až ve chvíli, kdy byl systém prakticky hotový. Projekt prošel analýzou, návrhem, implementací a teprve potom se otevřela otázka: „Funguje to?“ Testování v takovém modelu plnilo roli poslední kontroly před releasem.

Tento přístup je typický pro waterfallový způsob vývoje, ale jeho stopy si s sebou neseme dodnes. I když později přišel agilní přístup, častější releasy a průběžné testování, základní mentální model často zůstal stejný: nejdřív analyzujeme, navrhujeme a vyvíjíme a kvalitu poté ověřujeme až následně. Jen v kratších cyklech.

Problém tohoto nastavení nebyl v testerech ani v testovacích technikách. Problém byl v samotném pojetí kvality. Testování bylo stále postavené do role záchranné brzdy, která měla zachytit chyby vzniklé během předchozích fází.

Čím složitější systémy dnes vyvíjíme, a zároveň čím rychleji musíme dodávat změny, tím méně realistické je očekávání, že se všechno podstatné dá „pochytat“ až během testování.

Když se problémy objeví, ale neřeší se jejich skutečná příčina

Každý, kdo někdy zažil intenzivní závěr projektu, ví, jak to vypadá. Testy odhalují chyby, vývojáři je opravují, testy se znovu spouští, objevují se regresní problémy a tlak na termín roste. Část chyb se přestává vnímat jako chyby a mění se na „change requesty“, protože jejich oprava by znamenala zásah do architektury nebo návrhu.

V této fázi už se většinou neřeší, kde problém skutečně vznikl. Není na to čas ani prostor. Řeší se, jak ho co nejrychleji obejít nebo minimalizovat jeho dopad. Přitom kořen potíží často neleží v kódu, ale v nejasných očekáváních, špatných rozhodnutích na začátku nebo v chybějící komunikaci mezi rolemi.

Analogie z výroby, která pořád platí

Představme si výrobu auta, kde by se veškerá kontrola kvality odehrávala až po sestavení celého vozu. Pokud by se na konci zjistilo, že nefunguje řízení nebo brzdy, čekalo by firmu rozebírání hotového produktu, drahé opravy a zdržení celé výroby. Takový model by byl dlouhodobě neudržitelný.

Ve vývoji softwaru jsme se ale do jisté míry naučili tento přístup tolerovat. Jen místo fyzických dílů opravujeme hotový kód, architekturu a chování celého systému. A to za stejnou cenu s vysokými náklady, stresem a nejistým výsledkem.

Co se skrývá pod pojmem Quality Engineering

Quality Engineering není nové pojmenování testování ani další trendy slovo. Představuje změnu přístupu ke kvalitě. Nezaměřuje se na kontrolu hotového produktu, ale na vědomou práci s kvalitou už od nejranějších fází vývoje softwaru.

Nemění se tedy jen kdy testujeme, ale především jak o kvalitě přemýšlíme. Neptáme se pouze, zda systém splňuje specifikaci, ale zda vzniká správné řešení, správným způsobem, při použití správných vývojových a organizačních procesů a v kontextu reálného použití.

Kvalita se tím přestává řešit izolovaně v rámci testovací fáze nebo testovacího týmu. Stává se odpovědností všech rolí. Od byznysu a analytiků, přes vývojáře a architekty, až po testery a provoz.

Proč na Quality Engineering narážíme čím dál častěji

Důvodem, proč se dnes o Quality Engineeringu mluví tolik, není móda. Je to reakce na realitu současného vývoje. Releasy jsou častější, změny přicházejí rychle a chyba v produkci má výrazně větší dopad než dřív.

Zároveň se dramaticky zvyšuje konkurenční tlak. Většina produktů má dnes několik alternativ a uživatelé nemají důvod tolerovat nekvalitní nebo nestabilní řešení. Kvalita se tak stává jedním z hlavních faktorů, které rozhodují o úspěchu či neúspěchu produktu.

V takovém prostředí už si nelze dovolit model „nejdřív vyvíjíme, pak testujeme“. Quality Engineering nabízí cestu, jak skloubit rychlost s kvalitou. Ne tedy kompromisem, ale změnou přístupu.

Shrnutí 1. dílu

  • Testování na konci neumožňuje včasné řešení problémů.
  • Mnoho chyb vzniká dávno před samotným vývojem.
  • Quality Engineering posouvá kvalitu do celého procesu vývoje softwaru.
  • Nejde jen o techniky, ale především o způsob myšlení.
  • Cílem je dlouhodobě udržitelný, stabilní a řízený vývoj.

V dalším dílu se zamyslíme nad principy Quality Engineeringu a jak se kvalita skutečně buduje.

Nenechejte si ujít nejnovější informace.

Vyplňte nám vaši e-mailovou adresu a dostávejte pravidelnou nálož informací ohledně nadcházejících školení, akcí a testingového know-how.

Odesláním tohoto formuláře souhlasíte se zpracováním osobních údajů dle GDPR a se zasíláním marketingových e-mailů.