continuous testing devops
Vad är kontinuerlig testning och kontinuerlig teströrledning i DevOps?
Hoppas att ni alla gillade den senaste guiden om Kontinuerlig distribution i DevOps .
hur man förklarar flyta i java
Vi vet vikten av att testa i alla programvaruleveranser och DevOps är en kort leveranscykel, det är omöjligt att köra alla designade testfall varje gång manuellt, när en enda kodrad uppdateras i versionskontrollverktyget och det är där kontinuerligt testning och automatiserad kontinuerlig teströrledning kommer in i bilden i DevOps.
Föreslagen läsning => DevOps Training Tutorial från Scratch
Fördelar med CT:
-
- Kvalitet och hastighet är de stora fördelarna med CT.
- Snabbare och snabbare feedback om koden.
- Ökar teamets självförtroende och uppmuntrar dem att kontinuerligt förbättra sig.
VIDEO Del 3 Block 4: kontinuerlig testning- 14 minuter och 39 sekunder
Transkript:
I detta block kommer vi att lära oss mer om Kontinuerlig testning och pipeline för kontinuerlig testning i detalj.
Kontinuerlig testning är en annan viktig process för den kontinuerliga leveransrörledningen tillsammans med kontinuerlig integration, i en rörledning innehåller den, olika testfaser där de automatiserade testerna körs tillsammans med de automatiserade kvalitetsgrindarna däremellan.
Således är kontinuerlig testning att utföra automatiserade tester kontinuerligt och upprepade gånger mot kodbasen och de olika distributionsmiljöerna.
Huvudsakligen är enhetstester, statisk kodanalys, säkerhetskodanalys, integrationstester, belastning och prestandatester en del av kontinuerlig testning som körs i en automatiserad pipeline för kontinuerlig testning.
Eftersom kontinuerlig integration och kontinuerlig distribution kallas CI, CD kallas kontinuerlig test oftare som CT.
Om du ser det här diagrammet, som är en kontinuerlig leveransrörledning, inkluderar den här rörledningen två rörledningar, en är en byggledning som är CI-rörledning eller kontinuerlig integrationsrörledning, som består av automatiserad byggutlösare, kompilering, byggnad och distribution.
Den andra är en teströrledning, som är en kontinuerlig teströrledning
Låt oss nu se mer om kontinuerlig testning.
Vi vet vikten av att testa, testa varje kodrad ... .. testa varje gång ... och testa i olika steg och det är nästan omöjligt att köra alla de designade testerna varje gång manuellt när en kodrad uppdateras till versionskontroll.
Det är där den kontinuerliga testningen kommer in i bilden.
Så om inte koden som kommer in i den automatiserade kontinuerliga integrerade pipelinen, testas noggrant och säkerställer den kvalitet som krävs, finns det ingen nytta för att släppa programvaran till kunderna. Jag menar att kvalitet inte kan säkerställas om inte koden testas grundligt.
Så kontinuerlig testning, som definierats tidigare, är att utföra olika typer av tester, kontinuerligt på kodbasen och i olika miljöer som den distribueras på, som fördefinierat och utformat i den kontinuerliga leveransrörledningen.
Som du ser på bilden sker enhetstester på själva CI-servern, som testar varje enhet i systemet isolerat.
Integrationstester sker på integrationsmiljön som i grunden verifierar komponenterna integrerade tillsammans. Systemtest i systemtestmiljön där BIG-systemet med alla integrerade komponenter och gränssnitt testas genom systemnivåscenarier i en systemtestmiljö och så vidare.
Och testdjupet utvecklas ofta när simuleringen av miljön närmar sig produktionen.
Kontinuerlig testning blir gradvis tuffare och längre med utvecklingen mot produktionsmiljön, eftersom vi långsamt behöver lägga till ett antal tester och mer komplicerade tester när koden mognar och miljöns komplexitet utvecklas.
Det är inte så att samma testfall skulle köras hela tiden, testfallet måste uppdateras varje gång i olika faser och automatiserade skript uppdateras, eftersom koden blir mognad, går vidare till en högre miljönivå där konfigurationer och infrastruktur också framåt tills det kommer i produktion.
Så, även den tid det tar att köra testerna ökar när testet fortskrider mot släpppunkt, som att enhetstester kan ta mycket kortare tid att köra medan vissa integrationstester eller vissa systemtester eller belastningstester kan ta några långa timmar att köra eller kan ta några dagar att springa.
Här skulle den kontinuerliga testningen huvudsakligen köras automatiserade testfall automatiskt med en utlösare. Men som vi definierade tidigare innebär kontinuerlig leverans också vissa manuella tester och grindar, där vissa tester utförs manuellt innan de trycks i produktion.
Dessa mellanliggande kvalitetsgrindar i varje teststeg och ökar förtroendet för koden.
Så, den kontinuerliga teströrledningen som sådan inkluderar enhetstestning tillsammans med preliminära automatiserade säkerhetsverifieringar. Kommer sedan in i en integrationsnivå för testning, där automatiserade integrationstester körs, sedan vidare till en systemnivå där systemnivåscenarier automatiseras och körs.
Här utförs även vissa prestanda testscenarier.
Går sedan till 'Acceptance testing' som i princip inkluderar de automatiska testfallet för godkännande av webbplatsen och slutligen vidare till 'User Acceptance Testing' som kan vara en manuell körning och inkluderar slutanvändarens deltagande för att utföra testerna och detta kommer att vara ett slags slutgiltig avloggning på produkten eller en funktion där manuell grind anropas och slutligen distribueras till produktionsplatsen.
Så i grund och botten, när kontinuerlig testning fortskrider, ökar komplexiteten i testerna och testmiljön och kommer till den miljö som är närmare produktionen som simulering.
Jag behöver inte specifikt behöva nämna att alla dessa teststeg inkluderar byggverifieringstester, sanitytester, rökprov och regressionstester också, som sagt, det beror på vad vi utformar i den kontinuerliga test- och leveranspipeline.
som ansvarar för det affärsvärde som levereras av ett scrumteam
Detta är den typiska pipeline för kontinuerlig testning, det kan designas av teamet baserat på typ av produkt och olika testnivåer och typer av test som produkten kräver.
Kontinuerlig testning kräver integrering av automatiseringsramen med versionskontroll- och CI-verktyget och de olika automatiserade verktygen för att utföra funktionell och icke-funktionell testning i olika testfaser, som:
- Ekolod för statisk kodanalys,
- Fortify för säker kodanalys,
- Selen för funktionstestning,
- Lastskena för belastningstest etc.,
Microsoft TFS, Jenkins, kock, marionett är få verktyg som finns tillgängliga på marknaden för att utforma CI-CD-pipelinen.
Men saken är att de här verktygen kanske inte stöder den fullständiga automatiseringen från slut till slut, beroende på vilket versionskontrollverktyg som används, så få organisationer kanske föredrar att utveckla sina egna automatiseringsramar, vilket möjliggör automatisering av leveransrörledningen från kod till kod. åta sig att leverera kod.
Så, kontinuerlig testning är en mycket viktig del av testningen säkerställer produktens kvalitet eller release, och man bör vara mycket försiktig med valet av ett verktyg, ramverk etc. som i första hand bestämmer kvaliteten och leveranshastigheten.
Så installation av rätt kontinuerlig teströrledning tar lite mer tid i den kontinuerliga leveransrörledningen. Inte bara på verktyget och ramdelen utan även på testfallet. Kontinuerlig testning inkluderar också att definiera distributionsledningen inom.
Eftersom CT kräver automatiserad distribution av byggnaden till olika miljöer i olika faser, vilket kräver automatisering av installationen och inställning av miljöerna via automatiska skript.
Dessa automatiska skript som inkluderar konfigurering av infrastruktur och miljökonfigurationer som en kod kontrolleras i versionskontrollverktyget och leveransrörledningen hämtar den från versionskontrollverktyget för att utföra distributionen. Detta kallas distribution pipeline.
Nu kan vi komma till fördelarna med CT,
Att uppnå kvalitet och snabbhet är den största fördelen med kontinuerlig testning.
Till skillnad från tidigare där testning bara hänt i slutändan är testet hela tiden begreppet kontinuerlig testning och därmed kontinuerlig testning i en leveranspipeline, gör att teamet kan introducera kvalitetsgrindar var som helst och valfritt antal kvalitetsgrindar de vill ha, för att för att uppnå den grad av kvalitet som de behöver.
Så om koden misslyckas alls för testning vid en viss punkt eller grind i en pipeline, kan teamet gå tillbaka och automatiskt misslyckas med hela distributionen fram till den punkten.
vad är din inställning när du testar mobilapplikationer
Detta ger en tydlig indikation för både Dev- och Ops-teamet att något saknas där och teamet kan arbeta med att fixa det. Så detta är fördelen och flexibiliteten med pipeline för kontinuerlig testning.
Så, införandet av kvalitetsgrindar vid olika testfaser styr kvaliteten på koden bättre i rörledningen.
Mer antal grindar som koden passerar, mer kommer teamets förtroende för koden att göra det till produktionen på en högre kvalitetsnivå.
Så kontinuerlig testning ökar teamets självförtroende och uppmuntrar dem att förbättra sig kontinuerligt.
Sammantaget, om teamet inte verkligen försummar något av testfel vid några testfaser eller kvalitetsgrindar i rörledningen, kommer definitivt kontinuerlig testning att vara en bonus för att uppnå högkvalitativa mål.
Så för att avsluta med kontinuerlig testning, direkt från enhetstesterna som körs under det inledande steget genom acceptantestning, prestandatestning och till och med vissa manuella tester som ska köras, är MYCKET mycket kritiska för att definiera kontinuerlig testning i DevOps-pipelinen.
Detta kompletterar vår diskussion om Part3-ämnen med kontinuerlig integration, kontinuerlig leverans och kontinuerlig testning.
I vår kommande handledning kommer vi att diskutera mer om Konfigurationshantering, releasehantering och övervakning av applikationsprestanda.
PREV-handledning | NÄSTA självstudie
Rekommenderad läsning
- Kontinuerlig distribution i DevOps
- Kontinuerlig leverans i DevOps
- Topp 10 kontinuerliga testverktyg för DevOps-testning (Lista 2021)
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- DevOps Testing Tutorial: Hur DevOps kommer att påverka QA-testning?
- Sammanfattning av DevOps Video Tutorials
- Kontinuerlig integration i DevOps
- Testing Primer eBook Download