Jaké hledat testery, jak nastavit interní či externí spolupráci a jaké to má výhody?
Velké množství firem na trhu řeší poptávku po testování a testerech. Tato občas podceňovaná kapitola vývoje softwaru i hardwaru získává čím dál větší pozornost a důležitost. Spoustu společností již moc dobře ví, že pokud chtějí vytvořit nejen funkční, ale také spolehlivý a bezpečný SW nebo HW, testování si nemohou dovolit podcenit. Proto jsme pro vás vyzpovídali našeho testing experta, Filipa Kadlece, Head of testing competence v INVENTI.
Filipe, testují firmy svůj SW a HW dostatečně?
To je složitá otázka. Podle jednoho ze 7 základních principů testování (dle ISTQB), je vyčerpávající testování nemožné. Testování ukazuje přítomnost chyb, tedy, že chyby existují. Nelze však deklarovat nepřítomnost chyb, pokud při testování žádnou nenajdeme.
Častěji se setkáváme s tím, že firmy při testování využívají například jen jednu úroveň testování. Opomíjejí pak bohužel tu, která dostatečně kontroluje komunikaci mezi systémy či důležité bezpečnostní a auditní prvky. Nejčastěji buď testování komponent, což většinou zajišťují samotní vývojáři nebo až akceptační testování, kdy si například zadavatel ověří, že mu vývoj dodal jeho dílo.
ISTQB je mezinárodně uznávaný certifikát, který potvrzuje znalosti ohledně testování SW.
U testera je tedy certifikát zárukou, že skutečně ví, jak fungují principy a standardy testování, v problematice se dobře orientuje a má již alespoň základní zkušenosti.
Má-li firma testovací oddělení, nebo se jej chystá rozšiřovat, jak by pak měly být ideálně rozvržené jeho kapacity?
Toto nelze říci paušalizovaně. Vždy záleží na konkrétní situaci, fázi vývoje a hlavně konkrétním projektu. Obecně je optimální poměr 1 manuální tester na 1 - 2 vývojáře. Automatizační tester je pak nadstavba. V případě většího týmu je vhodné mít ideálně jednoho zkušeného testera, který tým povede. Jeho odpovědností by měla být komunikace s vývojem, projektovým managementem a organizovat práci zbylé části testovacího týmu.
Je vždy lepší tým organizovat tak, že každý z členů má na starosti primárně jednu oblast. Je však také třeba udržovat zastupitelnost. No a pak je třeba neplést si automatizovaného testera s manuálním a obráceně. I když dnes už se hodně chce univerzálnost testerů. Tedy, aby i manuální tester uměl alespoň trochu automatizovat, minimálně APIs.
Zmínil jsi tu automatizaci testování. Jak je to s ní?
Automatizace přináší velký skok dopředu, nicméně je třeba k ní přistupovat koncepčně. Vždy je vhodné začít s manuálním testováním (čímž samozřejmě nemyslím “klikání” bez rozmyslu) a rozšiřovat jej o automatizace.
Pak je třeba si uvědomit, že zapojení automatizovaného testování vyžaduje kapacity i rozpočet. Automatizace je na začátku vždy dražší a časově náročnější než manuální testing. Než se pustíme do automatizace, musíme vše manuálně vyzkoušet a hlavně rozmyslet, co následně automatizovat. Úspory z rozsahu přichází ve škále.
Co je tedy vhodné automatizovat a co naopak řešit manuálním testováním?
Horkými kandidáty na automatizaci jsou jednotlivé APIs. Zejména jejich základní kontrola jako jsou například návratové kódy, jejich struktura, hlavičky, no a jejich samotná logická funkce. I zde však platí, že pokud se nám API bude často měnit, nemá tuto část smysl automatizovat. To je kvůli náročnosti na údržbu lepší testovat manuálně.
Dalším ideálním kandidátem jsou smoke a regresní testy. Automatizaci je dobré využít například i ke zdlouhavé přípravě testovacích dat.
Manuální testování je naopak vhodné zvolit na prvotní testování nových funkcionalit, testování grafických prvků nebo často se měnících částí.
Nicméně to je jen obecný pohled. Konkrétní situaci je třeba dobře analyzovat a test manager potažmo testovací tým, který by měl znát vyvíjený produkt nejlépe, musí postup individuálně navrhnout.
Podíváme-li se na princip náboru testerů. V jakých situacích je lepší testera zaměstnat a kdy je vhodnější jej získat externě?
Hodně závisí na tom, jak to má daná firma nastavené. My, jako dodavatel, testery zaměstnáváme a zároveň hodně lpíme na tom, aby se testeři stále vzdělávali. S každým testerem máme nastavené individuální rozvojové plány. Řekneme si, jaké technologie se chce on sám naučit i jaké je vhodné znát. Do jaké oblasti se například specializovat apod. Podle toho jim pak poskytujeme interní i externí workshopy, akademie, konference nebo osobní konzultace.
Takže zatímco interní tester bude pravděpodobně úzce zaměřený specialista na jeden produkt, tester externí bude zkušenější v projektech obdobných a zřejmě bude mít i více prostoru pro vlastní vzdělávání v čase mezi projekty. Nezanedbatelná je i podpora, kterou mu dodavatelská firma poskytuje. Interní tester je v tomhle daleko víc sám.
Roli hrají samozřejmě i organizační detaily jako možnost rychle ukončit spolupráci s testerem od dodavatele, oproti výpovědní lhůtě zaměstnance. Pokud se s dodavatelem dobře domluvíte, tak jistota toho, že tester který k vám nastoupí, bude znát problematiku vašeho sektoru nebo specializace. Jestliže chcete takového testera pak vyměnit za někoho jiného, dodavatel Vám poskytne dalšího testera stejných nebo i lepších kvalit. U nás pak individuálně domlouváme i tranzitní období na naše náklady. Stejně tak, pokud potřebujete, aby tester uměl rychle něco specifického, protože změníte technologii či například začnete řešit jinou úroveň testování, testera vám dodavatel po dohodě v těchto oblastech vyškolí. U zaměstnance to vše musíte řešit sami včetně hledání schopných testerů.
Zmiňuješ individuální přístup. Jak je možné ověřit, že mám ve firmě dobře nastavený proces testování?
Auditem. Pravidelný audit testingu mohu doporučit všem firmám. Stačí oslovit nezávislého, externího dodavatele, který poskytuje audit testingu, nebo seniorního konzultanta. Ten se seznámí s tím, jak daná firma pracuje, jaké má procesy, produkty, co je pro ni prioritní a co méně. Potésvá zjištění porovná s nastaveným procesem kontroly kvality. Výstupem pak bývá auditní zpráva s nálezy a doporučeními.
Jestliže se bavíme o externí firmě, kdy se mi vyplatí řešit si testování interně a kdy třeba oslovit externího dodavatele?
Odbornou dodavatelskou firmu (nikoli personální agenturu), je vhodné oslovit například v situaci, kdy potřebuji začít řešit kvalitu softwaru bez předchozích zkušeností. Tomu se říká Testing as a service. V tu chvíli vše, co se týká kvality softwaru za tebe řeší právě dodavatelská firma, včetně poskytnutí garancí, zajištění dostatečné seniority týmu, navržení kapacit a nastavení procesu testování přímo na míru.
Oslovit externí firmu může být třeba také při náhlé potřebě zvýšit rychle kapacitu testovacího týmu. To může mít hned několik důvodů jako je blížící se vydání aplikace, velké množství chyb z neznámého důvodu, nárůst požadavků na vývoj a tím pádem i na testování. Je to situace, která trvá například jen několik týdnů nebo měsíců a pak se vše vrací do normálního stavu. Takto je možné jednoduše navýšit testovací kapacity a zároveň do projektu dostat lidi s dostatečnými znalostmi ať už doménovými, procesními nebo “jen” technologickými.
Případně podobnou situací může být projekt s jasně daným trváním , vykrytí času za dlouhodobou absenci interního kolegy nebo potřebného času pro nalezení právě nového interního kolegy.
Oproti tomu, pokud řešíme kontinuální vývoj jednoho produktu nebo úzkou specializaci, kterou budeme dlouhodobě potřebovat, vyplatí se určitě řešit si testování interně.
Velmi často se pak vyplatí obě varianty zkombinovat.
Na co by měla firma dát pozor, nebo jak se připravit, pokud přijímá externí testery?
V první řadě dobře vykomunikovat požadavky na testera. Co nejlépe popsat situaci v které se nachází, technologie, se kterými se pracuje a představu spolupráce. Většinou se na toto vše doptává pak dodavatel sám. Já se většinou snažím si dát úvodní schůzku se zákazníkem, abych pochopil jeho situaci a dokázal mu poskytnou to nejlepší řešení z naší strany.
Určitě by si měla dávat i pozor na to, jakého testera dostane. Zda například na integrační testy nenastupuje tester, který doteď řešil jen uživatelské testování. I to jsem bohužel párkrát zažil. Je dobré tedy o testování i něco vědět a trefně se ptát nebo zkoumat životopis.
Vhodné je se i domluvit jakou formou bude probíhat onboarding a zaškolení. Kolik času na tyto aktivity bude potřeba a kdo je bude hradit. Obdobně si ohlídat i situaci, kdy například tester projekt opouští nebo je potřeba testera vyměnit.
Dobrý dodavatel tyto věci řeší takřka denně a má tak na všechny tyto aspekty nastaveny procesy a standardy. S tím přichází efektivita.
Každopádně vždy se snažíme seznámit zákazníka s celým procesem fungování spolupráce a všemi náležitostmi.
Pokud by někdo měl zájem vyzkoušet testování s externími testery, co pro to má udělat?
Stačí si vybrat vhodnou dodavatelskou firmu a kontaktovat ji se svým přáním. U nás může například kontaktovat kolegy z obchodu a ti mu již vyjdou vstříc.
Potřebujete konzultace ohledně testování a QA?