continuous testing devops
Co je to průběžné testování a průběžné testování v DevOps?
Doufám, že jste si všichni užili poslední výukový program Kontinuální nasazení v DevOps .
Víme, jak důležité je testování v jakékoli dodávce softwaru a protože DevOps je krátký cyklus dodávek, je nemožné spustit všechny navržené testovací případy pokaždé ručně, když je v nástroji pro správu verzí aktualizován jeden řádek kódu, a to je místo, kde testování a automatizované průběžné testování se dostanou do obrazu v DevOps.
Doporučené čtení => Výukový program DevOps Training od nuly
Výhody CT:
-
- Kvalita a rychlost jsou obrovskými výhodami CT.
- Rychlejší a rychlejší zpětná vazba ke kódu.
- Zvyšuje důvěru týmu a vybízí je k neustálému zlepšování.
VIDEO Část 3 Blok 4: Kontinuální testování- 14 minut 39 sekund
Přepis:
V tomto bloku se dozvíme o Průběžné testování a potrubí průběžného testování podrobně.
Kontinuální testování je dalším důležitým procesem kanálu nepřetržitého doručování spolu s průběžnou integrací, v potrubí zahrnuje: různé fáze testování přičemž automatizované testy probíhají společně s automatizovanými branami kvality mezi nimi.
Kontinuální testování tedy znamená provádění automatických testů nepřetržitě a opakovaně proti kódové základně a různým prostředím nasazení.
Součástí nepřetržitého testování, které probíhá v automatizovaném kanálu nepřetržitého testování, jsou hlavně testy jednotek, statická analýza kódu, analýza bezpečnostního kódu, integrační testy, testy zátěže a výkonu.
Protože kontinuální integrace a nepřetržité nasazení se nazývají CI, CD, kontinuální testování se častěji nazývá CT.
Pokud vidíte tento diagram, což je kanál pro nepřetržité doručování, tento kanál obsahuje dva kanály, jedním je kanál sestavení, který je potrubím CI nebo kanálem nepřetržité integrace, který se skládá z automatického spouštěče sestavení, kompilace, budování a nasazení.
Druhý je testovací kanál, což je nepřetržitý testovací kanál
Podívejme se nyní na průběžné testování.
Známe důležitost testování, testování každého řádku kódu… .. testování pokaždé… a testování v různých fázích a je téměř nemožné spustit všechny navržené testy pokaždé ručně, když je řádek kódu aktualizován do správy verzí.
Tam přichází na řadu průběžné testování.
Takže pokud se kód, který se dostane do automatizovaného kontinuálního integrovaného kanálu, důkladně otestuje a zajistí požadovanou kvalitu, nemá smysl vydávat software zákazníkům. Myslím tím kvalitu nelze zajistit, dokud není kód důkladně otestován.
Kontinuální testování, jak je definováno dříve, znamená provádět různé typy testů nepřetržitě na kódové základně a v různých prostředích, do kterých se nasazuje, jak je předdefinováno a navrženo v kanálu nepřetržitého doručování.
Jak vidíte na obrázku, testy jednotek probíhají na samotném serveru CI, který testuje každou jednotku systému izolovaně.
Testy integrace probíhají v prostředí Integration, které v zásadě ověřuje společně integrované komponenty. Testování systému v prostředí testování systému, kde je systém BIG se všemi integrovanými komponentami a rozhraními testován prostřednictvím scénářů na úrovni systému v prostředí testování systému atd.
A hloubka testování často postupuje, jak se simulace prostředí přibližuje produkci.
Průběžné testování se s postupem do produkčního prostředí postupně stává tvrdší a delší, protože s postupujícím vývojem kódu a složitostí prostředí musíme pomalu přidávat řadu testů a složitějších testů.
Není to tak, že by byly spuštěny stejné testovací případy, testovací případy je třeba aktualizovat pokaždé v různých fázích a aktualizují se automatizované skripty, protože kód se stává vyzrálejším a postupuje na vyšší úroveň prostředí, kde konfigurace a infrastruktura také předem, dokud se nedostane do výroby.
nedefinovaný odkaz na funkci v hlavičkovém souboru c ++
Takže i čas potřebný ke spuštění testů se zvyšuje s postupujícím testováním směrem k bodu uvolnění, například testování jednotky může trvat velmi kratší dobu, zatímco některé testy integrace nebo některé testy systému nebo zátěžové testy mohou trvat několik dlouhých hodin nebo mohou trvat pár dní do běhu.
Kontinuální testování by zde provádělo hlavně automatické spuštění automatických testovacích případů se spouštěčem. Ale jak jsme definovali dříve, kontinuální dodávka zahrnuje také určité ruční testy a brány, přičemž některé testy se provádějí ručně, než se dostanou do výroby.
Tyto brány střední kvality v každé fázi testování a zvyšují důvěru v kód.
Průběžný testovací kanál jako takový zahrnuje testování jednotek spolu s předběžným automatizovaným ověřením zabezpečení. Poté se dostane na integrační úroveň testování, kde jsou spuštěny automatizované integrační testy, poté na systémovou úroveň, kde jsou automatizovány a spuštěny scénáře na úrovni systému.
Zde se provádějí i určité scénáře testování výkonu.
Poté přejde na „Přijímací testování“, které v zásadě zahrnuje automatizované testovací přejímky stránek, a nakonec na „Přijímací testování uživatelů“, což může být manuální provedení a zahrnuje účast koncového uživatele na provádění testů a toto bude druh konečného odhlášení na produktu nebo funkci, kde je vyvolána manuální brána a nakonec nasazena na produkční místo.
Jak postupuje průběžné testování, v zásadě se složitost testů a testovacího prostředí zvyšuje a dostává se do prostředí, které je blíže simulaci podobné produkci.
Nemusím konkrétně muset zmínit, že všechny tyto fáze testování zahrnují také ověřovací testy sestavení, testy zdravého rozumu, kouřové testy a regresní testy, opět, jak jsem řekl, záleží na tom, co navrhujeme v průběžném testování a doručování.
Toto je typické potrubí pro průběžné testování, které může tým navrhnout na základě typu produktu a různých úrovní testování a typů testování, které produkt vyžaduje.
Kontinuální testování vyžaduje integraci automatizačního rámce s nástrojem pro správu verzí a nástrojem CI a různými automatizovanými nástroji k provádění funkčního a nefunkčního testování v různých fázích testování, například:
- Sonar pro statickou analýzu kódu,
- Opevnění pro bezpečnou analýzu kódu,
- Selen pro funkční testování,
- Nosič pro testování zátěže atd.,
Microsoft TFS, Jenkins, šéfkuchař, loutka je několik nástrojů, které jsou na trhu k dispozici pro návrh kanálu CI-CD.
Jde ale o to, že tyto nástroje nemusí podporovat úplnou automatizaci typu end to end, v závislosti na použitém nástroji pro správu verzí, takže jen málo organizací může upřednostňovat vývoj vlastních automatizačních frameworků, což umožňuje automatizaci procesu dodání z kódu od začátku do konce zavázat se k doručení kódu.
Kontinuální testování, které je velmi důležitou součástí testování, tedy zajišťuje kvalitu produktu nebo vydání a je třeba být velmi opatrní při výběru nástroje, rámce atd., Který primárně určuje kvalitu a rychlost dodání.
Takže nastavení správného kanálu nepřetržitého testování zabere v potrubí nepřetržitého doručování trochu více času. Nejen na část nástroje a rámce, ale také na část testovacích případů. Kontinuální testování také zahrnuje definování kanálu nasazení uvnitř.
Protože CT vyžaduje automatizované nasazení na různých prostředích v různých fázích, což vyžaduje automatizaci nasazení a nastavení prostředí pomocí automatických skriptů.
Tyto automatizované skripty, které zahrnují nastavení konfigurace infrastruktury a prostředí jako kódu, jsou zkontrolovány do nástroje pro správu verzí a dodávka jej vyzvedne z nástroje pro správu verzí k provedení nasazení. Tomu se říká zaváděcí kanál.
Nyní pojďme k výhodám CT,
Dosahování kvality a rychlosti je největší výhodou nepřetržitého testování.
Na rozdíl od dřívějších testů, kde k testování docházelo až na konci, je testování v celém konceptu nepřetržitého testování, a proto nepřetržité testování v dodávkovém potrubí umožňuje týmu zavést kvalitní brány kdekoli a libovolný počet kvalitních bran, aby aby dosáhli stupně kvality, který potřebují.
Pokud tedy vůbec kód selže při testování v jakémkoli konkrétním bodě nebo bráně v kanálu, tým se může vrátit a automaticky selhat celé nasazení až do tohoto bodu.
To dává jasnou indicii pro tým Dev i Ops, že tam něco chybí, a tým může pracovat na řešení. To je tedy výhoda a flexibilita kanálu průběžného testování.
Takže zavedení kvalitních bran v různých testovacích fázích lépe řídí kvalitu kódu v potrubí.
Čím větší je počet bran, které kód projde, tím větší bude důvěra týmu v kód, že se může dostat do výroby na vyšší úrovni kvality.
Neustálé testování tedy zvyšuje důvěru týmu a vybízí je k neustálému zlepšování.
Celkově lze říci, že pokud tým ve skutečnosti nezanedbá žádné selhání testu v žádné fázi testování nebo v bráně kvality v potrubí, určitě bude průběžné testování bonusem k dosažení vysoce kvalitních cílů.
Takže k závěru o průběžném testování, přímo z jednotkových testů, které se spouštějí během předběžné fáze prostřednictvím akceptačního testování, je testování výkonu a dokonce i určité ruční testy, které budou spuštěny, VELMI VELMI VELMI kritické pro definování nepřetržitého testování v potrubí DevOps.
Tím je dokončena naše diskuse o tématech části 3 o nepřetržité integraci, nepřetržitém doručování a nepřetržitém testování.
V našem nadcházejícím tutoriálu budeme diskutovat více o Správa konfigurace, správa vydání a monitorování výkonu aplikace.
Výukový program PREV | DALŠÍ výuka
Doporučené čtení
- Kontinuální nasazení v DevOps
- Kontinuální doručování v DevOps
- Top 10 nástrojů pro kontinuální testování pro testování DevOps (seznam 2021)
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Výukový program pro testování DevOps: Jak DevOps ovlivní testování kvality?
- Rekapitulace video tutoriálů DevOps
- Kontinuální integrace v DevOps
- Testování stahování e-knih Primer