devops testing tutorial
Tutorial voor DevOps-testen: Uit een recent onderzoek van RightScale is gebleken dat 54% van de bedrijven DevOps heeft geadopteerd en dat de belangstelling voor DevOps snel toeneemt.
In dit artikel zullen we leren hoe deze nieuwe softwareontwikkelingsmethodologie QA zal beïnvloeden en hoe de QA-functie als geheel zou moeten evolueren om deze verandering te omarmen.
Bekijk => Volledige DevOps Tutorial-serie
In dit artikel zullen we meer leren over DevOps en hoe dit QA en zijn functies zal beïnvloeden.
Wat je leert:
Wat is DevOps?
DevOps - is een combinatie van Devschaking &Operaties - het is een softwareontwikkelingsmethodologie die ernaar streeft alle functies van softwareontwikkeling, van ontwikkeling tot operaties, binnen dezelfde cyclus te integreren.
Dit vraagt om meer afstemming binnen de verschillende stakeholders in het softwareontwikkelingsproces (namelijk Ontwikkeling, QA & Operations
DevOps-cyclus
Een ideale DevOps-cyclus zou beginnen met:
- De Dev die code schrijft
- Binaire bestanden bouwen en implementeren in een QA-omgeving
- Testcases uitvoeren en tot slot
- Implementatie in productie in één soepele, geïntegreerde stroom.
Het is duidelijk dat deze aanpak een grote nadruk legt op automatisering van Build, Deployment en Testing. Gebruik van Continuous Integration (CI) -tools, Automation Testing-tools worden een norm in een DevOps fiets.
Waarom DevOps?
Hoewel er subtiele verschillen zijn tussen Agile en DevOps-testen , zullen degenen die met Agile werken DevOps iets meer vertrouwd vinden om mee te werken (en uiteindelijk toe te passen). Hoewel Agile-principes met succes worden toegepast in de ontwikkel- en QA-iteraties, is het een heel ander verhaal (en vaak een twistappel) aan de operationele kant. DevOps stelt voor om deze kloof te dichten.
Nu, in plaats van continue integratie, DevOps omvat 'continue ontwikkeling' , waar de code is geschreven en toegewezen aan versiebeheer, zal worden gebouwd, geïmplementeerd, getest en geïnstalleerd op de productieomgeving die klaar is om te worden gebruikt door de eindgebruiker.
Dit proces helpt iedereen in de hele keten omdat omgevingen en processen gestandaardiseerd zijn. Elke handeling in de keten is geautomatiseerd. Het geeft ook de vrijheid aan alle belanghebbenden om hun inspanningen te concentreren op het ontwerpen en coderen van een kwalitatief hoogstaand product in plaats van zich zorgen te maken over de verschillende bouw-, bedrijfs- en QA-processen.
Het verlaagt de time-to-live drastisch tot ongeveer 3-4 uur, vanaf het moment dat de code wordt geschreven en vastgelegd tot de implementatie op productie voor gebruik door de eindgebruiker.
In een notendop, DevOps is een uitbreiding van Agile of ik noem het graag 'Agile on Steroids'.
Gewijzigde rol van QA in DevOps
Traditioneel zou QA een build krijgen die wordt geïmplementeerd in hun aangewezen omgeving en QA zou dan beginnen met hun Functioneel Regressietesten De build zou idealiter een paar dagen bij de QA zitten voordat de QA-ondertekening van de build. Al deze stappen veranderen in DevOps.
QA-wijzigingen voor DevOps-tests:
- QA is vereist om hun inspanningen af te stemmen op de DevOps-cyclus.
- Ze moeten ervoor zorgen dat al hun testcases geautomatiseerd zijn en bijna 100% codedekking behalen.
- Ze moeten ervoor zorgen dat hun omgevingen gestandaardiseerd zijn en dat de implementatie op hun QA-boxen geautomatiseerd is.
- Al hun taken voorafgaand aan het testen, opschonen, taken na het testen, enz. Zijn geautomatiseerd en afgestemd op de continue integratiecyclus.
Zoals eerder vermeld, vereist DevOps een hoge mate van coördinatie tussen verschillende functies van de leverbare keten. Dit betekent ook dat de grenzen tussen verschillende rollen van contribuanten in de keten poreus worden.
DevOps moedigt iedereen aan om bij te dragen aan de keten Een ontwikkelaar kan dus onder andere implementaties configureren. Implementatie-ingenieurs kunnen testgevallen toevoegen aan de QA-repository. QA Engineers kunnen hun automatiseringstestcases configureren in de DevOps-keten.
Gezamenlijk is iedereen in de keten verantwoordelijk voor de kwaliteit en tijdigheid van de deliverables.
DevOps en testautomatisering
Om een dergelijke snelheid en wendbaarheid te bereiken, is het belangrijk om alle testprocessen te automatiseren en ze zo te configureren dat ze automatisch worden uitgevoerd wanneer de implementatie is voltooid in de QA-omgeving. Gespecialiseerde automatiseringstesttools en continue integratietools worden gebruikt om deze integratie te bereiken.
Dit vereist ook de bouw van een volwassen Automation Testing-framework waarmee men snel nieuwe testcases kan scripten.
DevOps-teststrategie: tips voor DevOps-succes
- De testcases die moeten worden uitgevoerd voor een bepaalde build, moeten worden geïdentificeerd.
- De testuitvoering moet in wezen slank zijn.
- De QA en Dev moeten bij elkaar zitten en de getroffen gebieden identificeren als gevolg van een bepaalde build en die gerelateerde testcases uitvoeren, plus een gezonde test.
- U moet ook gespecialiseerde tools voor codeanalyse en dekking configureren om ervoor te zorgen dat u bijna 100% codedekking bereikt.
- Het concept van uitvoeren alle regressietestgevallen voor een testpasje raken snel achterhaald.
- De strategie rond het testen van nieuwe functies moet worden geformaliseerd en de tussentijdse builds kunnen worden geleverd aan QA, die op zijn beurt testscripts maakt en deze automatiseringstests uitvoert op de tussentijdse builds totdat de code stabiel genoeg wordt om in de productieomgeving te worden geïmplementeerd. .
- Alle omgevingen die nodig zijn voor het testen, moeten worden gestandaardiseerd en de implementaties moeten worden geautomatiseerd.
- Met behulp van verschillende automatiseringstechnieken zou QA in staat moeten zijn om Automation Testing-runs te starten in verschillende platformonafhankelijke (en cross-browser in het geval van webapplicaties) omgevingen.
- Parallelle uitvoering van tests helpt bij het verkorten van de time-to-live, wat op zijn beurt de crux is van een succesvolle DevOps-implementatie.
- Voor elke run moeten exitcriteria worden ingesteld, zodat wanneer de resultaten van de tests worden teruggekoppeld naar de keten, een go / no-go-beslissing naar Productie wordt genomen.
- Gevonden blokkerings- of kritieke bugs moeten worden gerapporteerd en opgelost en door dezelfde reeks gebeurtenissen worden doorlopen voordat de code wordt geïmplementeerd in de productieomgeving.
Applicatiebewaking
QA moet problemen ook vroegtijdig kunnen detecteren en proactief kunnen rapporteren. Om dit te bereiken, moeten ze monitoring opzetten op de productieomgeving om bugs bloot te leggen voordat ze een storing veroorzaken.
Het opzetten van gespecialiseerde tellers zoals responstijden, geheugen- en CPU-gebruik, etc. kan veel inzicht geven in de ervaring van de eindgebruiker.
Bijvoorbeeld , als de gemiddelde responstijd voor inloggen geleidelijk toeneemt over de verschillende builds, moet QA dit probleem proactief rapporteren om de inlogcode te optimaliseren, anders kunnen toekomstige builds frustratie bij de eindgebruiker veroorzaken vanwege de hoge responstijden.
QA kan ook een kleine subset van bestaande testcases met hoge prioriteit gebruiken die periodiek tijdens de productie moeten worden uitgevoerd om de omgeving actief te bewaken. Bugs zoals 'Deze bug komt soms voor' of ' Kan niet reproduceren ”Kan worden opgevangen door deze strategie die uiteindelijk de applicatie stabieler maakt en ook meer tevreden eindgebruikers oplevert.
Nogmaals, deze monitoren moeten worden geconfigureerd om automatisch te werken met uitgebreide rapportage (zoals logboeken en schermafbeeldingen van fouten, enz.).
Gevolgtrekking
Waterval maakte plaats voor V-Model dat op zijn beurt werd vervangen door Agile als voorkeurskeuze voor softwareontwikkeling.
DevOps is de toekomst. Het is een continue verbetercyclus die softwareontwikkelingsmodellen van tijd tot tijd doorlopen. Je moet het omarmen, begrijpen en inprenten.
U moet de verschillende tools voor automatisering en continue integratie onder de knie hebben, zodat uw automatiseringsinspanningen waarde toevoegen aan de keten en slank genoeg zijn om zich snel aan te passen aan veranderingen. U werkt mogelijk aan projecten die mogelijk betrekking hebben op alpha bèta en UAT omgevingen voordat ze in de productieomgeving worden geïmplementeerd.
Het concept blijft in wezen hetzelfde. Automatisering en meer automatisering vormen de kern van een succesvolle DevOps-cyclus. Maar als QA moet je ook een grens kunnen trekken over hoeveel automatisering teveel automatisering is.
Over de auteur: Aniket Deshpande is werkzaam als QA Manager bij AFonze technologieën , Pune en heeft de afgelopen 9+ jaar op het gebied van softwaretests gewerkt in verschillende domeinen en platforms. Hij heeft een passie voor DevOps en werkt als consultant om organisaties te begeleiden bij het toepassen van DevOps-teststrategieën.
Als je meer wilt weten, of je bent op zoek naar DevOps en bijbehorende testaanpak in je organisatie, voel je dan vrij om contact de auteur.
Wat vind je van DevOps-testen? Denk je dat het project ten goede kan komen door ontwikkelaars en operationele mensen te laten samenwerken?
hoe sort in java te gebruiken
Laat ons uw opmerkingen / suggesties over dit artikel weten.
PREV-zelfstudie VOLGENDE zelfstudie
Aanbevolen literatuur
- Continu testen in DevOps
- DevOps Tutorial: The Ultimate Guide to DevOps (25+ Tutorials)
- DevOps ontrafelen: videozelfstudie (deel 1)
- Top 10 continue testtools voor DevOps-tests (2021-lijst)
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- Wat is softwaretesten? 100+ gratis zelfstudies voor handmatig testen
- Functioneel testen versus niet-functioneel testen
- Alfatesten en bètatesten (een complete gids)