Continu testen in DevOps

Wat is continu testen?

Continu testen in DevOps is een softwaretesttype waarbij de software in elke fase van de levenscyclus van softwareontwikkeling wordt getest. Het doel van continu testen is het evalueren van de kwaliteit van software bij elke stap van het continue leveringsproces door vroeg en vaak te testen.

Bij het continue testproces in DevOps zijn belanghebbenden betrokken, zoals de ontwikkelaar, DevOps, QA en het operationele systeem.

Hoe is continu testen anders?

Continu testen

Continu testen

De oude manier van testen was hand-off-centrisch. De software werd van het ene team naar het andere overgedragen. Een project zou duidelijke ontwikkelings- en kwaliteitsfasen hebben. QA-teams wilden altijd meer tijd om de kwaliteit te waarborgen. Het doel was dat de kwaliteit prevaleert boven de projectplanning.

Het bedrijfsleven wil echter een snellere levering van software aan de eindgebruiker. Hoe nieuwer de software is, hoe beter deze op de markt kan worden gebracht en het omzetpotentieel van het bedrijf kan vergroten. Daarom werd een nieuwe manier van testen ontwikkeld.

Continu betekent ononderbroken testen op continue basis. In een Continu DevOps-proces gaat een softwarewijziging (release candidate) continu van Ontwikkeling naar Testen naar Implementatie.

Continu DevOps-proces

Continu DevOps-proces

De code wordt continu ontwikkeld, opgeleverd, getest en ingezet.

Wanneer een ontwikkelaar bijvoorbeeld de code in de broncodeserver controleert, zoals Jenkins, worden er in het continue proces een geautomatiseerde set unit-tests uitgevoerd. Als de tests mislukken, wordt de build afgewezen en wordt de ontwikkelaar hiervan op de hoogte gesteld. Als de build de test doorstaat, wordt deze geïmplementeerd op prestatie- en QA-servers voor uitgebreide functionele en belastingstests. De tests worden parallel uitgevoerd. Als de tests slagen, wordt de software in productie genomen.

Continu testen is een klein radertje in de cyclus van continue ontwikkeling, integratie en implementatie.

Huidige teststapel

Huidige teststapel

Softwareontwikkeling is niet meer hetzelfde als in het verleden, we brachten de ontwikkeling terug van maanden naar weken. De huidige teststapel (zie figuur hierboven) heeft de titel UI-testen. Maar het doel is om steeds meer geautomatiseerde unit-tests te hebben.

Hoe verschilt continu testen van testautomatisering?

Testautomatisering versus continu testen

Parameter Test automatisering Continu testen
Definitie Testautomatisering is een proces waarbij tool of software wordt gebruikt voor het automatiseren van taken. Het is een softwaretestmethodologie die zich richt op het bereiken van continue kwaliteit en verbetering.
Doel Een reeks vergelijkbare of repetitieve taken die een machine sneller kan uitvoeren, met minder fouten. Het continue testproces helpt de risico's te vinden, aan te pakken en de kwaliteit van het product te verbeteren.
Eerste vereiste Automatisering bij het testen mogelijk zonder continu testen te integreren. Continu testen is niet mogelijk zonder testautomatisering.
Tijd Het vrijgeven van software kan een maand tot jaren duren. Software-releases kunnen wekelijks tot elk uur worden uitgebracht.
Feedback Regelmatige feedback na het testen van elke release. Feedback in elke fase moet onmiddellijk zijn.
Geschiedenis Geautomatiseerd testen wordt al tientallen jaren gedaan om het testproces sneller te maken. Continu testen is een relatief nieuwer concept.

Hoe u continu testen kunt uitvoeren

  • Gebruik van tools om een ​​testautomatiseringssuite te genereren op basis van gebruikersverhalen/vereisten
  • Testomgeving creëren.
  • Kopieer en anonimiseer productiegegevens om een ​​testdatabed te creëren
  • Gebruik servicevirtualisatie om de API te testen
  • Parallelle prestatietests

Continue testhulpmiddelen

Hier is een samengestelde lijst met de beste Continue testhulpmiddelen :

1) QuerySurge

QuerySurge is de slimme oplossing voor het testen van gegevens en de eerste volledige DevOps-oplossing in zijn soort voor het continu testen van gegevens. De belangrijkste kenmerken zijn onder meer een robuuste API met meer dan 60 oproepen, gedetailleerde data-intelligentie en data-analyse, naadloze integratie in de DevOps-pijplijn voor continu testen en het snel verifiëren van grote hoeveelheden gegevens.

Begin gratis met testen

2) Jenkins

Jenkins is een Continuous Integration-tool die is geschreven met behulp van Java-taal. Deze tool kan worden geconfigureerd via GUI-interface of console-opdrachten.

Download link: https://jenkins.io/

3) Travis

Travis is een continue testtool die wordt gehost op GitHub. Het biedt gehoste en lokale varianten. Het biedt een verscheidenheid aan verschillende talen en goede documentatie.

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

4) Selenium

Selenium is een open source softwaretesttool. Het ondersteunt alle toonaangevende browsers zoals Firefox, Chrome, IE en Safari. Selenium WebDriver wordt gebruikt om het testen van webapplicaties te automatiseren.

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

Voordelen van continu testen

  • Versnel de levering van software
  • Continu testen verbetert de codekwaliteit
  • Het helpt bij het beoordelen van de exacte dekking van bedrijfsrisico's.
  • Het kan naadloos worden geïntegreerd in het DevOps-proces
  • Helpt bij het creëren van een flexibel en betrouwbaar proces in slechts enkele uren in plaats van maanden.
  • Versnelt de time-to-market met een continu feedbackmechanisme.
  • Voegt traditioneel gescheiden teams samen om te voldoen aan de behoeften van moderne ondernemingen. Lost de kloof op tussen ontwikkelings-, test- en operationele teams.
  • Testautomatisering helpt consistentie te bereiken door voor alle relevante tests dezelfde configuratie te behouden.
  • Benadrukt zakelijke verwachtingen om bedrijfsrisico's te beperken
  • Biedt alomtegenwoordige toegang tot de testomgeving met servicevirtualisatie

Uitdagingen van continu testen

  • Het traditionele proces beperkt de culturele verschuiving onder professionals op het gebied van ontwikkeling en kwaliteitsborging.
  • Gebrek aan DevOps-vaardigheden en de juiste tools voor testen in Agile- en DevOps-omgevingen.
  • Heterogene testomgevingen die nooit de productieomgeving zullen weerspiegelen.
  • Conventioneel testproces en losjes gedefinieerd testgegevensbeheer.
  • Langere code-integratiecycli zorgen voor integratieproblemen en late oplossingen van defecten
  • Onvoldoende en ineffectieve middelen en testomgevingen
  • complex toepassing architectuur en bedrijfslogica die de adoptie van DevOps beperken.

Conclusie:

  • Bij Software Engineering is continu testen een proces van vroeg testen, vaak testen, overal testen en automatiseren.
  • De oude manier van testen was gebaseerd op overdracht. De software wordt van het ene team naar het andere overgedragen
  • Jenkins, Travis en Selenium zijn populaire continue tests en Integratiehulpmiddelen.
  • Continu testen levert bruikbare feedback op voor elke fase van de leveringspijplijn.
  • Continu testen helpt de codekwaliteit te verbeteren
  • Het traditionele proces beperkt de culturele verschuiving onder professionals op het gebied van ontwikkeling en kwaliteitsborging.
  • Langere code-integratiecycli zorgen voor integratieproblemen en late oplossingen van defecten