Wat is continu testen in DevOps? Definitie, voordelen, hulpmiddelen

Inhoudsopgave:

Anonim

Continu testen

Continu testen in DevOps is een type softwaretest 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 vroegtijdig te testen en vaak te testen.

Bij het Continuous Testing-proces in DevOps zijn belanghebbenden betrokken zoals Developer, DevOps, QA en Operationeel systeem.

In deze tutorial leer je

  • Wat is continu testen?
  • Waarin verschilt continu testen?
  • Waarin verschilt continu testen van testautomatisering?
  • Hoe continu testen uit te voeren
  • Tools voor continu testen
  • Voordelen van continu testen
  • Uitdagingen van continu testen

Waarin verschilt continu testen?

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

Bedrijven willen 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 inkomstenpotentieel van het bedrijf vergroot. Daarom is er een nieuwe manier van testen ontwikkeld.

Continu betekent ononderbroken testen die op continue basis worden uitgevoerd. In een continu DevOps-proces beweegt een softwarewijziging (releasekandidaat) continu van ontwikkeling naar testen naar implementatie.

De code wordt continu ontwikkeld, geleverd, getest en geïmplementeerd.

Wanneer een ontwikkelaar bijvoorbeeld de code in de broncodeserver controleert, zoals Jenkins, worden geautomatiseerde eenheidstests uitgevoerd in het continue proces. Als de tests mislukken, wordt de build geweigerd en wordt de ontwikkelaar hiervan op de hoogte gesteld. Als de build de test doorstaat, wordt deze ingezet voor prestatie-, 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 continue ontwikkeling, integratie en implementatiecyclus.

Softwareontwikkeling is niet hetzelfde als in het verleden, we hebben de ontwikkeling van maand naar weken teruggebracht. De huidige teststack (zie bovenstaande afbeelding) is getiteld in de richting van UI-testen. Maar het doel is om steeds meer geautomatiseerde unit-tests te hebben.

Waarin 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 machine kan een reeks vergelijkbare of repetitieve taken sneller en met minder fouten uitvoeren. Het continue testproces helpt om het risico te vinden, aan te pakken en de kwaliteit van het product te verbeteren.
Voorwaarde Automatisering bij testen mogelijk zonder continue testen te integreren. Continu testen kan niet worden geïmplementeerd zonder testautomatisering.
Tijd Het vrijgeven van software kan een maand tot jaren duren. Softwareversie kan wekelijks tot elk uur worden uitgebracht.
Feedback Regelmatige feedback na het testen van elke release. Feedback in elke fase moet direct zijn.
Geschiedenis Geautomatiseerd testen wordt al decennia lang gedaan om het testproces sneller te laten verlopen. Continu testen is een relatief nieuw concept.

Hoe continu testen uit te voeren

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

Hulpmiddelen voor continu testen

Hier is een samengestelde lijst met de beste tools voor continu testen :

1) QuerySurge

QuerySurge is de slimme oplossing voor het testen van gegevens die de eerste in zijn soort volledige DevOps-oplossing is voor het continu testen van gegevens. De belangrijkste functies zijn onder meer een robuuste API met meer dan 60 oproepen, gedetailleerde gegevensintelligentie en gegevensanalyse, naadloze integratie in de DevOps-pijplijn voor continu testen en snelle verificatie van grote hoeveelheden gegevens.

Begin gratis met testen

2) Jenkins

Jenkins is een tool voor continue integratie die is geschreven in Java. Deze tool kan worden geconfigureerd via GUI-interface of console-opdrachten.

Downloadlink: https://jenkins.io/

3) Travis

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

Downloadlink: 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.

Downloadlink: https://www.seleniumhq.org/

Voordelen van continu testen

  • Versnel de levering van software
  • Continu testen verbetert de codekwaliteit
  • Het helpt om de exacte dekking van bedrijfsrisico's te beoordelen.
  • Het integreert naadloos in DevOps Process
  • 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.
  • Combineert traditioneel gescheiden teams om te voldoen aan de behoeften van moderne ondernemingen. Lost de scheiding op tussen ontwikkelingsteams, testteams en operationele teams.
  • Testautomatisering helpt om consistentie te bereiken door dezelfde configuratie te behouden voor alle relevante tests.
  • Benadrukt zakelijke verwachtingen om zakelijke risico's te verminderen
  • Biedt alomtegenwoordige toegang tot testomgevingen met servicevirtualisatie

Uitdagingen van continu testen

  • Het traditionele proces beperkt de culturele verschuiving onder Development & QA-professionals.
  • Gebrek aan DevOps-vaardigheden en juiste tools voor testen in Agile & DevOps-omgevingen.
  • Heterogene testomgevingen die nooit de productieomgeving zullen weerspiegelen.
  • Conventioneel testproces en losjes gedefinieerd testdatamanagement.
  • Langere cycli voor code-integratie zorgen voor integratieproblemen en late foutoplossingen
  • Onvoldoende en ineffectieve middelen en testomgevingen
  • Complexe applicatiearchitectuur en bedrijfslogica die de acceptatie van DevOps beperken.

Gevolgtrekking:

  • In Software Engineering is continu testen een proces van vroeg testen, vaak testen, overal testen en automatiseren.
  • De oude manier van testen was gericht op overdracht. De software wordt van het ene team naar het andere overgedragen
  • Jenkins, Travis en Selenium zijn populaire tools voor continu testen en integratie.
  • 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 cycli voor code-integratie zorgen voor integratieproblemen en late foutoplossingen