Jak na quality assurance v SW vývoji

V dnešní době se na trhu neustále objevují nová digitální řešení, která plní nejrůznější účely a potřeby svých uživatelů a zákazníků. Zatímco některá z nich rychle zanikají, jiná se uchytí a stávají se pro zákazníky volbou č. 1. Pakliže takové digitální řešení právě vyvíjíte, určitě chcete, aby se zařadil do druhé skupiny. Budete se však muset vybavit flexibilitou, strategickým plánováním a schopností naslouchat zpětné vazbě. To však není všechno – abyste s vaším řešením zazářili, především je potřeba zajistit jeho celkovou kvalitu.

Přesně od toho je tu quality assurance. Jedině tak totiž zajistíte, že projekt od začátku až do konce splňuje stanovené milníky, ale hlavně očekávání cílových zákazníků. QA se stává nutností, i přes to však spousta společností přistupuje ke kontrole kvality spíše pasivně jen skrze běžné testování a objevování chyb.

Jak ke kvalitě přistupovat, a vypustit tak na světlo světa produkt, který bude dlouhodobě úspěšný? Dne 14.11. jsme se na toto důležité téma zaměřili v rámci našeho čtvrtého C-Suite Meetupu. V minulosti už přišla řeč mimo jiné na to, jak vybudovat digitální produkt nebo jak inovovat firemní procesy, QA tedy bylo logicky dalším tématem, které bylo potřeba rozebrat do detailu.

Naši konferenční místnost zaplnily desítky manažerů, testerů či projektových manažerů, kteří si pevně uvědomují důležitost QA. Jsme také velice vděčni, že na naši akci přijali pozvání čtyři řečníci, kteří mají s vývojem či testováním digitálních řešení bohaté zkušenosti:

  • Anna Dvořáková, Product Manager, Heureka,
  • Martin Sýkora, Project Manager, DER Touristik,
  • Martin Boura, IT Test Manager, ČSOB,
  • Jakub Wasilewski, Test Manager & Product Owner of Release, Commerzbank.
  Panel obohatil také domácí Filip Kadlec, Head of Testing & Delivery Manager v INVENTI. 

Celou akci pak jako vždy moderoval Pavel Bartoš, Head of Marketing v INVENTI. Ten hned na začátek publiku položil otázku: Jak byste ohodnotili vaši současnou péči o kvalitu vývoje? 45 % účastníků dalo 3 z pěti možných hvězdiček. 29 % z nich pak dalo 4 hvězdičky a 16 % z nich 2 hvězdičky. Průměr je 3,2 hvězdiček, což je případ i většiny řečníků. Je co pilovat – a pevně věříme, že akce všem dodala inspiraci do dalších kroků v rámci QA.

Jaké nejdůležitější pointy během Meetupu zazněly?


Jaká je správná doba na vstup QA do projektu?

Odpověď může být snadná – ideálně hned na jeho začátku. Ale proč? Martin Sýkora z DER Touristik vysvětluje problematiku, stejně tak jako nutnost kontroly akceptačních kritérií, do detailu: „Tester by měl být už na začátku, aby hned mohl všechno kontrolovat a seznámit se s projektem. Ke QA přistupujeme už při fázi plánování, když plánujeme jednotlivé požadavky do vývoje. Než se k tomu dostane programátor, je dobré mít akceptační kritéria. U nás je píšou testeři, a to hned poté, co si prostudují zadání. To pomáhá i programátorům, kteří na požadavek získávají širší pohled, než je pouze ten businessový. Jednou se však i stalo, že programátor od businessového zadání kompletně odhlédl. Naprogramoval to podle akceptačních kritérií, ale tam se stala chyba – tester je popsal jinak. Vždy je to tedy zapotřebí zkontrolovat.“

Filip Kadlec, Head of Testing v INVENTI, s Martinem souhlasí a dodává, že QA profesionál je důležitý i v momentě, kdy businessové oddělení sbírá požadavky od zákazníka a předává je vývojovému týmu. Může se totiž stát, že se doručuje něco, co zákazník chtěl, ale jinak. Zpětná validace je zásadní.

I oddělení testingu v INVENTI standardně funguje tak, že je tester součástí business analýzy. Je nutné, aby i se zadavatelem zvalidoval, že to, co je v ticketu, je skutečně to, co chce. Se zákazníkem pak společně prochází zadání, zda je správné. V druhé řadě společně určí, jaká akceptační kritéria musí být naplněna.

Filip v rámci diskuze dodal, že: „Není důležité, co říkáme. Důležité je, co druhá strana slyší. Je potřeba kontrolovat, že si všichni správně rozumíme.“

Heureku není potřeba představovat do detailu. Tento přední srovnávač produktů působí v devíti zemích střední a východní Evropy, včetně České republiky a Slovenska. Funguje od roku 2007 a jeho funkce jsou jednoduché, avšak mimořádně obsáhlé. Primárně však umožňuje porovnat ceny a specifikace produktů z tisíců online obchodů, což zákazníkům usnadňuje rozhodování při nákupu.
DER Touristik je konglomerát v oblasti cestovního ruchu, který patří do skupiny REWE. V současné době pracuje s více než 130 společnostmi, včetně gigantů jako CK EXIM tours nebo CK FISCHER, které zaměstnávají okolo 9 200 zaměstnanců v 16 evropských zemích. DER Touristik poskytuje širokou škálu služeb včetně organizování dovolených a pracovních cest.

ČSOB také představení nepotřebuje. Je součástí belgické finanční skupiny KBC. Poskytuje bankovní a finanční služby, z nichž je většina digitalizovaných, a obsluhuje více než 5 milionů klientů skrze rozsáhlou síť 243 poboček. Je jednou z největších bank v naší zemi.

Commerzbank AG patří mezi největší německé banky, která poskytuje finanční služby pro více než 18,8 milionů zákazníků. Založena byla již v roce 1870, má tedy dlouhou historii a její vliv sahá až do mezinárodního finančního trhu. Nabízí běžné a spořící účty, úvěry, investiční bankovnictví, správu aktiv a také poradenské služby.

Jaký je rozdíl mezi testingem a QA?

Termín QA, který se používá v různých oborech, obecně označuje zajištění kvality. I v kontextu vývoje software jím rozumíme komplexní přístup ke kvalitě, zatímco testing je považován jako jeden krok v procesu vývoje, kdy se kontrolují chyby a odchylky od zadání především na výstupu. O rozdílu mezi těmito dvěma obory a o přístupu k nim se začíná hojně diskutovat. Stále více firem se totiž posouvá od taktického testování ke strategičtějšímu pojetí kvality.

Jakub Wasilewski, který svou pozici v Commerzbank s pousmáním označil jako „quality assurance guru“ věří, že rozdíl by už dnes neměl být tak markantní. Každý tester by totiž měl znát QA.

Filip Kadlec, který obohacuje naše řady už přes 4 roky, poznamenává, že: „Ne všechno zvládne jeden člověk na konci a QA by mělo procházet celým projektem. Vždy bychom si měli na začátku položit otázku, co vlastně v rámci projektu znamená kvalitní software nebo aplikace. Na základě toho je pak potřeba vytvořit strategii. Něco řeší například projektový manažer, v projektu by však vždy měl být někdo, kdo bude vyžadovat, že se naplňuje celková kvalita.“

Ani v ČSOB už dnes nevnímají rozdíl mezi testingem a QA. Testing je určitým hnacím motorem v tom, že se snaží dostat kvalitu do všech fází projektu. QA je pak pro Martina Bouru procesem minimalizace rizik, který zajišťuje, že se všechny aktivity dokončují tak, jak mají, a jakmile jde aplikace do produkce, díky QA může plynule začít testování a související aktivity. 

Martin Sýkora, projektový manažer v DER Touristik, dodává, že správně by se měli jednotliví lidé na projektech doplňovat. Nikdo by neměl být na nic sám.

Anna Dvořáková, kterou po nástupu do Heureky překvapilo, že společnost nemá QA oddělení ani testery, se pak nad tématem zamyslela i z filozofičtějšího hlediska: Co to vlastně znamená kvalita? Vnímání tohoto pojmu se totiž může lišit mezi vývojáři, testery a business oddělením. QA by však měla být klíčovým kontrolním bodem, který řekne, jakmile je vyhotovený produkt dodatelný.

Quality assurance není jen o kvalitním produktu, který funguje na produkci, ale i o zajištění perfektního plynutí firemních procesů, mimo jiné totiž zahrnuje také správné rozdělení povinností tak, aby každý věděl, co má dělat v rámci různých fází projektu.

A jaký rozdíl mezi testingem a QA vnímali jednotliví účastníci Meetupu? Některé z nich si shrňme do následujícího seznamu:

  • „Testing vidím více jako technickou část a QA jako projektovou a procesní, spolupráce obou částí ve prospěch zákazníka je zřejmá.“
  • „Testing je na konci životního cyklu, kde pomáhá najít chyby, aby nebyl vývojář smutný. QA je zapojené multitaskově více k začátku a pomáhá všem (od zadavatele až po koncového uživatele).“
  • „QA je přítomný v celém procesu, ideálně již při tvorbě nabídky (aby měl klient reálná očekávání), popř. již od analýzy, kterou společně s BA reviduje.“
  • „QA – zajištění kvality v průběhu celého procesu: zadání – vývoj – testing – nasazení. Testing – dostanu hotové řešení a mám v něm najít chyby, než se nasadí.“
  • „Testing je jedním ze způsobů zajištění QA, ale těch kvalitativních kroků je v průběhu dodávky potřeba zajistit víc.“
  • „Quality assurance se stará o kvalitu produktu. Tester se stará o kontrolu, jestli jsou splněné zadané požadavky.“
  • „Nevnímám rozdíl mezi testingem a quality assurance.“

Komunikace = klíč k úspěšnému produktu

Komunikace je klíčem k úspěchu – ať už v byznysu nebo osobní rovině našeho života. V rámci digitálních projektů je potřeba se ujistit, že to, co děláme, zákazník opravdu chce. Naše výstupy mohou být velmi kvalitní, ale pokud nejsou žádoucí, jsou k ničemu.

Na toto téma se ozval i jeden z účastníků z řad publika. Ten poznamenal, že mnohdy není důležité, co chce zákazník, ultimátně totiž jde o naplnění potřeb uživatele. Kvalita je ten prožitek mezi subjektem a objektem, a to je tím, co naplní spokojeností i zadavatele.

To však dle Jakuba Wasilewskiho nemusí být vždy pravdou. Uvádí konkrétní případ, kdy v minulé firmě dodávali velkou streamovací platformu: „Ta byla katarská a celý management vedli šejkové. V tomto případě nebylo vůbec důležité, jak appka funguje pro běžné koncové uživatele, kterých bylo 50 milionů. Důležité bylo, jak funguje těm šesti vlastníkům společnosti. Oni platili ten projekt a rozhodovali o tom, zda ho přijmou, či nikoliv. Ve výsledku vás platí klient, ne cíloví uživatelé.“

Anna vnímá jako zákazníky jak ty, kteří aplikaci používají, tak ty, kterým obrazně řečeno vystavujeme fakturu. V Heurece každý týden probíhají uživatelské rozhovory, kdy přijde 5–10 uživatelů do kanceláří. Díky nim se pohled vývojářů často nasměruje správně. Dodává, že mezi businessem a vývojem je vždycky nějaký střet. „Najít kompromis mezi těmito dvěma světy, kdy máme produkt, který třeba není dokonalý, ale zároveň funguje, je skvělé a dá se toho docílit. Tester nebo dva se přidávají do týmu od samotného začátku, od plánování a technologických kick offů až po delivery. Je to jeden tým, který spolu žije a neustále komunikuje.“

V INVENTI se na kick offech projektů vždy ujišťujeme, že každý chápe, co dodáváme. Ideální je, když je součástí takových meetingů i zadavatel, který o projektu rozhoduje. Může totiž sdílet svůj pohled na to, proč to chce dělat. QA je jeden člověk, který má určité know-how, ale celý tým musí vědět, co doručuje, a být rozhodnutý, že to chce dělat kvalitně.

Aby spolu efektivně komunikovali testeři, je na zvážení, zda pro ně nevytvořit dedikované testingové oddělení. Když jsou rozdrobeni po celé společnosti, může vznikat komunikační šum a chaos. To samozřejmě platí hlavně pro větší firmy, kde je testerů hodně. V rámci oddělení si mohou jednoduše sdílet jakékoli relevantní informace.


Automatizované testování vs. manuální tester?

Během nabitého dopoledne jsme se okrajově dotkli i dilematu automatizovaného vs. manuálního testování. Rozhodnout se mezi těmito dvěma formami totiž nebývá snadné.

Anna Dvořáková uvedla, že Heureka nyní pracuje na replatformizaci, kde se v rámci QA podcenila analýza a příprava, což vedlo k nutnosti začít odznovu. Společnost však nemá QA, ani testingové oddělení, a tak je většina práce na produktovém a vývojovém oddělení. Aktuálně produktový manažer píše akceptační kritéria pro vývoj jednotlivých projektů, zatímco vývojáři vše pokrývají automatickými testy.

Na základě své zkušenosti se na stranu automatických testů přiklání i Martin Boura, který v ČSOB pracuje již 13 let. V bance je potřeba dělat velké množství regresních testů a v rámci testovací automatizace dělá společnost velký progres. Automatizaci se vyplatí mít jako jednu z misí a nečekat, než automaty budou potřeba. Pak můžete čerpat hned z několika benefitů, mezi které se řadí například rychlost, se kterou je možné případné defekty identifikovat.

Jakub Wasilewski však uvádí odvrácenou stranu mince, kdy automatizované testy nejsou vždy všespásné. Uvedl: „Role automatizačních testů v Commerzbank je komplikovaná. Delivery organizace má 5 000 lidí a v rámci jednotlivých clusterů jsou velmi rozdělení. Některé segmenty mají všechno automatizované, některé pak na tom teprve pracují. Co se týče legacy softwarů, aplikovat automaty může být problém.“

Také věří, že manuální tester je důležitý díky svému pohledu na věc a schopnosti vidět negativní scénáře. Automaty se v dnešní době používají jako buzzword, ale nehodí se na všechno. Za svých téměř 10 let zkušeností v oblasti testingu a quality assurance dospěl k závěru, že kombinace manuálního a automatizovaného testování je ideální cestou. Zatím totiž nenarazil na projekt, který by mohl být plně automatizovaný.

A jak k těmto dvěma typům testování přistupovalo publikum? 52 % účastníků uvedlo, že většinově využívají manuálního testování, 45 % z nich kombinuje manuální a automatizované testování a pouhá 3 % se většinově spoléhá na automatizované testování.


Největší výzvy spojené s QA

Quality assurance s sebou přináší kvalitní projekty, ale jako u každé oblasti vývoje digitálního produktu je potřeba počítat s výzvami. Když se Pavel Bartoš řečníků zeptal, které z nich jsou ty nejzásadnější, slova se jako první ujal Filip Kadlec, který má v rámci INVENTI zkušenosti s rozličnými projekty. Dle něj člověk může mít pocit, že projekt dopadl dobře, ale ve finále nepřináší takové výsledky. Kvalita je totiž velmi abstraktní věc. Nejdůležitější je změnit myšlení týmu a managementu, aby všichni vnímali, že kvalitu je nutné řešit a investovat do ní. A právě to považuje Filip za zásadní výzvu.

Jakub Wasilewski největší výzvu vidí v tom, když se kvalita začne řešit až v průběhu projektu. Když naskočíte do produktu, který běží už třeba 10 let, a vedení si zrovna uvědomí, že potřebuje řešit procesy. Všichni už jsou zvyklí, že to nějak funguje, a válčíte s tím, že „takhle se to dělalo vždycky, tak proč to měnit?“ Téma rezistence vůči změnám jsme do detailu probrali na našem třetím Meetupu s názvem Jak na digitální řešení, které ustojí vaše ambice? Přečtěte si report z této akce.

Martin Boura také uvedl svůj hodnotný pohled na věc: „Jedna z největších výzev spočívá v tom, že lidé v úvodních fázích projektu mnohdy jedou na vlně optimismu. Odškrtávají dosažené milníky, ale chybí tam pohled testingu, jestli je to skutečně dodané kvalitně. Je nutné upozornit na problémy, které v průběhu životního cyklu nastávají. Umět pomoci na základě zkušeností.“

A jakým konkrétním výzvám v oblasti QA aktuálně ve své organizaci čelili účastníci z publika?

  • „Chyběl mi seniorní mentor, jako junior jsem byla ihned plně vytížená. Musela jsem si sama poradit a osobně pociťuji nedostatečný posun ve znalostech a schopnostech.“
  • „Otestovat něco, co se analyzovalo a vyvíjelo dlouho, ale na testy je jen pár dnů, protože se to musí NUTNĚ nasadit.“
  • „Nezapojení QA od začátku procesu/plánování – slabá kvalita zadávaných požadavků – uvědomění si důležitosti toho, jak kvalitně je napsaná storka.“
  • „Jsme až na konci, neustále bojuji s tím, aby se s námi počítalo v celém procesu. Navíc nereálná očekávání, kdy nám má na kvalitní otestování stačit dopoledne. Někdy se nasazuje oprava i pár hodin před releasem.“
  • „Nedostatek seniorních QA lidí.“
  • „Propojení a chápání QA napříč celou organizací a všemi rolemi.“
  • „Zapojení QA jako rovnocenné části development týmu.“

Checklist – vstup Filipa a Jakuba na závěr

Na závěr našeho Meetupu došlo na prezentaci checklistu, který si připravili Filip a Jakub. Ten byl zaměřen hned na několik bodů, které je nutné si pohlídat, abychom ke quality assurance přistupovali správně. Každý z účastníků dostal vlastní kopii, aby se mohl k informacím pohodlně vracet, kdykoliv to uzná za vhodné.

Checklistu jsme věnovali samostatný článek pod tímto odkazem.  

Náš meetup měl u účastníků velký úspěch – to dokazuje hlasování ve Slido, kde mu 68 % z nich dalo 5 hvězdiček. 32 % pak dalo 4 hvězdičky. Publikum vyzdvihovalo perfektní organizaci a vysokou informační hodnotu. Ti, kteří dali „pouze“ 4 hvězdičky, pak zmiňovali délku Meetupu. Dle jejich pohledu jedno dopoledne nestačí, s čímž plně souzníme. I proto máme v plánu v našich meetupech pravidelně pokračovat tak, abychom celou problematiku okolo správného vývoje softwarových řešení mohli pokrýt komplexně. 

Jsme vděčni, že jsme získali spoustu nové inspirace od předních profesionálů v oboru. Všichni účastníci také mohli o přestávkách networkovat, a tak navazovat nové obchodní vztahy.

Pojďme přivést vaše nápady do digitálního světa.

Budete překvapeni, co spolu dokážeme vytvořit.

Mohlo by vás zajímat z minulého C-Suite Meetupu: