Reading Time: 12 mins

Een korte handleiding voor testen in DevOps

Een korte handleiding voor testen in DevOps

Wat is testen in DevOps?

DevOps – zoals de term al aangeeft, is de praktijk die samenwerking tussen ontwikkelings- en IT-operatieteams aanmoedigt om te voldoen aan de ambities van continue integratie en continue implementatie (CI/CD) en moderne softwarelevering. Deze vereniging van twee teams is echter maar half voltooid; om de volledige voordelen van DevOps te kunnen benutten, moet testen ook worden meegesleept in de continue leveringsketen.

Dus, wat bedoelen we met testen in DevOps? Fundamenteel is testen in DevOps gericht op het vinden van een juiste balans binnen de overlap van doelen, feedbackcycli, vaardigheden tussen de ontwikkeling, QA en het operationele team. Het bevordert de samenwerking van alle drie de teams en automatiseert het proces van softwarelevering en infrastructuurwijzigingen.

Dit artikel leidt u door:

Hoe wordt testen uitgevoerd in DevOps?

Testen in DevOps betekent dat testen niet meer in silo’s zal plaatsvinden. Dit houdt in dat testen tegelijk met ontwikkeling zal plaatsvinden, wat een snellere feedbackcyclus bevordert, zodat elk team op de hoogte kan blijven van de invloed van hun werk op de rest van de leveringscyclus.

Als gevolg hiervan zien we dat er tijdens de DevOps-cyclus veel nadruk wordt gelegd op productkwaliteit.

Dan Ashby , mede-oprichter van Software Testing Clinic, illustreert testen in DevOps als volgt:

devops-testafbeelding

Na het integreren van agile-methodologie in teams met agile manifest, heeft het testen in het DevOps-team leidende principes geformuleerd voor het grondig en op schaal testen van software. Deze werden bekend als het ” DevTestOps”-manifest .

Continu testen boven testen op het einde

Alle testactiviteiten omarmen in plaats van alles automatiseren

Testen wat waarde geeft, op basis van klantgebruik, over alles testen

Een hele teambenadering van testen over testen in testafdelingen in silo’s

Productdekking boven codedekking

Door gebruik te maken van de bovenstaande DevTestOps-praktijken, zorgen teams ervoor dat regelmatige implementaties plaatsvinden zonder veel onderbrekingen door meer inzicht te geven in de stand van de softwareontwikkeling en hen te helpen de gewenste productkwaliteit te bereiken.

We zullen zien hoe we testen kunnen integreren in DevOps, een goede DevOps-teststrategie , best practices en tools kunnen plannen in de onderstaande secties.

Weet je?

Door silo’s tussen ontwikkeling, testen en bewerkingen te elimineren, kon NETFLIX 1000 keer per dag codes in de productie implementeren

Geautomatiseerd testen – de driver van DevOps

Onderzoeksresultaten van DZone over testautomatisering onthulden dat,

49% van de respondenten die bij organisaties met toegewijde DevOps-teams werken, zei dat een van de doelen van dat team was om automatisering in het hele SDLC te introduceren.

Redenen waarom DevOps geautomatiseerd testen nodig heeft:

  • Bijna onmogelijk om de code en codefixes continu te testen met de snelheid waarmee deze wordt geïmplementeerd
  • Het volgen van QA-teams in de continue softwareleveringsketen
  • Inconsistente testpraktijken en het opzetten van eenmalige QA-teams verzwakken de kwaliteit van de software die wordt gebouwd
  • Langere en alledaagse feedbackcycli die ontwikkeling en QA dwingen om de code naar productie te duwen om snelheid te bereiken

Het opnemen van geautomatiseerd testen is de zekere manier om QA op een vruchtbare manier in de DevOps -workflow te integreren. Zonder optimaal geautomatiseerd testen zal ons streven naar het stroomlijnen van processen in de CI/CD-pijplijn voor effectieve DevOps een verre droom zijn. In die zin fungeert geautomatiseerd testen als een aanjager van DevOps.

Testautomatisering instellen

Zoals we eerder hebben besproken, is geautomatiseerd testen een cruciale factor achter dit hele DevTestOps-fenomeen. Elke nacht of in het weekend grote hoeveelheden nachtelijke regressiesuites handmatig uitvoeren, ondermijnt eenvoudig het doel van DevOps .

Laten we een duik nemen in het opzetten van testautomatisering.

Testautomatiseringsvaardigheden zijn moeilijk te verwerven omdat het technisch ingewikkeld is. DevOps blijft een verre doelstelling voor bedrijven die er nog niet zijn of zich in de beginfase bevinden van het adopteren van testautomatisering in hun leveringsketen.

Voor succesvol DevTestOps-implementatie, een testautomatiseringsingenieur moet een goed begrip hebben van de functionaliteiten van de software, inherente technische details, keuze van automatisering en CI/CD-tools, scripttaal, automatiseringskaderontwerp, rapportagebehoeften, het vermogen om continue testbehoeften en competentie op te zetten om parallel aan de ontwikkeling testscripts te ontwikkelen.

Stel je voor dat je testautomatisering voor je bedrijf aan het uitzoeken bent, er zijn 4 actiepunten die je kunt overwegen:

  1. Zorg voor een intern of extern adviesbureau dat de doelen begrijpt en een plan heeft om ze te bereiken.
  2. Kies iemand die ervaring heeft met testautomatisering, maar meer met een brede expertise in softwareontwikkeling in het algemeen.
  3. Technisch vaardige kampioen – deze kampioenen hebben een duidelijke visie, verzamelen ervaringen uit meerdere bronnen en handhaven de juiste technische benadering, processen en richtlijnen die de kwaliteit aanzienlijk zullen verbeteren.
  4. Een juiste balans tussen handmatig en geautomatiseerd testen kan juist helpen om een beter rendement te behalen.

In de typische DevTestOps-cultuur zullen alle teams samenwerken om processen te stroomlijnen die de ingebouwde productkwaliteit bevorderen in overeenstemming met de cultuur.

Bekijk de video over “Testautomatisering: een raadsel dat blijft achtervolgen” door onze president, Vasudevan Swaminathan.

Aan de slag met QA met DevOps

Als u QA probeert te starten met DevOps in uw organisatie, maar niet weet hoe, kunt u een vliegende start maken door deze 3 statistieken te meten

Insluiting van defecten Log maximaal 95% defecten in QA, UAT & Productie
Teamproductiviteit Beperk de achterstand bij herwerken tot maximaal 10%
Doorlooptijd: Streef ernaar om elke dag code naar productie te pushen

Al deze activiteiten zijn opgezet voor continue integratie, continu testen, continue feedbackprocessen, helpen teams om sneller betere software te bouwen en maken de reis van DevOps de moeite waard.

DevOps-teststrategie

Het genereren van een optimale DevOps-teststrategie vereist een gedetailleerde beoordeling van de software en een mix van andere elementen om een gestroomlijnde teststructuur te plannen.

Laten we eens kijken naar de aandachtsgebieden voor een succesvolle DevOps-teststrategie .

Automatiseer gebruikersgedrag, geen tests

Men moet ernaar streven om met behulp van geautomatiseerde tests defecten in de productie te voorkomen. Een manier om dit te bereiken en defecten eerder in te dammen, is door automatiseringskaders in te zetten en deze te combineren met een Test-Driven Development (TDD) /Behavior Driven Development (BDD), die zich richt op het automatiseren van gebruikersgedrag en niet alleen op tests. Het volgen van deze aanpak zorgt voor een grotere testbaarheid, maximale codedekking en actieve samenwerking tussen teams.

Voorbeeld van het automatiseren van gebruikersgedrag met augurk

Testomgeving optimaliseren

Naast het schrijven van de juiste automatiseringstestscripts, moeten we plannen om een testomgeving te optimaliseren die gebruikscondities, relevante testgegevens en het vermogen om te gaan met wisselende piektijden, productvereisten, enz. omvat, om in de gehele DevOps te passen. strategie.

Deze zullen helpen om kwaliteitsproblemen veel eerder in het proces te verminderen.

Analyseer kritische testgegevens

Het is duidelijk dat met het draaien van grote hoeveelheden testsuites, de hoeveelheid gegenereerde testgegevens ook enorm zal zijn. Het wordt zeer noodzakelijk om deze testgegevens te controleren en te analyseren om inzicht te krijgen in de kwaliteit van de software, de gezondheid van de CI-pijplijn te ontdekken en testafwijkingen te identificeren die de continue tests helpen ondersteunen bij het vrijgeven van de software.

Meet continu

Om te begrijpen waar we staan in DevOps-volwassenheid, moeten we continu KPI’s meten die bijdragen aan de kwaliteit van de software,

Een paar van hen omvatten,

  • Identificeer defecten per fase, fase, oorzaak, functionaliteit en trend
  • Percentage defecten ontsnapt naar productie
  • Lokaliseer handmatige vs. geautomatiseerde testfouten
  • Traceer schilferige testtrend

Best practices voor DevOps-testen

Hier zijn enkele algemene best practices voor het implementeren van een efficiënt testproces in de DevOps-structuur

Slimme automatisering

We hebben al uitgebreid ingegaan op het belang van automatisering in DevOps ; dit betekent echter niet dat automatisch testen alleen elke keer kan helpen. De sleutel tot succesvolle automatisering is om eerst geautomatiseerde tests te vinden.

Er zijn maar weinig tests zoals bruikbaarheid, tests na implementatie zijn beter af wanneer ze handmatig worden getest.

Agile iteratie

Focus op snelle en snelle iteraties binnen elk team leidt tot ons doel van continue levering. Een opeenvolging van kleinere en flexibele ontwikkelingen stelt teams in staat grondig te testen en te streven naar snellere implementaties. Deze iteraties geven inzicht in de wijzigingen die worden aangebracht en de mogelijkheid om ervoor te zorgen dat implementaties vaker en eerder plaatsvinden.

DevOps-statistieken en documentatie

Zoals de naam al doet vermoeden, draait DevOps om samenwerking tussen teams. Als we ermee aan de slag gaan, moeten er duidelijke en gedefinieerde statistieken en documentatie zijn. Het geeft informatie over de processen en veranderingen die plaatsvinden in het systeem.

Bovendien dwingt het transparantie af en zonder de juiste documentatie is het erg moeilijk om te beoordelen en te begrijpen wat wel en niet in uw DevOps-structuur heeft gewerkt. Ook vormt het een basis om besluitvorming voor de toekomst mogelijk te maken.

DevOps-testtools

Omdat DevOps bovenop de agile is gebouwd, gericht op de gebruikelijke levenscyclus van softwaretests en niet op een out-of-the-box-testen, kunnen tools die voor het gebruikelijke testproces worden gebruikt, ook worden gebruikt voor testen in DevOps.

Hier zijn enkele van de veelgebruikte testtools,

  • Selenium
  • Jenkins
  • Appium
  • Komkommer
  • TestNG
  • Maven
  • Appium
  • Bamboe

Laatste gedachten

Hoewel er een overvloed aan bronnen beschikbaar is om u te begeleiden bij het testen in DevOps , hangt een succesvolle implementatie en het benutten van de volledige voordelen van DevOps af van de testvolwassenheid van de organisatie en van haar externe advies-/testpartner, aangezien er geen one size fits all is.

Gerelateerd lezen/kijken:

Keerthi Veerappan

An INFJ personality wielding brevity in speech and writing. Marketer @ Zucisystems.