Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.
Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.
Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.
Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.
Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.
Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.
ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.
Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.
Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.
Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.
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.
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.
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.
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í.
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
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
efektivní exekuce tisíců takových testů v Hudsonu
vas nejvyssi je poradcem v Cloudbees a vy pouzivate Hudson?? Zajimave
Jinak bych ocenil spis podrobnejsi popis, v cem jake testy pisete, co pouzivate, jake zajimave problemy jste resili (napr. tak, jak je popsan onen nastorj na tzv. personální instanci (PI) na me pusobi dojmem, ze tohle jde naklikat v Hudson/Jenkins pomerne jednoduse a nemusi se na to delat zadny novy nastoj - ve skutecnosti to ale hadam asi tak jednoduche neni) atd.
Testy řízený vývoj a kontinuální integrace jsou v GoodData samozřejmostíTo mám radost, že to aspoň někdo tak vidí