O automatizovaném testování software pro řízení dopravy, fungování komunity testerů, ale třeba i o umělé inteligenci a využití Unreal Engine v testování, jsme si povídali s Vojtou Kalábem, architektem automatizace testů v Yunex Traffic.
Vojto, Tvá pozice je v Yunexu poměrně nová. Co je Tvým úkolem? Centralizovat testování?
Rozhodně ne centralizovat. V Yunexu působí několik vývojových týmů, které pracují na poměrně široké škále produktů. Každý tým proto má jiné potřeby, používá jiné tooly, má svou autonomii. To vše chceme zachovat. Mou rolí je zajistit přenos zkušeností mezi týmy, sledovat novinky na trhu a ukazovat týmům příklady dobré praxe. Připravuji ukázkové templaty projektů, různé návody, snažím se pomáhat kolegům v rozvoji.
S testery v týmech jste tedy partneři…
Ano. V Brně tvoříme s ostatními testery mezinárodní komunitu asi dvaceti lidí. Kolegové působí přímo v týmech, ale jsme v každodenním spojení přes Teamsy. Řešíme spolu operativní problémy. Každé dva týdny pak máme meeting, na který připravím nějakou zajímavou případovou studii nebo něco obdobného. Je to takové edukativní sezení, ne klasická porada, žádné rozdělování úkolů.
S čím vším v Brně jako testeři pracujete?
V Brně máme vývojové týmy, které pracují jak na softwaru pro dopravní řadiče, tak třeba na platformě pro vzdálenou komunikaci a update prvků řídících dopravu, nebo na systémech predikujících stav signalizace na křižovatce nebo vyhodnocujících nebezpečné situace. Pro jejich nastavování se často využívají webová rozhraní. Z pohledu testovací technologií to znamená, že hodně používáme Playwright. Přešli jsme k němu ze Selenia. Nabízí rychlejší komunikaci s browserem a my máme lepší výsledky. Dále pracujeme třeba s Robot Framework, FitNesse, Cypress, či Sikuli.
Velkým tématem dneška je umělá inteligence a strojové učení. Jak se testují v citlivých aplikacích, jako je řízení dopravy?
Trochu Vás zklamu, ale AI alespoň prozatím světla na křižovatkách nepřepíná. Používáme ji pro doplňkové nadstavbové funkce, tam je její síla. Řeší například prioritizaci dopravy. Pokud rozpozná třeba autobus, vyžádá pro něj přednostní zelenou u dopravního řadiče. Ten požadavku vyhoví, jakmile je to možné a nevyvolává to kolizi.
Je nutné si uvědomit, že umělá inteligence je na pravděpodobnosti založený matematický model. Mohu se s ní tedy limitně blížit k nějakému výsledku, ale deterministická není. A my ten jednoznačný determinismus v dopravě často potřebujeme.
I nadstavbové funkce ale samozřejmě důkladně testujeme. Třeba správnou interpretaci dění na křižovatce ověřujeme na velkých balících dat ze skutečného provozu. Používáme reálná data, která musí dopředu někdo ručně „olabelovat“ – určit, co v daných situacích má systém vidět. Ale vytváříme také simulace nestandardních situací. Na to si půjčujeme Unreal Engine z herního světa.
Ve vašem hlase cítím, že vás práce opravdu baví…
Baví. Rozhodně baví. Je velmi rozmanitá, téměř denně řešíme nové výzvy. Máme tu dobrou komunitu. A věci, které tady v Brně děláme, mi navíc dávají skutečný smysl. Mají reálný pozitivní dopad na svět, na dopravu tam venku. Mohu se s nimi setkat cestou z práce domů.
Jaká je vlastně role testera ve vývoji? Kdy nastupuje do procesu?
Testeři jsou se svým týmem od samého začátku. Vyvíjíme tady agilně, skutečně agilně. Takže to jinak ani nejde. Tester je po celou dobu projektu samozřejmou součástí týmu a vývojového procesu.
Co by měl člověk nastupující do Yunexu jako tester umět?
To je obtížná otázka. Asi si dovedete představit, že každý tým potřebuje člověka s trochu odlišným skill setem. Obecně je ale určitě základem celkový přehled v oboru IT a síťařině. Nový tester by měl určitě také ovládat teorii testování, být flexibilní a mít trochu nadšení pro agilní vývoj. To jsou asi věci, bez kterých to u nás nepůjde. Nějaké jednotlivosti se pak dají doučit.