V MoroSystems je to tak, že každý alespoň jednou za rok vyrazí na nějakou zajímavou konferenci z oboru, aby se nechal inspirovat novými myšlenkami, nástroji a přístupy. Své poznatky pak sdílíme s kolegy na našich MoroSnídaních, které jsou někdy i veřejné. Pokud jsou pouze interní, snažíme se podělit se světem pomocí článků na blogu. Konference, o které budu psát, opravdu stála za to, takže se můžete těšit i na pokračování.

Když jsme na začátku roku vybírali konference pro testery a zjistili, že se letos nekoná tradiční CzechTest (kterého jsme se účastnili v loňském roce), museli jsme hledat za hranicemi. Rozhodli jsme se pro jednu z nejprestižnějších „kvalitářských“ konferencí na evropském kontinentu ─ EuroSTAR v Kodani. Letos se konal jubilejní 25. ročník s podtitulem „The Magic of Testing“. Konference byla třídenní (plus den workshopů).

Testing Big Data to Predict Your Perfect Fit

IMG_20171108_164838

Testování velkých dat a systémů, které s nimi pracují, je v celku složité. Tato přednáška se věnovala tomu, jak k testování přistupovat. Vše se „točilo“ okolo maďarského startupu Secret Sauce Partners, který přišel na trh s produktem „Fit Predictor“ ─ nástroj, který na základě analýzy velkého množství zákaznických dat a dřívějších nákupů určí ideální velikost právě nakupovaného oblečení. Společnosti se podařilo uspět a rozrostla se do stavu, kdy evidovala 10 milionů produktů pro více než 70 milionů uživatelských profilů. Každou vteřinu docházelo k více než 300 doporučením po celém světě.

Testerský tým ale nemohl růst úměrně k rostoucímu portfoliu. Testeři si prošli relativně standardním evolučním procesem, kdy začínali manuálními testy postavenými na business požadavcích. To, díky stále narůstajícímu a nezadržitelnému množství kombinací, začalo být neudržitelné (omezenost, neškálovatelnost a hodně nervů). Následovaly automatizované testy na úrovni GUI (JUnit, Selenium Webdriver, BrowserStack, Jenkins, Github), které sice v pravidelných nočních bězích kontrolovaly základní funkcionalitu (smoke testy), ale i přes parametrizovatelnost, a díky tomu i schopnost vykrýt více kombinací, stále nebyly dostačující. Jak z toho ven? Odpověď našli v tom, co již dávno znali a na čem byl postaven jejich produkt ─ analýza dat.

Aktivní monitoring (Snowplow, Redshift, Metabase, Redash a New Relic) a pravidelná analýza dat pomohla testerům postupně zjišťovat, jak je jejich produkt skutečně používán. Co jim to přineslo?

  • Dokázali lépe identifikovat kritické body systému a na ty se zaměřit.
  • Věděli, na jakých zařízeních a v jakých prohlížečích se lidé pohybují nejvíce.
  • Neměli jen statické přístupy na stránky a kliky na prvky, ale dokázali identifikovat postup, jakým uživatelé procházejí, a lépe definovat procesní scénáře.
  • Jako testeři poskytovali důvěryhodnější výstupy, lépe popisovali problémy a report kvality byl postaven na přesnějších informacích.
  • Testování se pro ně stalo rychlejším, efektivnějším a relevantnějším.

Testing With An Invisible Friend

IMG_20171108_101011

V úvodu této přednášky byl hodně diskutován přínos a budoucnost automatizace v našem odvětví. Závěry z toho byly prosté ─ stroje nedokáží nahradit práci testerů (svoji práci vždy musíme přizpůsobit danému kontextu a situaci). To, co však zvládají dobře, a budou zvládat čím dál tím lépe, je párové testování ─ tedy opakování práce po nás a uplatnění se v repetitivních činnostech (například regresní testy).

“Wow efektem” byla ukázka prototypu domácího asistenta od Amazonu Alexa, který na základě hlasového diktování příkazů (kdy tester popisoval, co právě dělá) sestavoval scénáře, které pak vykonával. Žádné strojové učení, žádná umělá inteligence, ale jednoduché databázové dotazy v běžné řeči tak, jak je známe například ze Serenity, Cucumberu nebo třeba Robot Frameworku.

Závěrem však bylo řečeno, že ovládání hlasem není natolik přínosné a vybudování dostatečně robustní mezivrstvy pro zpracování instrukcí nepřináší takovou přidanou hodnotu, jako definování příkazů pomocí psaného textu. Třeba jednou …

Během přednášky zaznělo něco, co mě zaujalo: “We have hundred of tools that support test execution but testers need thinking tools!”

Testing A Moving Target: How Do We Test Machine Learning Systems?

Tohle byla hůře vstřebatelná přednáška popírající mnoho principů a zvyklostí, které si za roky praxe jako testeři deterministických systémů pěstujeme. Proč? Protože vše, na co jsme zvyklí je odvozeno od toho, že na základě konkrétního vstupu dostáváme konkrétní výstup. A pokud výstup neodpovídá? Jednoduché, máme chybu!

Ale co když máme systémy, které nemají definované výstupy? Co když testujeme neuronové sítě (vrstvené algoritmy jejichž proměnné jsou upravovány na základě postupného učení se) nebo systémy postaveny na genetických algoritmech (princip přirozeného výběru jako např. vyber možná řešení, vyzkoušej všechny varianty, vyber nejvhodnější a opakuj)? V takový moment se nacházíme, ačkoliv se to na první pohled nemusí zdát, v relativně komfortní situaci, kdy dokážeme systém spustit a po ukončení běhu vyhodnotit jeho výstup. Ale co když si to ještě více zkomplikujeme tím, že se pustíme do testování adaptivních systémů, tedy zdokonalujících se neuronových sítí, které se mění za pochodu na základě zpětné vazby?

Nejedná se o hudbu budoucnosti. Samo řídící automobily, kalkulace cen letenek, obchodování s akciemi nebo nejrůznější enginy pro doporučování a cílení na e-shopech již tyto technologie využívají. Jak tedy přistupovat k ověřování správnosti něčeho, co nemá „správný“ stav, protože výstup je vždy jiný a chyba tak nemusí být chybou?

Musíme rozlišit dva pojmy ─ správnost a přesnost. S tím prvním jsme pracovali doposud, s tím druhým musíme začít pracovat nyní. Je třeba nastavit si parametry přesnosti (například nejlepší, průměrný a nejhorší případ), identifikovat jaké výstupy jsou akceptovatelné a které nikoliv, komunikovat míru přesnosti správného chování systému. Musíme znát cíle, přičemž vada znamená neschopnost systému dosáhnout stanovených cílů ─ například vydělává systém peníze? A vydělává dost? Pokud ani to není možné, neměli bychom se zaměřovat na výstupy, které nejsme schopni vyhodnotit, ale můžeme jít po sekundárních projevech ─ výkon, použitelnost a další vlastnosti. A když ani to nepomůže? Pak je relevantní, cituji: „zvednout ruce od klávesnice a jít domů“.

Na závěr zaznělo několik zajímavých bodů:

  • Při spouštění systémů za účelem testování vždy používejte nová data.
  • Snažte se pochopit architekturu sítě ─ je to nezbytností.
  • Nalezení chyby může znamenat přestavbu celého systému.

The Mythical X-Shaped Tester

IMG_20171108_104413

Přednáška zaměřená na měkké dovednosti a to, jakým způsobem budovat testerský tým. Zopakovali jsme si dva základní typy osobností. „I-shaped“ lidé, kteří mají hlubokou znalost v dané disciplíně (což bylo žádoucí dříve) a „T-shaped“ lidé, kteří mají hlubokou znalost v kombinaci s přesahem do dalších disciplín/oblastí/aktivit/rolí (což je směr, kterým se ubíráme dnes). Přednášku vedla zakladatelka srbské komunity testerů a přišla (nejsem si jist, zda to byl její nápad nebo jen přepoužívala informace odjinud) s myšlenkou „X-shaped“ testera, jehož přítomnost v týmu je katalyzátorem inovací. Pro takového člověka je typická detailní znalost problematiky s přesahem do dalších oblastí (rolí) a schopnost spojovat skupiny lidí za účelem snadnějšího dosažení cíle. Popis mi připadal jako ekvivalent role team leadera tak, jak jej vnímám.

Dozvěděli jsme se konkrétní výčet dovedností, včetně popisu osobnosti ideálního člověka, který splňuje kritéria pro „X-shaped“. Podle přednášející jsou tito lidé vzácností a tudíž poukázala, že není dobré, a zároveň ani přínosné, mít v týmu více než jednoho takovéhoto člověka.

Přednáška byla aplikovatelná na mnoho dalších rolí, nejen na testery. Zaznělo i několik již dobře známých doporučení jako například mít dobře nakombinované testerské týmy (zaměřením, vzděláním, genderově, kulturně apod.).

Agile Testing ─ The Magic of Whole Team Thinking

Od této přednášky jsem měl velká očekávání, ale nakonec mě nejvíce zklamala. Namísto konkrétních příkladů vztažených k našemu odvětví se jednalo spíše o instruktáž pro čerstvé Scrum Mastery nebo manažery, kteří o Scrumu uvažují. V podstatě se hovořilo o již dobře obecně známých věcech jako „Three Amigos“ (komunikační kanál mezi Analytikem/Product Ownerem, Vývojářem a Testerem), „Test Pyramid“ nebo příkladech „Definition of Done“.

Testing The Magic at Walt Disney Imagineering

Praktické ukázky toho, jakým způsobem probíhá testování simulátorů, 3D vizualizací, pohybových aparátů, figurín a atrakcí v zábavních parcích Walta Disneyho po celém světě. Za zmínku stojí dvě věci:

  • Veškeré testování probíhá výhradně manuálně ─ není prostor pro chybu a nevhodně koncipovaná automatizace může znamenat nedostatečné ověření správnosti systémů, které mohou při nesprávném fungování ohrožovat dokonce i život.
  • Absolutní týmová zodpovědnost ─ jakákoliv změna, jakékoliv code-review, jakýkoliv zásah do systému podléhá kontrole VŠECH členů týmu ─ všichni vědí o všech zásazích od analytiků přes programátory, grafiky či testery a musí si je vzájemně schválit.

25 Years of EuroSTAR

kolaz

Vzhledem k tomu, že šlo o jubilejní 25. ročník konference, došlo i na malou bilanci toho, jak se změnil náš obor za tuto dobu. Zároveň nám byla představena nová knihy o testování, kterou vydala komunita EuroSTARu a do které přispělo velké množství osobností z oboru. Informací bylo více, ale zaujalo mě následující:

Co se v testování za posledních 25 let změnilo?

  • Testování je respektovanější jako zaměstnání.
  • Existují certifikace.
  • Testované systémy jsou masivnější a čím dál více propojené (sítě, mobilní zařízení, IoT, AI).
  • Vývoj již není monolitický, ale agilní.
  • Rychlost komunikace (sociální sítě, email, komunikátory, …)

Co se v testování za posledních 25 let nezměnilo?

  • Největší předností testerů je jejich mindset.
  • Vztahy a lidé jsou v našem oboru klíčoví.
  • Spousta věcí k učení se.
  • Mnoho lidí ještě stále začíná s automatizací a testovacími nástroji.
  • Testeři jsou zvláštní komunitou.

Po novém roce se můžete těšit na druhý díl z konference EuroSTAR, který pro vás připraví můj kolega Jano Sedlák.

Jestliže vás témata, kterým se v článku věnuji, zaujala, rádi si s vámi o nich s kolegou promluvíme i osobně. Napište nám na ahoj@morosystems.cz a domluvíme se na dobrou kávu, ať už v brněnských nebo bratislavských kancelářích.