Průběžné testování v DevOps

Co je to průběžné testování?

Průběžné testování v DevOps je typ testování softwaru, který zahrnuje testování softwaru v každé fázi životního cyklu vývoje softwaru. Cílem průběžného testování je hodnocení kvality softwaru v každém kroku procesu průběžného dodávání včasným testováním a častým testováním.

Proces nepřetržitého testování v DevOps zahrnuje zúčastněné strany, jako je vývojář, DevOps, QA a Operanárodní systém.

V čem se průběžné testování liší?

Průběžné testování
Průběžné testování

Starý způsob testování byl soustředěný na ruce. Software byl předán z jednoho týmu do druhého. Projekt by měl určité fáze vývoje a QA. Týmy QA vždy chtěly více času na zajištění kvality. Cílem bylo, aby kvalita převažovala nad harmonogramem projektu.

Podniky však chtějí rychlejší dodání softwaru koncovému uživateli. Čím novější software je, tím lépe jej lze propagovat a zvýšit výnosový potenciál společnosti. Proto byl vyvinut nový způsob testování.

Kontinuální znamená nepřetržité testování prováděné nepřetržitě. V procesu Continuous DevOps se změna softwaru (kandidát na vydání) neustále přesouvá od vývoje přes testování k nasazení.

Nepřetržitý proces DevOps
Nepřetržitý proces DevOps

Kód je neustále vyvíjen, dodáván, testován a nasazován.

Například kdykoli vývojář zkontroluje kód na serveru zdrojového kódu, jako je Jenkins, automatizovaná sada jednotkových testů se provádí v nepřetržitém procesu. Pokud testy selžou, sestavení je odmítnuto a vývojář je informován. Pokud sestavení projde testem, je nasazeno na výkonové servery QA pro vyčerpávající funkční a zátěžové testy. Testy probíhají paralelně. Pokud testy projdou, software je nasazen do výroby.

Průběžné testování je malým kolečkem v cyklu průběžného vývoje, integrace a nasazení.

Aktuální testovací zásobník
Aktuální testovací zásobník

Vývoj softwaru není stejný jako v minulosti, zkrátili jsme vývoj z měsíce na týdny. Aktuální testovací zásobník (viz obrázek výše) má název pro testování uživatelského rozhraní. Ale cílem je mít stále více automatizovaných jednotkových testů.

Jak se kontinuální testování liší od automatizace testování?

Automatizace testování vs kontinuální testování

Parametr Automatizace testů Průběžné testování
Definice Automatizace testování je proces, kde se pro automatizaci úloh používá nástroj nebo software. Jedná se o metodologii testování softwaru, která se zaměřuje na dosahování neustálé kvality a zlepšování.
Účel Soubor podobných nebo opakujících se úkolů může stroj provést rychleji, s menším počtem chyb. Neustálý proces testování pomáhá najít rizika, řešit je a zlepšovat kvalitu produktu.
Předpoklad Automatizace testování možná bez integrace průběžného testování. Nepřetržité testování nelze implementovat bez automatizace testování.
Čas Vydání softwaru může trvat měsíc až roky. Vydání softwaru může být vydáváno týdně až každou hodinu.
Zpětná vazba Pravidelná zpětná vazba po testování každého vydání. Zpětná vazba v každé fázi musí být okamžitá.
Historie Automatizované testování se provádí po desetiletí, aby byl proces testování rychlejší. Nepřetržité testování je relativně novější koncept.

Jak provádět průběžné testování

  • Použití nástrojů ke generování sady pro automatizaci testů z uživatelských příběhů/požadavek
  • Vytvořte testovací prostředí.
  • Zkopírujte a anonymizujte produkční data a vytvořte testovací datovou základnu
  • Použijte virtualizaci služeb k testování API
  • Paralelní testování výkonu

Nástroje pro průběžné testování

Zde je kurátorský seznam nejlepších Nástroje pro průběžné testování :

1) QuerySurge

QuerySurge je chytré řešení pro testování dat, které je prvním svého druhu kompletním řešením DevOps pro nepřetržité testování dat. Mezi klíčové funkce patří robustní API s více než 60 voláními, podrobná datová inteligence a analýza dat, bezproblémová integrace do kanálu DevOps pro nepřetržité testování a rychlé ověření velkého množství dat.

Začněte testovat zdarma

2) Jenkins

Jenkins je nástroj pro kontinuální integraci, který je napsán pomocí Java jazyk. Tento nástroj lze konfigurovat pomocí rozhraní GUI nebo příkazů konzoly.

Download link: https://jenkins.io/

3) Travisi

Travis je kontinuální testovací nástroj hostovaný na GitHubu. Nabízí hostované a místní varianty. Poskytuje řadu různých jazyků a dobrou dokumentaci.

Download link: https://travis-ci.org/

4) Selenium

Selenium je nástroj pro testování softwaru s otevřeným zdrojovým kódem. Podporuje všechny přední prohlížeče jako Firefox, Chrome, IE a Safari. Selenium WebDriver se používá k automatizaci testování webových aplikací.

Download link: https://www.seleniumhq.org/

Výhody kontinuálního testování

  • Zrychlete dodávku softwaru
  • Nepřetržité testování zlepšuje kvalitu kódu
  • Pomáhá posoudit přesné pokrytí podnikatelských rizik.
  • Bezproblémově se integruje do DevOps Process
  • Pomáhá vytvořit agilní a spolehlivý proces za pouhé hodiny namísto měsíců.
  • Urychluje dobu uvedení na trh pomocí mechanismu nepřetržité zpětné vazby.
  • Slučuje tradičně utlumené týmy, aby vyhovovaly potřebám moderních podniků. Odstraňuje odpojení mezi vývojovými, testovacími a provozními týmy.
  • Automatizace testování pomáhá dosáhnout konzistence udržováním stejné konfigurace pro všechny relevantní testy.
  • Zdůrazňuje obchodní očekávání ke zmírnění obchodních rizik
  • Poskytování všudypřítomného přístupu k testovacímu prostředí pomocí virtualizace služeb

Výzvy průběžného testování

  • Tradičním procesem je omezení kulturního posunu mezi odborníky na vývoj a kontrolu kvality.
  • Nedostatek dovedností DevOps a správných nástrojů pro testování v prostředí Agile & DevOps.
  • Heterogenní testovací prostředí, která nikdy nebudou odrážet produkční prostředí.
  • Konvenční testovací proces a volně definovaná správa testovacích dat.
  • Delší cykly integrace kódu způsobují problémy s integrací a pozdní opravy defektů
  • Nedostatečné a neefektivní zdroje a testovací prostředí
  • Komplexní aplikační architektura a obchodní logika, která omezuje přijetí DevOps.

Proč investovat do čističky vzduchu?

  • V softwarovém inženýrství je průběžné testování proces včasného testování, testování často, testování všude a automatizace.
  • Starý způsob testování byl zaměřený na předávání. Software je předán z jednoho týmu do druhého
  • Jenkins, Travis a Selenium jsou populární průběžné testování a Integrační nástroje.
  • Nepřetržité testování poskytuje zpětnou vazbu podle každé fáze dodávky.
  • Nepřetržité testování pomáhá zlepšovat kvalitu kódu
  • Tradičním procesem je omezení kulturního posunu mezi odborníky na vývoj a kontrolu kvality.
  • Delší cykly integrace kódu způsobují problémy s integrací a pozdní opravy defektů