Automatisering af webapp-tests: 50% færre produktionsfejl

Innowise har integreret automatiseret test af webapps for at give hurtige og fejlfri softwareudviklingscyklusser.

Kunde

Industri
Telekommunikation
Region
Belgien
Kunde siden
2023

Vores klient er en fremtrædende udbyder af kommunikationstjenester, der specialiserer sig i internetforbindelsesløsninger, salg af modemer, levering af SIM-kort og opsætning af tv-pakker.

Detaljerede oplysninger om kunden kan ikke videregives i henhold til vilkårene i NDA'en.

Udfordring

Forbedring af testprocesser for at fremskynde softwareudgivelser af høj kvalitet

Kundens interne udviklingsteam havde oprindeligt oprettet en brugerdefineret ramme til at udføre automatiserede tests på deres webapplikation. Men dette framework levede ikke op til de forventede standarder, hvilket resulterede i ustabile tests. Ustabiliteten blev forværret af en mangel på ordentlig integration med det kontinuerlige integrationssystem (CI). Det førte til forsinkede feedbacksløjfer og øget manuel indgriben fra QA-teamets side.

Stillet over for disse udfordringer bad kunden os om at levere en robust løsning, der ville strømline deres testprocesser, reducere regressionsfejl og fremskynde deres udgivelsescyklusser.

Løsning

Fremme af QA-kapaciteter gennem strategisk testautomatisering

Da vi tog fat på kundens udfordringer, fokuserede vi på at skabe en skræddersyet løsning, der ville forbedre deres Kvalitetssikringsprocesser. I erkendelse af ineffektiviteten og begrænsningerne i deres eksisterende brugerdefinerede testramme satte vi os for at udvikle en mere robust, skalerbar og effektiv teststrategi, der var skræddersyet specifikt til deres behov.

Tilpasning og integration af rammer

Baseret på vores erfaring i automatiseret test af webappsVi udarbejdede en strategi med to frameworks og brugte både Cypress og Playwright til end-to-end-testning. Vi valgte disse frameworks på grund af deres unikke egenskaber, som er velrenommerede for deres stabilitet, robusthed og kompatibilitet på tværs af forskellige browsere og miljøer.

Cypress-integration

Vores AQA-ingeniører valgte Cypress på grund af dets enestående end-to-end-testfunktioner. En af Cypress' fremtrædende funktioner er den indbyggede adgang til browser-API'er uden at gå gennem mellemliggende servere. Dette fremskynder testudførelsen betydeligt og reducerer kompleksiteten af end-to-end-tests. Vi tilpassede Cypress til at integrere problemfrit med kundens webapplikationer, hvilket muliggjorde testudførelse i realtid og visuelle testfunktioner. Denne opsætning gav os mulighed for at simulere faktiske brugerinteraktioner mere nøjagtigt. Det sikrer, at alle brugerveje blev testet grundigt, før nogen kode blev flyttet til produktion. Innowise implementerede lanceringen af Cypress-tests i GitLab og demonstrerede vellykkede testafslutninger på en fjernserver efter udrulningen. Dette bekræfter yderligere robustheden og pålideligheden af vores testramme i et kontinuerligt integrationsmiljø.

Integration af dramatikere

På den anden side viste Playwright sig at være ideel til både frontend- og API-testning på grund af dens evne til at køre test på tværs af alle større browsere med minimal konfiguration. Den understøtter test i hovedløs tilstand, hvilket er afgørende for CI-miljøer, og tilbyder robuste værktøjer til håndtering af asynkrone hændelser og komplekse sideinteraktioner. Vi udnyttede Playwrights funktion til parallel testudførelse til at køre flere tests samtidigt i forskellige miljøer, hvilket reducerede den samlede testtid dramatisk. Desuden gav Playwrights rige sæt af API'er os mulighed for at oprette tilpassede testscripts, der efterligner kompleks brugeradfærd og -interaktioner. Det forbedrede vores testdækning og pålidelighed. Derudover udførte vi omfattende rapportering ved hjælp af Allure for at spore testresultater, hvilket gav klar indsigt og analyse fra vores Playwright-integrationer.

Strategisk tilpasning

Vi konfigurerede hvert framework, så det passede til kundens eksisterende infrastruktur. Innowise-teamet introducerede plugins og udvidelser, der forbedrede frameworkenes funktionalitet og muliggjorde integration med andre værktøjer i kundens tech stack. For eksempel integrerede vi Cypress med kundens autentificeringstjenester for at håndtere sikkert login under test. Vi konfigurerede også Playwright til automatisk at optage skærmbilleder og videoer til gennemgang i tilfælde af testfejl.

CI-integration

AQA-ingeniører integrerede Cypress og Playwright i CI-pipelinen på Gitlab. Denne integration gjorde det muligt for os at oprette automatiserede testudførelser, der blev udløst af hver kodecommit. Ved at automatisere disse udførelser sikrede vi, at enhver ny eller ændret kode gennemgik en grundig test, før den gik videre i udviklingscyklussen. Denne opsætning fremskyndede ikke kun testprocessen, men hjalp også med at fange fejl og problemer på et så tidligt tidspunkt som muligt. Det var med til at reducere risikoen for, at fejlene nåede produktionen. Den problemfri sammensmeltning af disse frameworks med Gitlab CI gav også en mere smidig arbejdsgang, så udviklerne kunne fokusere mere på funktionsudvikling og mindre på gentagne testopgaver.

Rapportering på GitLab

For yderligere at styrke QA-processerne udnyttede vi Gitlabs avancerede rapporteringsværktøjer og fokuserede specifikt på at øge gennemsigtigheden og ansvarligheden mellem AQA-teamet og lederne. Ved at skræddersy disse værktøjer til at generere detaljerede rapporter i realtid gav vi begge teams en uvurderlig ressource til at få adgang til opdaterede data om status for forskellige tests.

Disse rapporter var designet til at være omfattende, men alligevel let fortolkelige, og omfattede nøgletal som testdækning, fejlrater og udførelsestider. Denne detaljeringsgrad sikrede, at lederne hurtigt kunne forstå effektiviteten af testindsatsen og identificere områder, der havde brug for opmærksomhed, uden at det krævede dyb teknisk viden. For AQA-teamet fungerede disse rapporter som et vigtigt værktøj til at spore fremskridt, finde tilbagevendende problemer og validere kodebasens kvalitet.

Udvikling af arkitektur

Innowise udviklede en skalerbar testarkitektur, der er skræddersyet til at rumme en bred vifte af tests, herunder smoke tests, regressionstests og omfattende end-to-end-tests. Arkitekturen blev designet til at understøtte projektets umiddelbare behov og danne grundlag for fremtidige testinitiativer. Arkitekturens modulære karakter gjorde det nemt at tilpasse og skalere den. Så efterhånden som kundens krav udviklede sig, kunne testrammen også gøre det uden at kræve væsentlige ændringer.

Vores tilgang omfattede etablering af et centraliseret teststyringssystem, der gjorde det lettere at organisere og spore testsager, resultater og målinger. Dette system var afgørende for at kunne håndtere flere komplekse testtyper og skabe en sammenhængende arbejdsgang på tværs af testcyklusser. Ved at implementere robuste datalogging- og resultatanalysefunktioner gav vi QA-teamet de nødvendige værktøjer til at udføre detaljerede evalueringer af hver testcyklus, hvilket er afgørende for at opretholde høje standarder for softwarekvalitet.

Start af test i Xray Jira-værktøjet

For yderligere at forbedre QA-processerne lancerede vi tests ved hjælp af Xray Jira-værktøjet. Denne integration gav os mulighed for at holde styr på og administrere testsager direkte i Jira, hvilket strømliner kommunikationen og samarbejdet mellem QA- og udviklingsteams. Ved at udnytte Xrays stærke teststyringsfunktioner fik vi et omfattende overblik over testaktiviteterne. QA-teamet sporede også sporbarheden fra krav til fejl og genererede detaljerede rapporter om testdækning og -udførelse. Denne integration øgede markant vores evne til at finde og løse problemer med det samme, så vi kunne levere software af høj kvalitet.

Uddannelse og empowerment

I erkendelse af den kritiske rolle, som overførsel af viden spiller for enhver teknologiimplementerings succes, gennemførte vi dybdegående træningssessioner, der var specielt skræddersyet til Cypress, da den spiller en central rolle i kundens teststrategi. Disse sessioner var struktureret til at give kundens interne teams den nødvendige ekspertise til effektivt at bruge, vedligeholde og udvide testrammerne på egen hånd.

Træningen dækkede en række vigtige emner, fra grundlæggende opsætning og konfiguration af testværktøjer til avancerede funktioner som scripting af testautomatisering og miljøstyring. Vi inkluderede også praktiske øvelser, der var designet til at adressere scenarier fra den virkelige verden, som teamet kunne komme ud for, og som forbedrede deres problemløsningsevner og selvtillid i forhold til at håndtere værktøjerne.

Ud over teknisk træning understregede vi vigtigheden af en strategisk tankegang i kvalitetssikringspraksis. Vi vejledte teamet i, hvordan man planlægger og udfører tests, der er i overensstemmelse med de bredere forretningsmæssige mål. Denne tilgang sikrede, at teamet ikke kun var dygtige til at bruge teknologien, men også dygtige til at integrere QA-processer i deres daglige arbejdsgange.

Teknologier

REST API, JSON, Java

Design

Figma, Sketch, Zeplin

Serviceydelser

Firebase (Analytics, Crashlytics, Cloud Messaging, App Distribution), GitLab, Jira, Confluence, Strapi, Slack
Unit-testing + CI/CD-integration via SonarQube, Cypress, Playwright

Proces

Opdagelse og planlægning

Projektet startede med opdagelsesmøder for at få en dyb forståelse af kundens specifikke behov og udfordringer. Denne fase var afgørende for opsætningen af Cypress og Playwright, sikre deres kompatibilitet med kundens eksisterende systemer og forberede grundlaget for en problemfri integration.

Udvikling og integration

Vi tilpassede Cypress og Playwright, så de passede til kundens unikke testkrav og integrerede disse frameworks i Gitlabs CI-pipeline. Denne integration automatiserede testprocessen, hvilket muliggjorde tidlig opdagelse og løsning af problemer og fremskyndede udviklingscyklussen.

Træning og overdragelse

Vores AQA-specialist gennemførte omfattende træningssessioner i Cypress for at udstyre kundens team med færdighederne til at administrere og optimere testrammer uafhængigt. De leverede også detaljeret dokumentation og bedste praksis for at understøtte løbende vedligeholdelse og forbedring af systemerne.

Kommunikation og projektledelse

Gennem hele projektet opretholdt vi en gennemsigtig kommunikation via Slack og administrerede opgaver og fremskridt via Jira. Denne tilgang sikrede, at alle interessenter var konsekvent var på linje, og at projektet var velkoordineret og på rette spor.

Hold

1

Projektleder

1

Teamleder

1

Lead Automation QA Engineer

1

Analytiker af testdata

4

Automation QA Engineers / SDET-eksperter

Resultater

Hurtigere softwareudgivelsescyklus og 2x færre produktionsfejl

Efter den vellykkede implementering af de automatiserede testrammer er kunden gået over til et robust testautomatiseringsmiljø, der giver betydelige driftsforbedringer.

  • Øget frigivelseseffektivitet: Ved at udnytte automatisering blev afhængigheden af tidskrævende manuel testning drastisk reduceret, hvilket gav mulighed for en hurtigere softwareudgivelsescyklus.
  • Reduktion af fejl: Forbedrede testfunktioner resulterede i et fald på 50% i regressionsfejl, hvilket viser effektiviteten af testautomatiseringsprocesser.
  • Forbedret stabilitet i testmiljøet: Ved at finjustere og optimere testopsætningerne minimerede vi forekomsten af fejlbehæftede tests betydeligt, hvilket førte til mere konsekvente og pålidelige testresultater.

Dette strategiske eftersyn adresserede kundens oprindelige udfordringer med en skræddersyet teknologisk tilgang og ekspertvejledning. Ved at udstyre deres team med avancerede værktøjer og dybdegående viden har vi skabt et fundament for løbende skalerbarhed og kontinuerlige driftsforbedringer.

Projektets varighed
  • August 2023 - Løbende

3x

hurtigere udrulning af udgivelser

50%

færre produktionsfejl

    Kontakt os

    Book et opkald eller udfyld formularen nedenfor, så vender vi tilbage til dig, når vi har behandlet din anmodning.

    Send os en talebesked
    Vedhæft dokumenter
    Upload fil

    Du kan vedhæfte 1 fil på op til 2 MB. Gyldige filformater: pdf, jpg, jpeg, png.

    Ved at klikke på Send accepterer du, at Innowise behandler dine personlige data i henhold til vores Politik for beskyttelse af personlige oplysninger for at give dig relevante oplysninger. Ved at indsende dit telefonnummer accepterer du, at vi kan kontakte dig via taleopkald, sms og beskedapps. Opkalds-, besked- og datatakster kan være gældende.

    Du kan også sende os din anmodning
    til contact@innowise.com

    Hvad sker der nu?

    1

    Når vi har modtaget og behandlet din anmodning, vender vi tilbage til dig for at beskrive dine projektbehov og underskriver en NDA for at sikre fortrolighed.

    2

    Når vi har undersøgt dine ønsker, behov og forventninger, udarbejder vores team et projektforslag med forslag med arbejdets omfang, teamstørrelse, tids- og omkostningsoverslag.

    3

    Vi arrangerer et møde med dig for at diskutere tilbuddet og få detaljerne på plads.

    4

    Til sidst underskriver vi en kontrakt og begynder at arbejde på dit projekt med det samme.

    pil