Poučení z CrowdStrike: Jak předejít chybám při releasu?
Nedávný výpadek CrowdStrike, způsobený chybnou aktualizací softwaru Falcon Sensor, zasáhl zhruba 8,5 milionu zařízení s operačním systémem Windows. Tato aktualizace nejen způsobila systémové pády, ale rovněž problémy s přístupem k internetu, což mělo negativní dopad na kritické sektory jako bankovnictví, zdravotnictví či leteckou dopravu.
Zasaženy byly i malé a střední společnosti, kdy mnohé z nich nedokázaly vyplácet své zaměstnance nebo dodávat klíčové produkty. CrowdStrike však potíže rychle vyřešil, během několika dnů obnovil většinu postižených zařízení do provozu. Tato událost však upozornila na důležitost quality assurance včetně testování v SW vývoji.
Jak těmto rizikům v INVENTI předcházíme?
Jestliže hledáte způsob, jak se podobným situacím u IT projektů vyhnout, máme pro vás inspiraci. Průběhem našeho fungování jsme si osvojili hned několik best practices, které s vámi nyní sdílíme – mohou vás tak navést na cestu, jak zlepšit své procesy, a tak předejít chybám.
Toto téma jsme si mimo jiné také vzali pod drobnohled při našem C-Suite Meetupu: Jak na quality assurance v SW vývoji.
Podívejte se na TOP 10 aktivit, které nám pomáhají doručovat SW produkty ve špičkové kvalitě.
1. Zapojení QA již od začátku projektu
Pro zajištění vysoké kvality softwaru zapojujeme naše QA týmy již v raných fázích projektu. Díky našim propracovaným checklistům máme přehled nad celým projektem a dodržujeme stanovené kvalitativní standardy. Tento systematický přístup zajišťuje, že žádný kritický aspekt nepřehlédneme a všechny klíčové oblasti jsou důsledně testovány a reportovány od počátku vývoje.
Bližší představu vám dodá náš QA checklist.
2. Risk-based Testing
V rámci našich QA postupů implementujeme risk-based testing, díky čemuž identifikujeme potenciální rizika a zaměřujeme se prioritně na testování těch nejkritičtějších částí aplikace. Tento přístup nám pomáhá předcházet chybám v produkci, protože se primárně zaměřujeme na oblasti, které by mohly mít největší dopad na uživatele.
Jak na risk-based testing se dočtete v našem QA Guidebooku.
3. Využívání testing pyramidy a ISTQB metodiky
Testování provádíme na různých úrovních SW vývoje. Tím dosahujeme optimálního pokrytí testy. Současně nám to napomáhá odhalit kritické chyby již v rané fázi vývoje, a tak i snížit časovou a finanční náročnost vývoje. Best practices založené na metodice ISTQB nám poskytují transparentnost ve sledování kvality vývoje.
4. Pilotní běh a omezený počet uživatelů
Ať už se jedná o nasazení kompletního projektu do produkčního prostředí nebo nasazení nových funkcionalit, snažíme se s zákazníkem domluvit na pilotním běhu s omezeným počtem uživatelů. Díky tomu zjišťujeme, jak se SW chová v reálných podmínkách, identifikujeme potenciální chyby a opravujeme je ještě před širším nasazením. Minimalizujeme tak riziko výpadků a zajišťujeme stabilitu finálního produktu.
5. Regresní testování
Po každé změně provádíme regresní testování, abychom zajistili, že nedošlo k nechtěným chybám v již funkčním systému. Tento proces je nezbytný pro udržení konzistence a kvality softwaru, nové změny tak totiž nenaruší stávající funkce.
6. Smoke testování
Před každým nasazením do produkčního prostředí provádíme smoke testování, skrze které rychle ověřujeme základní funkčnost aplikace. Jedná se o další krok, jak identifikovat zásadní problémy ještě předtím, než se software dostane k uživatelům.
7. Definice akceptačních kritérií
Každou funkcionalitu testujeme dle předem definovaných akceptačních kritérií, která přesně stanovují očekávání ohledně funkčnosti a kvality. Díky tomu se nám daří naplnit očekávání nejen z pohledu projektového vedení, ale zejména koncových uživatelů.
8. Unit testy
Unit testy pro nás nejsou jen pokrytím kódu testy. Na jejich definici spolupracuje QA a vývojový tým dohromady. I unit testy se tak zaměřují na kritické a rizikové oblasti aplikace. Tímto způsobem můžeme identifikovat a řešit problémy co nejdříve, což snižuje riziko chyb v pozdějších fázích vývoje.
9. Řízené releasování, rollback a release notes
V rámci našich procesů používáme řízené releasování, které zahrnuje detailní release notes dokumentující všechny změny, nové funkce, opravy i chyby. Rovněž máme připravený rollback plán a zálohu dat, což nám umožňuje rychle vrátit změny zpět v případě, že se objeví nečekané problémy. Tento přístup zajišťuje, že je každý release dobře připraven a transparentně komunikován.
10. Automatizace testů
Nejkritičtější use cases automatizujeme, abychom je mohli neustále testovat. Získáváme tedy jistotu, že funkcionality kritické pro daný byznys vždy fungují správně. Tyto scénáře definujeme společně se zákazníkem, a tak se zaměřujeme na nejdůležitější oblasti aplikace.
Výpadek CrowdStrike poukázal na důležitost důkladného testování a robustních QA procesů. Kombinací moderních přístupů, mezi které patří zapojení QA od rané fáze projektu, risk-based testing, pilotní běhy, řízené releasování a automatizace testů, jsme v INVENTI schopni minimalizovat rizika a zajistit, že naše SW řešení splňuje ty nejvyšší standardy kvality.
Pojďme přivést vaše nápady do digitálního světa.
Budete překvapeni, co spolu dokážeme vytvořit.