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 Continuous Testing-proces in DevOps zijn belanghebbenden betrokken zoals Developer, DevOps, QA en Operationeel systeem.
Hoe is continu testen anders?

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.
De code wordt voortdurend ontwikkeld, geleverd, getest en geïmplementeerd.
Bijvoorbeeld, wanneer een ontwikkelaar de code controleert in de Source Code Server, zoals Jenkins, worden geautomatiseerde sets van unittests uitgevoerd in het continue proces. Als de tests mislukken, wordt de build afgewezen en wordt de ontwikkelaar op de hoogte gesteld. Als de build de test doorstaat, wordt deze geïmplementeerd op prestatie-, QA-servers voor uitgebreide functionele en belastingstests. De tests worden parallel uitgevoerd. Als de tests slagen, wordt de software geïmplementeerd in productie.
Continu testen is een klein radertje in de cyclus van continue ontwikkeling, integratie en implementatie.
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.
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 Development & QA-professionals.
- 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
- Complexe applicatiearchitectuur en bedrijfslogica die de acceptatie 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 populair Continu testen 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 Development & QA-professionals.
- Langere code-integratiecycli zorgen voor integratieproblemen en late oplossingen van defecten