Java >> Java tutorial >  >> Tag >> implements

Hvordan implementerer professionel QA en robust CI/CD-pipeline?

De forældede konventionelle metoder til softwareudvikling overtog ikke de eskalerede markedstendenser, og disse metoder manglede løsninger til den øgede efterspørgsel efter hurtig softwareudgivelse, der introducerede "Continuous Integration (CI) and Continuous Delivery (CD)". Sammen med CI/CD skal du have den slags tekniske kapacitet, hvor udviklere tilpasser sig de forkortede leveringscyklusser og automatiseringsprocesser. For at holde trit med den accelererende forandring i testverdenen skal du også uddybe, udvide og skabe et stærkt netværk med andre kvalitetseksperter. Lettere sagt end gjort, jeg ved det! Jeg har ofte observeret den kamp, ​​der er involveret i implementering af en CI/CD-pipeline-udgivelsescykler, ukorrekt ressourcestyring, urealistiske ETA'er, tøven involveret i opgavestyring fra et QA-ledersynspunkt. Derfor har jeg til hensigt at tale om fremkomsten af ​​CI/CD-pipeline, fælles udfordringer og handlingsorienteret indsigt, som enhver QA bør følge, for at krydse hurtigt og sikkert gennem hver udgivelse ved hjælp af en CI/CD-pipeline.

Hvorfor CI/CD Pipeline blev et oplagt valg for et flertal af organisationer?

Før eller siden skiftede testere nu til kontinuerlig levering i projekter og organisationer. Holdene valgte CI/CD-pipeline for at drage fordel af de opfattede fordele ved en quick release build, som var ved at trykke på en knap. Virksomheder har brug for hurtigere feedback, som følge heraf væsentligt forbedret time to market. Dette førte til en stigning i verdensomspændende anvendelse af CI/CD-pipeline. I personlig erfaring efterlod CI/CD-pipeline en indflydelse på, hvordan jeg plejede at gribe min test an, da det hjalp mit team med at fremskynde lanceringen på markedet.

Mine udviklervenner havde ikke meget lyst til at teste tilgange, især de lange testfaser, der aldrig blev fundet at holde trit med leveringstempoet. Continuous Delivery ligger lige op til udviklernes gyde, når de får hurtig feedback på deres kode. I det øjeblik, de tjekker ind, får de signalet, hvis de ved en fejl introducerede en eller anden form for problemer i byggepipelinen, der omfatter forskellige testlag. Uden selv testautomatisering har du en tendens til at kende feedback fra live-brugere - en direkte forbindelse fra din kundebase. Udviklere forkrøbler aldrig med hurtig feedback og forbedrer dermed produktionen. Byg pipeline reducerer ventetiden, der forventes for integration og udgivelsestest. Det betyder, at alt sker på én gang:skriv kode – test lokalt – gennemgå – fletning – integration – og ind i testerens hænder. En af de centrale dele er testautomatisering, hvor en virksomhed kan fokusere på kontinuerlig integration og kontinuerlig levering af softwaren. Et enkelt klik kan lande den eksekverbare til et miljø, det vil sige lokalt, test eller produktion. Bedste praksis i CI/CD-pipeline kan levere produktet i høj kvalitet.

Betydningen af ​​CI/CD-pipeline blev tydelig med tidskrævende for agile, kanban og andre nyeste SDLC-tilgange. Men hvordan skal vi som professionel QA gå om at klare os selv i en CI/CD pipeline. Lad os finde ud af det.

Rationelle trin hver QA bør noteres for en vellykket CI/CD-pipeline

I CI/CD-pipelinen kunne en teknisk del være en fælde for testerne. Grundlæggende indebærer deres pligt mere end det:al opmærksomhed på krav, praksis, produkter og processer. Skal du begynde at arbejde i et kontinuerligt leveringsmiljø – overvej x 10 gange! Tænk på:

  • Om teamet er på vej i den rigtige retning?
  • Hvis alle forretningskrav er blevet omdannet til eksekverbare specifikationer?
  • Som QA-tester på hvilken måde du vil bidrage med hensyn til scenarier, acceptkriterier og eksempler.
  • Tror du, at allerede flydende processer har plads til forbedring? Er du i stand til at opdage affaldet og endelig fjerne det?
  • Din erfaring med ikke-funktionel test, ydeevne, tilgængelighed og sikkerhed osv.
  • Test på tværs af browsere for at sikre, at dine ændringer ser godt ud for den målgruppe, der ser din webapplikation fra forskellige browsere, browserversioner, enheder og operativsystemer.
  • Beregning af dit investeringsafkast på testautomatisering med Selenium til automatisk test på tværs af browsere.
  • Forskellen mellem test på tværs af browsere og responsiv test. Begge testpraksis misfortolkes ofte som en og den samme. Det er de dog ikke!
  • Versionskontrol, som er en hjørnesten i CI/CD-pipeline, gør det muligt for udviklere at samarbejde om en delt kodebase. Versionskontrol er et absolut must og en god ledsager til CD. Du har fortryd-funktionaliteten i versionskontrolsystemet betyder tilbagerulninger til den tidligere udgivelse. Derudover kan konfiguration, databaser, scripts, dokumentation spores gennem historien.
  • Der kræves data og konfiguration på tværs af alle iscenesættelsesmiljøer. Husk de 13 grunde til, at iscenesættelsesmiljøet fejler for din organisation.
  • Oprettelse af automatiserede stabile test på tværs af hele applikationen med testrammer og automatiserede værktøjer
  • En dyb indsigt:ingen kode eller funktion forbliver utestet, som kan falde yderligere i hastighed som følge heraf; holde dit team tilbage for at frigive softwaren til tider.
  • En god sporingsmekanisme til at vedligeholde effektiviteten af ​​regressionstestsuiten skitserer klart en proces og sikrer, at der kun føjes nyttige tests til testpakken, med et konsolideret overblik over alle kvalitetsaktiviteterne, mens du holder regressionsfejl i skak.
  • Automatisk kodebekræftelse, testsuiter og testmiljø giver øjeblikkelig feedback, og når du henvender dig til CI/CD-pipeline, løser det automatisk problemer som versionskontrol, eller når kodere skriver enhedstest, som det ofte er svært at omdanne til en arbejdsgang. At opretholde det ønskede niveau er nøglepunktet i kvalitetssikring. QA betyder inklusion af voksende ideer og langsigtet vedligeholdelse, og tre vigtige punkter, der kan bringes til overfladen, er:test, levering og optimering.
  • Hvordan andre QA-medlemmer ville skrive testpakker for at køre dem automatisk under hver efterfølgende build? Vedligeholdelse af dem i et CI-system gør testsuiterne mere organiserede og nemmere tilgængelige.
  • Du har brug for en kontinuerlig integrationsserver til at overvåge hovedlageret, hvor du skal køre de automatiske test for nyligt indsendte commits.
  • Specifikke roller for udviklere, der ville beskæftige sig med at flette ændringerne så ofte som muligt.
  • Udviklingslivscyklus starter med tjeklister eller spillebøger, der omfatter de opgaver, der tilfældigvis skal udføres manuelt. Senere kunne disse opgaver flyttes til automatisering med scripts og værktøjer. Med det sikrer du, at opgaver kan gentages, da et teammedlem kan køre scriptet, hvis tjeklisten skal køres igen. Desuden kører du playbook-scripts konsekvent mellem miljøer, du øger pålideligheden, ligesom et script til implementering af kode afspejler produktionsmiljøet.

QA begrænser sig ikke til de grundlæggende aspekter af hvorfor og hvordan man opretter en front-end-webstedtestplan, faktisk tilføjer det værdi til organisationen. Så meget som du har tendens til at optimere QA, jo større er chancerne for en hurtigere produktcyklus. Og med hurtige feedback-loops kan du overgå resultatet.

Grundig test spiller en vigtig og afgørende rolle for et softwareprodukts succes. Tænk altid to gange, tre gange om testcaserne for at automatisere, og for at få mest muligt ud af det, start så tidligt som muligt. Start fra dag et gradvist opbygge din automatiserede suite, der kan opdage fejl til en meget billigere pris, i stedet for at du finder de samme problemer i senere faser af din cyklus. Det er meget mere problem at klemme testen ind til sidst, så bliv ved med at finde ud af følgende:

  • Hvor ofte vil du gentage scenariet?
  • Længden af ​​processen.
  • Skriv alle de tilbagevendende testsager, der bliver udført for flere builds.
  • Tjek de involverede personer og ressourceafhængigheder og eventuelle mangler eller forsinkelser, der kan forårsage på grund af dem.
  • Hvis du springer over automatiseringen hvor som helst, skal du sikre dig, at det ikke viser sig at være en fejlbehæftet proces.

De mest almindelige udfordringer for hver CI/CD-pipeline

  • Udviklere bruger 20-40 % af dedikeret tid til fejlretning. Det betyder, at at bruge en stigende procentdel på fejlfinding af software i stedet for at bygge nye funktioner resulterer i omvendte resultater og dermed tab af produktivitet, ukontrollerede udgifter og medarbejderafgang.
  • Selv den mest grundige test-, iscenesættelses- og QA-proces kunne tillade glidefejl gennem sprækkerne, så vær altid klar til at møde uventede eller forstyrrelser og ofte bryde koden i CI/CD-pipeline.
  • Ingeniørteams står over for udfordringerne, selv efter at koden er implementeret, da cyklussen bliver mere ukontrolleret, når du ikke tilføjer automatisering til din overvågningsproces. Forældede produktionsovervågningspraksis standser ofte en CI/CD-proces, og en informeret produktionsfejlhåndteringsstrategi bør på plads for at mindske de tilknyttede risici.
  • Fejltilbøjelige opgaver, der løses ad gangen, kunne forhindre nok tab af energi, som f.eks. at en smertefuld opgave kan forbruge mere end 20 minutter og ganges med 5 gange i en uge, vil sammensættes til 100 smertefulde minutter. Så for en sund dosis skal du løse opgaven og optimere i den indledende fase og dermed helt undgå en smertefuld tid. På denne front skal du gøre den sværeste del først, som vil yderligere analysere og identificere svagheder i den organisatoriske proces. Den udskudte opgave er en indikator for et forbedringsområde, så et team bør forfølge eller holde dem på forkant for at løse det tidligst.
  • Webstedvirksomhed har intet at gøre, hvis en app udelukkende arbejder på en udviklers maskine. Det overordnede forretningsmål og empati bør være det centrale ansvar for hvert teammedlem. CI/CD-pipeline er udelukkende beregnet til at sende kodeændringer til webstedet for en slutbrugers bekvemmelighed. Så når du er "færdig", skal du sikre dig, at hele teamets ansvar og bidrag er fuldstændigt.

Handlingsbar indsigt for hver QA for at implementere en robust CI/CD-pipeline

Bortset fra den rationelle tankeproces er du som professionel QA ansvarlig for hvert minuts ændring, der finder sted i produktionsmiljøet. Slapning af på enhver frigivelsescyklus kan føre til en strøm af udfald. Derfor bliver det bydende nødvendigt at føre en tjekliste over alle de handlingsrettede indsigter, man skal tage sig af for at sikre en vellykket CI/CD-pipeline.

Test automatisering med selen til automatisk test på tværs af browsere

Dit websted er identiteten af ​​din virksomhed på internettet, og det ville være forfærdeligt, hvis det begynder at se mærkeligt ud på nogle browsere og enheder efter dine seneste kodeændringer i produktionen gennem CI/CD-pipeline. Test på tværs af browsere er en proces til at måle, hvor godt et websted ville klare sig i forhold til forskellige gengivelsesmotorer af forskellige browsere og browserversioner.
Testautomatisering med Selenium kan hjælpe med at sætte farten op i dine ting meget hurtigere, hvilket resulterer i den hurtigere lancering på markedet ved hjælp af parallel test i Selenium.

Udforskende og automatiseringstest

Vores faste læsere ville vide, at vores hovedvægt ligger i evnen til at teste med hastigheden. Ved at opretholde kvaliteten og hvilken værdi en QA har for hver CI/CD-pipeline, vil jeg dele med dig oplevelsen af, hvordan vi fokuserede på testprogrammerne for at justere med CI og agile tilgange til udvikling. Udforskende test er afgørende for en vellykket CI/CD-pipeline, og du kan blande den med automatisering for også at skabe vækst i test og forretning. Lær mere fra Exploratory Testing:Det handler om opdagelse!

Alle facetter af virksomheden i QA skal fastlægges, når du begynder at integrere QA i processen. Når du har vidst, hvad der skal automatiseres, så gå efter det og automatiser. Funktionel test kan ikke sidde på et automatiseret teststed, fordi du ikke ved, hvad du kan programmere næste gang. I den type scenarie blandede vi det med automatisk testoprettelse afhængigt af de udforskende fejl. Nu er bygningen filtreret efter den funktionelle udforskende test til automatisering af test af resterende fejl. Dine kognitive færdigheder i funktionel udforskende test bringer dig til et punkt, hvor du begynder at samle alle funktionerne for at teste og forvandle QA til en gatekeeper til frigivelse. Udviklere begynder at frigive buildet til CI/CD-servere for QA-afdelingen, som udfører testen før udgivelse ved hjælp af en robust CI/CD-pipeline.

Funktions- og brugergrænsefladetest

Funktionel test og UI-test gentages begge mindst én gang om dagen og kræver 2-3 timer for en mellemstor applikation. I tilfælde af testautomatisering med Selenium er det ikke nødvendigt at opdatere automatiseringsscriptet ofte, men brugergrænsefladen bliver ofte ændret, og kræver derfor hyppige scriptændringer. Begge afhænger af flere afhængigheder, og begge er tilbøjelige til at fejle, og når vi skal beslutte, hvilken der skal prioriteres, vil jeg sige, at bringe funktionel test før UI-test, der udnytter ressourcerne bedst muligt.

Automatisk regressionstest

Regressionstest bruges, når en udvikler foretager ændringer i funktionalitet eller reparerer en fejl. CI-systemet fungerer som et QA-værktøj til automatiserede regressionstestsuiter for langvarige produkter, og fungerer godt for agil udvikling, hvor teams formodes at implementere et produkt mindst ugentligt og har kortere deadlines for at imødekomme manuel regressionstest. En anden fordel er, at du kan bruge infrastrukturen til dine fremtidige produkter og dermed accelerere testautomatisering. CI tilføjer automatisk nye testtilfælde, når en ny defekt er fundet. CI bygger på sig selv en væsentlig regressionstestsuite, der kører automatisk mod den nye kode.

Tilpasning af agile testere og udviklere

Jeg tror på, at det altid vil være uheldigt, hvis kvaliteten bliver fremstillet som en eftertanke, hvilket betyder, at du først understreger kravene og derefter designer, koder og til sidst skifter gearet mod kvalitet og siger:"lad os bringe nogle testere". Test eller hele kvaliteten er absolut et vigtigt aspekt, når du skal sende dine produkter så tidligt som om en uge eller måned. Agile metoder nedbryder softwareudviklingen i brugerhistorier (mindre opgaver). Dette resulterer i hurtigere feedback og lancering på markedet. Hjælper dig med at udvikle bedre web-apps, hurtigere. Med CI/CD pipeline kan du validere din web-applikation på en hyppigere basis. Men automatisering af alle facetter af opbygning, integration, test og implementering af software mindsker risici. Og hvis du ser det i sammenhæng med Agile vs Waterfall-metoden, efterlader Agile hurtigt vandfaldsmetodologien ved at understøtte en proces, hvor kravene forventes at ændre sig og udvikle sig ofte. Mens man udvikler hjemmesider med hyppige eftersyn, holder trit med teknologilandskab, kundekrav, imødekommer agile udviklernes behov med valget af effektive automatiseringsprocesser. Tjek vores læsning om "Hvad jeg lærte, mens jeg gik fra vandfald til agile test?"

Begynd ikke at teste automatisering med selen, hvis du er uden anelse!

Selvfølgelig er der fordele ved at teste automatisering med Selenium. Uden en strategi kan du dog ende med at bruge en kompleks kode til en simpel kodetest. Det er vigtigt at analysere, hvordan forskellige dele kan automatiseres. Et automatiseringsinitiativ skal ikke overses, men strategien skal hjælpe os med at nå vores mål. Jeg anbefalede altid isolerede enhedstest, som understøttes af alle sprog. Hurtigt kørende enhedstest øger konfidensniveauet og sikrer korrektheden af ​​koden på få sekunder. Hvis enhedstests mislykkes, er det ikke nødvendigt at gå videre. Bestået enhedstest betyder, at komponenterne fungerer godt, og at applikationen opbygges alt efter kundens forventninger. Ja, BDD er den bedste praksis til at skrive bedre automatiserede tests. Her er 8 praktiske indsigter til at skrive bedre automatiseringskode.

Valg af det rigtige automationstestværktøj baseret på dine projektkrav

Du kan se det udbredte marked for de automatiserede testværktøjer, og det vigtige er at vælge det rigtige testværktøj, der passer til dit overordnede krav:Det skal understøtte platform og teknologi som C#, Java eller .Net applikationer og bruge hvilke operativsystemer? Desuden skal du tage din beslutning baseret på, om du skal teste webapplikation eller mobilapplikation:Android eller iOS eller begge operativsystemet. For eksempel, hvis du ønsker at udføre automatiseret test på tværs af browsere, så er Selenium, som er en pålidelig open source, det første valg. Der er dog stadig nogle begrænsninger for det, hvis du vælger on-premise testautomatisering med Selenium. Du er begrænset til antallet af browsere, som du kan teste parallelt på ved hjælp af Selenium Grid. Også Selenium Grid til at køre 4-8 parallelle testsessioner ville kræve et meget solidt hardwarekrav. En optimal løsning til det ville blive betragtet som et cloud-baseret værktøj til test af kompatibilitet på tværs af browsere såsom LambdaTest.

LambdaTest tilbyder et Selenium Grid, som er kompatibelt med alle rammer og sprog, der understøtter Selenium. Du kommer til at udføre testautomatisering med Selenium on-cloud, i skala. Du får også integrationer til adskillige tredjeparts projektstyringsværktøjer, CI CD-værktøj, sammen med deres Chrome-udvidelse og deres WordPress-plugin.

LambdaTest tilbyder også Open Selenium API til at hjælpe dig med at udtrække dine testdetaljer, testrapporter af din testautomatisering Selenium-scriptudførelse fra LambdaTest-platformen til dit foretrukne system uden at logge ind på LambdaTest.

Inkorporer løbende test i din CI/CD-pipeline

Kontinuerlig test er en proces til at evaluere en E2E-evaluering af din web-app ved hjælp af et omfattende udvalg af automatiserede testsuiter. Det sikrer hurtig cirkulation omkring feedbacks og kommende spurter.

CI-systemer er ikke begrænset til enhedstest på kodeniveau og kan endda udføre integrationstest på indbyrdes afhængige platforme på én gang. Brug ikke integrationstest til at teste forretningslogik, det er det, enhedstest er til for. CI-system kører enhedstest meget hurtigt for hver bygning. Integrationstest tager meget længere tid at køre, mens enhedstests målretter mod grundlæggende korrekthed af koden. Enhedstest bør udrydde alle fejlene i forretningslogikken.

Inkorporer kontinuerlig test i din CI/CD-pipeline, og styrk dit QA-team med hurtigere evaluering ved hjælp af testautomatisering og feedback. Tjek vores læsere for at vide mere om implementering af kontinuerlig test i DevOps som en professionel.

Introducer fejlinjektionstestning for bedre testdækning af din CI/CD-rørledning

Som navnet antyder, er Fault Injection Testing, hvor du med vilje skubber fejl ind i din kode for at forbedre robustheden af ​​en web-applikation sammen med testdækningen. Introducer fejlinjektionstestning som en standarddel af en gennemgang, og når dine processer og praksis bliver modne, vil det sikre web-applikationens modstandsdygtighed. Det er faktisk en god praksis, når du er i stand til at analysere resultaterne af fejl eller fejl, der er infunderet på forhånd, før de vises i produktionen. Selvom du kan udføre fejlinjektionstestene manuelt, er der også værktøjer til rådighed til det.

Lad ikke svigtende tests være uden opsyn

Et vist niveau af disciplin er nødvendigt for at det hold, der stopper, kan springe enhver fejlende test over, og når du holder den midlertidig (dvs. smider SkipException) eller bruger et værktøj til at slå lyden fra, skal du indsætte den korrekte kommentar indtil videre og sikre, at den ikke forbliver uovervåget eller ignoreret lidt længere i konfigurationen. En enkelt build indeholder ikke mange ændringer, så en gennemgang af builden fra tid til anden kan finde testene. Faktisk hjælper gennemgang af builds med visse ændringer dig med at identificere enhver ødelagt test. Og CI/CD-pipelinen skal være stabil med en trunk, der fortæller dig, om en build er fejlet, enten ved meddelelse via e-mail eller IM. TeamCity tilbyder adskillige funktioner, og en af ​​dem fortæller dig - hvem der tager sig af en fejl i testen.

Husk på belastningssammenstød

CI/CD-pipeline inkorporerer test for at sikre, at den leverede build er stabil og fejlfri. Mens man overholder CI/CD-pipeline, er rapportering af problemer nøglefaktoren. En fuldstændig rapport giver detaljerne om, hvordan testene blev kørt, og hvis nogen fejlede, årsagen bag det. Har du nogensinde testet en webserver for ydeevne? Hvilket værktøj brugte du? Jeg vil regne med, at 60% chancer er, at det var JMeter. Dette værktøj simulerer virkelig brugeradfærd og giver sofistikerede rapporter.

Det bedste er, at Jmeter arbejder med selenium Grid for at kontrollere softwareydelsen under den multiple og samtidige brugertrafik. Maven, Jenkins og Selenium kan bruges sammen til at skabe gode ende-til-ende-rapporter, oprette APPDEX (Application Performance Index) og den dokumenterede adfærd af applikationen ved at trykke på browsere samtidigt. Jeg har inkluderet præstationstesten i foredraget, så du kan markere den siden begyndelsen for at undgå uventede belastningssammenstød.

Et meningsfuldt dashboard

Det er faktisk besværligt at teste tidligere og hurtigere uden automatisering. En af de store udfordringer for enhver CI/CD-pipeline ligger i samarbejdet mellem forskellige teams eller afdelinger som DevOps, QA, Security-team osv., der arbejder på at bringe en fælles web-applikation på markedet. Du ville kræve et sted eller rettere et dashboard, der er gennemsigtigt for alle og videresender meningsfuld og organiseret information. CI/CD-værktøjer som Jenkins, Git og Jira gør det muligt for teams at koordinere problemfrit, og et meningsfuldt dashboard, som blev tilpasset ved at vurdere, hvilke data alle ønsker vil have mest betydning for dit DevOps-projekt. Jeg vil anbefale at tilføje Feature-gadgets, der er konfigureret fra forskellige datakilder af DevOps-værktøjer, hjælper med at administrere din CI/CD-pipeline. En "Feature"-gadget nedbryder historierne og fortæller dig, hvilke historier der er færdige eller i gang endnu. En måde at bore dybere ned for at pleje adoptionen af ​​en DevOps-kultur. Forskellige medlemmer har forskellige prioriteter, så du skal udføre en progressiv vurdering, når du planlægger at designe et dashboard. Det er lidt vanskeligt at lave et nyttigt dashboard til CI/CD-pipeline, og når alle samtykker er vigtigt. Ikke desto mindre er det også afgørende!

For eksempel, hvis du udfører testautomatisering med Selenium ved hjælp af LambdaTest en testsky på tværs af browsere, får du et intuitivt dashboard, som viser testdetaljer omkring tidsstempler for testcase-udførelse, metadata, kommando-for-kommando-skærmbilleder, Selenium-logfiler, netværkslogfiler, kommandologfiler, videologfiler, som repræsenterer optagelse af din testudførelse og mere.

Gå efter en unik navnekonvention for at sikre en UI-resistent CI/CD-pipeline

Automatiserede værktøjer er ejendomsbaserede testværktøjer, der hjælper med at lokalisere og identificere et objekt. Afhængigt af placeringskoordinaterne kan værktøjet fejle, hvis det finder ændringen i kontroltekst eller placering. Brugergrænsefladen for enhver web-applikation er en konstant foranderlig del. Du vil have forskellige udviklere, der arbejder med forskellige krav, over tid. Nu vil du ikke have, at disse udviklere går videre uden at følge en standardnavnekonvention. Som et egenskabsbaseret testværktøj vil det ikke kunne lokalisere et objekt, hvis navngivningen er gentagen. Dette ville blive et besvær senere, da du skulle omdøbe de gamle navne for hele din webapplikation. Giv derfor unikke navne til dine kontroller, der sikrer, at automatiseret test ikke behøver ændringer i sig selv og er modstandsdygtig over for UI-ændringer.

Kontinuerlig implementering og kontinuerlig levering, kend forskellen!

Hvis bygningen implementeres umiddelbart efter en ændring i kodebasen, kan det være irriterende for brugerne. Nøglen til kontinuerlig levering er at holde kodebasen i deployerbar tilstand, og ikke at øve kontinuerlig implementering betyder ikke, at du ikke praktiserer kontinuerlig levering. Kontinuerlig levering er en lille byggecyklus, og at have korte spurter i cyklussen giver hurtigere turtider til at opdage fejl og dermed hurtig fixing af disse fejl. Samlet set giver det en stabil kodebase tidligt. Dette er en foretrukken metode, der giver teamet mulighed for at løse problemer med det samme, og ikke senere, når du planlægger at frigive kodebasen. Det giver total kontrol over produktudrulning, risikofaktorer og funktionalitet.

Brugeroplevelsestest

I test af brugeroplevelse indsamler du kvalitative og kvantitative data fra brugerne, og når din applikation er samlet, bliver testmål til brugeroplevelsen, som kan opnås ved at kombinere belastningstest og kompatibilitet på tværs af browsere eller mobilt testværktøj. End-to-end-testning er vigtig, og også unødvendig forlængelse af længden af ​​end-to-end-test skal undgås. Da det kan påvirke produktiviteten, hvis du bliver ved med at udføre flere test, skal du derfor holde fokus på rigtige og vigtige ting.

"Hvis du vil have et godt websted, er du nødt til at teste. Efter at du har arbejdet på et websted i blot et par uger, kan du ikke se det frisk længere. Du ved for meget. Den eneste måde at finde ud af, om det virkelig virker, er at teste det." – Steve Krug – Don’t Make Me Think

Røgtest

Røgtest overvåger systemet og verificerer, om de vigtigste funktioner eller kernefunktioner virker. Røgtesten giver dig mulighed for at udføre hurtige regressionstest af vigtige funktionaliteter, og afgøre, om produktet er klar til test for at forhindre yderligere spild af tid og ressourcer.

Automatiser levering og implementering

Automatisk genererede leverancer forbliver tilgængelige for et bredere publikum, og æren går til automatisering. Alfa- og betatestning kan flyttes til flere udviklingsstadier. Et CI/CD-pipeline-system muliggør automatiseret implementering med systemtest-implementeringsscripts, det hjælper med at sikre fravær af knæk, mens du flytter til andre miljøer.

Dokumentation er grundlaget for en robust CI/CD-pipeline

I automatiseret enhedstest kan kvaliteten af ​​kode beskyttes til at dokumentere standarder, og derved hjælpe med at forbedre kvaliteten af ​​næste løsninger. Automatiserede enhedstests kan også fungere som selvdokumenterende kode; vedligeholdelse af kode spiller en afgørende rolle i udviklingen af ​​software. Manglende dokumentation eller vanskeligheder med at forstå koden bør håndteres - da programmørerne kan være tilbageholdende eller ikke kan lide at skrive dokumentation. At have et dokument, der indeholder alle de oplysninger, koden gør, bør afbøde de unødvendige omkostninger til softwarevedligeholdelse.

Ubehandlede afbrydelser kan forårsage en testfejl

Platformsikkerhed, tilføjelse af failover-logik til rammen under de automatiserede tests, logning af enhver form for afbrydelse, alle disse kumulative indsatser kunne reducere eller undgå afbrydelser i vid udstrækning, hvilket fører til grundig validering ved hjælp af testautomatisering. Legitime fejl eller genforsøg kan også mislykkes i at håndtere afbrydelser, derfor er en mere sikker tilgang "ikke bestå testen" under disse forhold.

Ressourcestyring kan hjælpe dit krydstogt langt

Skrivning af automatiseret script bør tildeles en ekspert med omfattende erfaring med scriptsprog leveret af det automatiserede testværktøj. Modsat det, hvis man ikke er fortrolig med at skrive automatiserede testscripts, er den QA-ingeniør måske bedre til at skrive testcases og kan trækkes op, når der ikke er behov for indgående kendskab til scriptsprog. Når et automatiseret script er designet, kan du give en videnovergang til automatiseringstester, der er mindre erfarne, og gøre dem ansvarlige for den daglige evaluering gennem det script. I mellemtiden kunne den erfarne QA i dit team komme med flere ud af boksen testcases.

Kontinuerlig forbedring

CI/CD-pipelinen slutter ikke ved installationen. Feedback-sløjfen, der er hjertet af CD, indikerer en yderligere fase af overvågning af implementeringen. Fasen vil igen bruge de automatiserede værktøjer til at bestemme indvirkningen af ​​implementering på slutbrugeren. Du holder øje med en indlysende metrik som virksomhedsomsætning alene med nogle mere granulære målinger som engagementstid og brugerkonverteringsrater for at observere sammenhængen.

Alle teammedlemmer på samme side

Alle teammedlemmer bør informeres konsekvent, selvom de ikke sidder på din CI-server. Automatiseringsmeddelelser kan hente de utilgængelige teammedlemmer af QA i loop, hvilket hjælper med at holde højere kvalitet generelt. Stram feedback-loop forhindrer de uventede problemer, og når alle er på samme side, konverterer apps som Slack situationerne på en måde, så du nemt kan integrere opdateringer, og især hvis dit team har et stort antal daglige brugere.

Konklusion

I CI/CD-metoden bager du kvaliteten ind i hvert trin af CI/CD-pipeline. Især er den centrale feedback-loop af Continuous Delivery et sted for en konstant genundersøgelse for at sikre, at et kvalitetsprodukt bliver leveret til slutbrugerne. Automatiserede test gør det muligt at levere de nye funktioner med fejlfri kode og forventet kvalitet. Projektplanlægning for nye funktioner involverer overvejelser omkring analyser, automatiserede testinstrumenteringsopgaver og præstationsovervågning.

Hele organisationen har en vigtig rolle og bør forblive fokuseret og incitamenteret til at producere leverancerne med høj kvalitet. Produktchefernes rolle kommer, når de skal overvåge implementering og kvalitetssikring. Sikkerhedsteamet bør være opmærksom på udgivelsesprocessen. Og de vigtigste ansvarsområder for QA-teammedlemmer, der er involveret, når de tester udviklings- og iscenesættelsesmiljøer.

Alle funktionerne i QA-teamet skal være lige så strenge som ved produktion før den endelige udgivelse. Udviklere bør fokusere på produktionsudgivelse med en detaljeret undersøgelse. Til sidst skal du vælge klogt på det rigtige valg af automatiseringsværktøj. LambdaTest tilbyder 2000+ rigtige browsere sammen med integrationer til CI/CD-værktøjer såsom Jenkins, Travis CI og flere, for at hjælpe dig med at inkorporere kontinuerlig test i din CI/CD-pipeline. God test!

Java tag