Portál AbcLinuxu, 28. března 2024 15:29

Tak trochu jiná QA

18. 11. 2011 | Reklama
Články - Tak trochu jiná QA  

Společnost GoodData poskytuje svým zákazníkům moderní a rychlou platformu pro business intelligence a to ve formě "software jako služba". Platforma má jedinou produkční instanci běžící na cloudové infrastruktuře Amazon Elastic Compute Cloud a za jejím přátelským a intuitivním uživatelským rozhraním se skrývá celá řada technologií a programovacích jazyků: od JavaScriptu přes Javu, Perl, Ruby, Python až po Erlang.

Technologická zoologická

JavaScript používáme nejen v HTML5 webovém klientu, ale i na serveru prostřednictvím node.js. V kombinaci jazyků C a Perl je napsán klíčový ROLAP server a také unikátní a inovativní datové úložiště EventStore. V Javě zase ETL komponenty, které propojují naši platformu s partnerskými aplikacemi a jiným zdroji dat. O exekuci a rovnoměrné rozložení výpočetních, transformačních i jiných úkolů v clusteru se pak stará middleware v Erlangu, jazyku s přirozenou podporou pro vytváření škálovatelných aplikací, a platfomě OTP (Open Telecom Platform), která poskytuje bohatou knihovnu funkcí pro psaní robustních distibuovaných aplikací.

Na členy QA týmu klade takové vysoce heterogenní prostředí mnohdy větší nároky než na vývojáře, kteří se většinou drží víceméně na "svém písečku", tedy v prostředí svého oblíbeného programovacího jazyka. QA engineer musí jednotlivé komponenty a jejich interakce vidět v širších souvislostech a dohlédnout důsledky nových a nových funkcionalit začleňovaných během času do systému. QA engineer sice nemusí být expertem na tu kterou konkrétní technologii, ale zároveň musí disponovat jakýmsi obecným přehledem o jejích principech, specifikách a vhodnosti jejího použití v té které situaci. Z druhé strany lze ovšem říci, že tato komplexnost je i největším pozitivem takové práce. Možnost osahat si zblízka tak široké spektrum moderních technologií a odhalovat úskalí a potenciální problémy jejich vzájemné integrace je velikou výzvou a dobrodružstvím.

Testy, testy, testy

Kvalita kódu a vývojem dodávané funkcionality je kontrolována na mnoha úrovních. Testy řízený vývoj a kontinuální integrace jsou v GoodData samozřejmostí, takže vývojáři standardně pokrývají svůj kód unit testy a komponentovými testy. Úkolem infrastrukturní části QA oddělení je pak efektivní exekuce tisíců takových testů v Hudsonu, serveru pro kontinuální integraci, a zajištění včasného varování. Kromě těchto nízkoúrovňových testů máme k dispozici ještě další indikátory a nástroje k detekci problémů. Například data-driven testy chroupající neustále desítky gigabajtů dat a u tisíců reálných reportů a dashboardů porovnávající vypočtená čísla pro předchozí a novou verzi produktu. A samostatnou kapitolu tvoří takzvané REST testy, což jsou integrační testy, které pokrývají de facto všechny komponenty platformy kromě webového klienta. Ten komunikuje se serverem výhradně prostřednictvím RESTových API, takže každý případ užití, každou funkcionalitu, kterou GoodData nabízí, lze reprezentovat jako sekvenci HTTP požadavků. Od loginu přes vytvoření projektu, nalití dat až po konfiguraci a spočítání reportu.

Velkou QA výzvou zůstává automatické testování webového klienta. Jelikož je napsán kompletně v JavaScriptu, je možné sice řadu aspektů prověřit na úrovni unit testů a je také možné také jednotlivé UI komponenty separátně instanciovat v browseru, ovšem automatizované testy na akceptační úrovni jsou vzhledem k dynamičnosti a všudypřítomné asynchronicitě (AJAX) velkým oříškem. Nelze říci, že bychom nezaznamenali na tomto poli alespoň částečné úspěchy, ale robustní a flexibilní framework pro tento typ testů je jeden z úkolů, který v GoodData chceme a budeme řešit v blízké budoucnosti.

Dobre ráno, Vietname

I když věříme v automatizaci, je jasné, že bez manuálního testování se zejména v rychle se měnícím webovém uživatelském rozhraní neobejdeme. V této oblasti hraje v GoodData hlavní roli testovací tým našeho kontraktora z vietnamského Ho Či Minova města, firmy LHV, která má s outsourcovaným testováním bohaté zkušenosti, včetně spolupráce s několika českými společnostmi. Říká se, že off-shoring nemá kromě ceny žádnou jinou výhodu. Jenže outsourcovat QA do Vietnamu je jako outsourcovat běžecký tým do Keni: pracovitost, pečlivost, disciplína a smysl pro detail jsou v QA vlastnostmi nejcennějšími a naši asijští kolegové jimi disponují od přírody. V agilním prostředí GoodData se pak i šestihodinový (v létě pětihodinový - ve Vietnamu není letní čas) časový rozdíl stává výhodou: když přijdeme v Praze do práce, máme k dispozici výsledky testů a JIRA je plná ještě teplých defektů, z nichž mnohé jsou během dne opraveny. A poslední odpolední, automatickými testy prověřený build je večer nasazen na testovací prostředí, které je ráno vietnamského času připraveno na verifikaci a další testovací scénáře. Klíčová je samozřejmě komunikace: primitivní představa o off-shoringu, že pošlete e-mail se specifikací na jiný kontinent a zpátky se vám vrátí dokonalý produkt je scestná. Kromě časové bariéry je tu i bariéra jazyková a také možná ta největší: kulturní. Intenzivní komunikací a každodenním přenosem znalostí lze však všechny tyto obtíže překonat a zajistit spolupráci, která je ekonomicky výhodná nejen na první pohled, ale je efektivní, vzájemně inspirativní a nevede k oboustranné frustraci tak časté, jak tomu bývá při pokusech o realizaci tohoto konceptu.

Dobre ráno, Vietname

QA je přítelem a pomocníkem vývojářů

QA v GoodData nejenže bedlivě sleduje práci vývojářů, ale také jim poskytuje nástroje k tomu, aby mohli rychle otestovat své výtvory. Produkční cluster GoodData platformy čítá v současné době téměř 70 linuxových serverů většinou dedikovaných specifickému úkolu, ale pro testovací účely jsme schopni desítky běžících služeb a komponent směstnat na jeden stroj se 7,5 GB paměti a čtyřmi procesory (v terminologii Amazon EC2 m1.large). Nástroj, který takovou tzv. personální instanci (PI) je schopen nastartovat v Amazon Elastic Cloudu, nainstalovat na ní potřebný software a zároveň ji na různých úrovních (REST API, UI,...) otestovat, pochází právě z dílny GoodData QA. Vývojář má během krátké doby k dispozici úplně nový, čistý stroj nainstalovaný z vlastní gitové větve a vše, včetně deployment skriptů, na něm může otestovat. Když je hotov, může stroj vypnout a "zahodit". Odpadají tak problémy typické pro sdílená testovací prostředí, kde je každá část rozbita zásahy jednoho developera a dlouhé hodiny jsou vyplýtvány na údržbu a zjišťováním příčin záhadných selhání.

S velkou mocí přichází velká zodpovědnost

GoodData dodává svým zákazníkům novou funkcionalitu každé dva týdny a QA manager zastává současně i roli release managera, který plánuje a koordinuje celé období stabilizace a určuje, které defekty je nutno opravit okamžitě, a které mohou počkat na následující "Bug-fixing Day" (koná se jednou za vývojový cyklus a vývojáři ho tráví spravováním problémů s nižší prioritou a "čištěním" bug trackeru). Pozice QA v GoodData je tradičně velmi silná a je v její pravomoci odložit release v případě problémů, které by mohly ovlivnit našeho zákazníka. Zároveň je třeba říci, že vývojáři v GoodData si důležitost kvality uvědomují a vztah obou oddělení je tak rovnocenně partnerský.

Každý release s sebou samozřejmě přináší nějaký ten stres, ale na druhou stranu, když se vše povede, můžete ještě tentýž den čekat zpětnou vazbu od zákazníků. Ve staromódním produktovém vývoji bývá vývojový cyklus půl roku i více, přičemž po vydání nové verze ještě nějakou dobu trvá než se dostane k zákazníkovi. U softwaru jako služby na zákaznické ohlasy čekat nemusíte: o případných problémech se dozvíte hned a můžete začít plánovat okamžité i dlouhodobější kroky nutné k nápravě a vylepšení kvality. Na druhou stranu, když problémy nejsou a zákaznické reakce jsou pozitivní, následuje ihned po lehce adrenalinovém releasu zasloužená radost a uspokojení z dobře vykonané práce.

Lubomír Zrnečko
QA Manager
GoodData

Další články z této rubriky

Týden na ITBiz: Americká vláda poskytne Intelu téměř 20 miliard dolarů na podporu výroby čipů v USA
Týden na ScienceMag.cz: Umělá inteligence analyzovala vlastnosti temné energie
Týden na ITBiz: Při virtuálních schůzkách lidé bojují s nudou
Týden na ScienceMag.cz: Očekávaný Weylův polokov prý neexistuje
Týden na ITBiz: 80 % center IT a podnikových služeb chce více šlápnout do automatizace

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.