Kontinuerlig testing
Kontinuerlig testing i DevOps er en programvaretestetype som involverer testing av programvaren på hvert trinn av livssyklusen for programvareutvikling. Målet med kontinuerlig testing er å evaluere kvaliteten på programvaren ved hvert trinn i den kontinuerlige leveringsprosessen ved å teste tidlig og teste ofte.
Den kontinuerlige testprosessen i DevOps involverer interessenter som Developer, DevOps, QA og Operational system.
I denne veiledningen vil du lære
- Hva er kontinuerlig testing?
- Hvordan er kontinuerlig testing annerledes?
- Hvordan er kontinuerlig testing forskjellig fra testautomatisering?
- Hvordan gjøre kontinuerlig testing
- Kontinuerlige testverktøy
- Fordeler med kontinuerlig testing
- Utfordringer ved kontinuerlig testing
Hvordan er kontinuerlig testing annerledes?
Den gamle måten å teste på var håndsentrert. Programvaren ble overlevert fra ett lag til et annet. Et prosjekt vil ha bestemte utviklings- og kvalitetsfaser. QA-team ønsket alltid mer tid for å sikre kvalitet. Målet var at kvaliteten skulle gå foran prosjektplanen.
Imidlertid ønsker virksomheten raskere levering av programvare til sluttbrukeren. Jo nyere programvaren er, jo bedre kan den markedsføres og øke selskapets inntektspotensial. Derfor ble det utviklet en ny måte å teste på.
Kontinuerlig betyr uforstyrret testing utført kontinuerlig. I en kontinuerlig DevOps-prosess går en programvareendring (utgivelseskandidat) kontinuerlig fra utvikling til testing til distribusjon.
Koden utvikles kontinuerlig, leveres, testes og distribueres.
For eksempel, når en utvikler sjekker koden i kildekodeserveren som Jenkins, utføres automatiske sett med enhetstester i den kontinuerlige prosessen. Hvis testene mislykkes, avvises bygningen, og utvikleren varsles. Hvis bygningen består testen, distribueres den til ytelses-, QA-servere for uttømmende funksjonelle og belastningstester. Testene kjøres parallelt. Hvis testene består, blir programvaren distribuert i produksjon.
Kontinuerlig testing er en liten tannhjul i kontinuerlig utvikling, integrering og distribusjonssyklus.
Programvareutvikling er ikke det samme som tidligere, vi kuttet utviklingen fra måned til uke. Den nåværende teststabelen (se figur over) har tittelen mot UI-testing. Men målet er å ha flere og flere automatiserte enhetstester.
Hvordan er kontinuerlig testing forskjellig fra testautomatisering?
Testautomatisering vs kontinuerlig testing
Parameter | Test automatisering | Kontinuerlig testing |
---|---|---|
Definisjon | Testautomatisering er en prosess der verktøy eller programvare brukes til å automatisere oppgaver. | Det er en programvaretestmetodikk som fokuserer på å oppnå kontinuerlig kvalitet og forbedring. |
Hensikt | Et sett med lignende eller repeterende oppgaver, kan en maskin utføre, raskere, med færre feil. | Den kontinuerlige testprosessen bidrar til å finne risikoen, adressere dem og forbedre kvaliteten på produktet. |
Forutsetning | Automatisering i testing mulig uten integrering av kontinuerlig testing. | Kontinuerlig testing kan ikke implementeres uten testautomatisering. |
Tid | Programvareutgivelse kan ta en måned til år. | Programvareutgivelse kan utgis ukentlig til time. |
Tilbakemelding | Regelmessig tilbakemelding etter testing av hver utgivelse. | Tilbakemelding på hvert trinn må være øyeblikkelig. |
Historie | Automatisert testing har blitt gjort i flere tiår for å gjøre testprosessen raskere. | Kontinuerlig testing er et relativt nyere konsept. |
Hvordan gjøre kontinuerlig testing
- Bruke til verktøy for å generere testautomatiseringspakke fra brukerhistorier / krav
- Lag testmiljø.
- Kopier og anonymiser produksjonsdata for å lage testdata
- Bruk tjenestevirtualisering til å teste API
- Parallell ytelsestesting
Kontinuerlige testverktøy
Her er en kuratert liste over de beste kontinuerlige testverktøyene :
1) QuerySurge
QuerySurge er den smarte datatestløsningen som er den første av sitt slag fullstendige DevOps-løsning for kontinuerlig datatesting. Viktige funksjoner inkluderer Robust API med over 60 samtaler, detaljert dataintelligens og dataanalyse, sømløs integrering i DevOps-rørledningen for kontinuerlig testing, og verifiserer store datamengder raskt.
Begynn å teste gratis
2) Jenkins
Jenkins er et kontinuerlig integrasjonsverktøy som er skrevet ved hjelp av Java-språk. Dette verktøyet kan konfigureres via GUI-grensesnitt eller konsollkommandoer.
Last ned lenke: https://jenkins.io/
3) Travis
Travis er kontinuerlig testverktøy vert på GitHub. Det tilbyr varianter og lokale varianter. Det gir en rekke forskjellige språk og en god dokumentasjon.
Last ned lenke: https://travis-ci.org/
4) Selen
Selen er programvare for testing av åpen kildekode. Den støtter alle de ledende nettleserne som Firefox, Chrome, IE og Safari. Selenium WebDriver brukes til å automatisere testing av webapplikasjoner.
Last ned lenke: https://www.seleniumhq.org/
Fordeler med kontinuerlig testing
- Akselerere levering av programvare
- Kontinuerlig testing forbedrer kodekvaliteten
- Det hjelper til med å vurdere nøyaktig forretningsdekning.
- Den integreres sømløst i DevOps-prosessen
- Hjelper med å skape en smidig og pålitelig prosess på få timer i stedet for måneder.
- Fremskynder time-to-market med en kontinuerlig tilbakemeldingsmekanisme.
- Fusjonerer tradisjonelt lagt team for å møte moderne bedriftsbehov. Løser opp koblingen mellom utvikling, testing og driftsteam.
- Testautomatisering bidrar til å oppnå konsistens ved å opprettholde den samme konfigurasjonen for alle relevante tester.
- Understreker forretningsforventningene for å redusere forretningsrisikoen
- Tilbyr allestedsnærværende testmiljøtilgang med Service Virtualization
Utfordringer ved kontinuerlig testing
- Den tradisjonelle prosessen begrenser kulturskiftet blant fagpersoner innen utvikling og kvalitetssikring.
- Mangel på DevOps-ferdigheter og riktige verktøy for testing i Agile & DevOps-miljøer.
- Heterogene testmiljøer som aldri vil gjenspeile produksjonsmiljøet.
- Konvensjonell testprosess og løst definert administrasjon av testdata.
- Lengre kodeintegrasjonssykluser skaper integrasjonsproblemer og sene feilrettinger
- Utilstrekkelige og ineffektive ressurser og testmiljøer
- Kompleks applikasjonsarkitektur og forretningslogikk som begrenser bruk av DevOps.
Konklusjon:
- I programvareteknikk er kontinuerlig testing en prosess med å teste tidlig, teste ofte, teste overalt og automatisere.
- Den gamle måten å teste på var en handoff-sentrisk. Programvaren overleveres fra ett team til et annet
- Jenkins, Travis og Selenium er populære verktøy for kontinuerlig testing og integrering.
- Kontinuerlig testing gir handlekraftig tilbakemelding i henhold til hvert trinn i leveringsrørledningen.
- Kontinuerlig testing bidrar til å forbedre kodekvaliteten
- Den tradisjonelle prosessen begrenser kulturskiftet blant fagpersoner innen utvikling og kvalitetssikring.
- Lengre kodeintegrasjonssykluser skaper integrasjonsproblemer og sene feilrettinger