Automatiseret softwaretest: 2 gange hurtigere frigivelse af funktionalitet

Innowise udført automatiseret softwaretestning for at sikre, at integrationen af nye systemfunktioner ikke kompromitterede integriteten af de eksisterende funktioner.

Kunde

Industri
Informationsteknologi
Region
Schweiz
Kunde siden
2023

Vores kunde er en leverandør af cloud ERP-løsninger, der er designet til at styrke driftseffektiviteten og modstandsdygtigheden over for driftsforstyrrelser.

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

Udfordring

Verificering af ERP-systemets stabilitet efter integration af ny funktionalitet

Vores kunde introducerede ny funktionalitet i deres ERP-system og integrerede den med det eksisterende build. De brugte Innowise til at vurdere stabiliteten af det implementerede software-build. Vi leverede Automatiserede softwaretesttjenesterFormålet er at identificere potentielle showstoppere i systemet og løse dem.

Løsning

Brug af automatiserede softwaretest til at identificere og løse potentielle showstoppere

Innowise løftede kundens ERP-system med en mangefacetteret tilgang til automatiseret softwaretestning. Den omfattede røg-, funktions- og regressionstest, som alle blev udført inden for en kontinuerlig integration/kontinuerlig levering (CI/CD) pipeline. Smoke-test blev brugt til hurtigt at verificere stabiliteten af nøglefunktionaliteter, mens funktionel test var afgørende for at undersøge hver enkelt funktion for korrekthed. Regressionstest var afgørende for at sikre, at nye opdateringer ikke påvirkede eksisterende funktioner negativt. Integrationen af disse testmetoder i CI/CD-pipelinen strømlinede udviklingsprocessen. Denne tilgang muliggjorde hurtig identifikation og løsning af problemer og sikrede en konsekvent udrulning af robuste funktioner af høj kvalitet i ERP-systemet.

Evaluering af testcases til automatisering

Til at begynde med fik vi til opgave at gennemgå de testcases, som de manuelle testere havde lavet. Med vores omfattende baggrund inden for softwaretestning dykkede vi ned i hver case og udførte trinene i hver testcase manuelt for at vurdere dens kompleksitet og mulighed for automatisering. Vores mål var at finde den mest effektive måde at automatisere gentagne og tidskrævende opgaver på uden at forringe nøjagtigheden af testresultaterne.

Implementering af røgtest

Vores testere oprettede en samling af forudindspillede smoke-testcases, som gik i gang med hvert nyt build. Disse tests var afgørende for at bekræfte, at softwarens vigtigste funktioner kørte, og sikrede konsistens og grundighed. Hvis en automatiseret test markerede et problem, alarmerede den straks vores team, så vi hurtigt kunne identificere og løse problemet.

Fleksibiliteten i vores proces gav vores team mulighed for hurtigt at løse eventuelle problemer, der blev opdaget under opbygningen. Vi implementerede straks de nødvendige justeringer og omlagde byggeriet uden forsinkelse, hvilket sikrede minimal forstyrrelse.

Integrering af funktionstest i hvert sprint

Vi overgik problemfrit fra den brede verificering af røgprøver til den målrettede og omhyggelige funktionelle testtilgang. Det sikrede, at hver ny opdatering var effektiv i sig selv og passede perfekt sammen med de etablerede softwarekomponenter. Vi udførte funktionelle tests i hvert sprint, så hver trinvis udvikling blev grundigt evalueret og opretholdt softwarens overordnede kvalitet og sammenhængskraft.

Regressionstest af software

Vi fulgte en strømlinet, men grundig proces for at implementere automatiseret regressionstest. Vores team oprettede et testmiljø, der afspejlede de faktiske produktionsforhold og sikrede, at vores resultater var så nøjagtige som muligt. Med Selenium automatiserede vi regressionstestscripts og øgede effektiviteten betydeligt, hvilket er en afgørende faktor for komplekse systemer.

Når de var automatiserede, kørte vi disse scripts mod det seneste build for at tjekke for uoverensstemmelser eller fejl. Efter at have kørt testene analyserede vi resultaterne grundigt og fandt frem til eventuelle nye fejl eller problemer.

Hvis vi opdagede problemer, løste vi dem straks ved at tilpasse koden og køre testene igen for at bekræfte effektiviteten af vores rettelser. Denne cyklus med at teste, analysere og forbedre var konstant for hver ny softwareopdatering og sikrede, at softwaren var stabil og fungerede efter hensigten. Denne effektive tilgang til regressionstest var nøglen til at opretholde softwarens pålidelighed og ydeevne og dermed reducere risikoen for fejl og give en gnidningsløs brugeroplevelse.

Kontinuerlig integration/kontinuerlig levering (CI/CD) pipeline

Ud over vores grundige testproces har vi også integreret vores tests i den kontinuerlige integration/kontinuerlige levering (CI/CD), hvilket forbedrer vores udviklingscyklus' effektivitet og reaktionsevne. Vi brugte Allure-værktøjet til detaljeret rapportering, som gav klar indsigt i testresultaterne. Denne integration gjorde det muligt for os at oprette et automatiseret system, hvor testene blev lanceret hver aften. Denne natlige testrutine sikrede, at alle nye ændringer blev evalueret med det samme, hvilket gav mulighed for hurtig identifikation og løsning af problemer. Integrationen af Allure-rapporter i vores CI/CD-pipeline betød, at vores team havde adgang til omfattende testdata hver morgen, hvilket strømlinede beslutningstagningen og fastholdt et konstant fokus på kvalitet og stabilitet. Denne integration fremskyndede vores testproces og styrkede pålideligheden af hvert eneste software-build, vi leverede.

Detaljerede trin i vores CI/CD-pipeline:

  • Kode: Udviklerne skrev og forbedrede koden og sikrede, at den levede op til vores standarder for funktionalitet og design.
  • Forpligtelse: Derefter lagde vi den opdaterede kode ind i vores versionskontrolsystem, hvilket markerede det første kontrolpunkt i pipelinen.
  • Bygge: Denne committede kode gennemgik en build-proces, hvor den blev konverteret til en kørbar form, klar til test.
  • Enhedstests: Vi underkastede byggeriet enhedstests, hvor de enkelte komponenter blev testet for korrekthed. Det blev gjort for at garantere, at hver komponent fungerede fejlfrit.
  • Test af røg: Efter enhedstestene udførte vi smoke tests på buildet for hurtigt at finde ud af, om kritiske funktioner fungerede som forventet.
  • Forpligtelse: Efter smoke-tests lagde vi koden ind i versionskontrolsystemet igen og indarbejdede alle ændringer, der var foretaget efter testene.
  • Anmeldelse: Vi gennemgik hver enkelt ændring grundigt for at sikre, at de overholdt vores kvalitetsstandarder og var i overensstemmelse med projektets mål.
  • Iscenesættelse: Bygningen blev flyttet til et staging-miljø, som nøje afspejlede produktionsopsætningen, til yderligere test.
  • Systemtest: I staging udførte vi omfattende systemtests for at validere byggeriet i et miljø, der simulerede brug i den virkelige verden.
  • Produktion: Da buildet havde bestået alle testfaser, blev det implementeret i produktionsmiljøet, så det blev tilgængeligt for slutbrugerne.

Teknologier

Python, Pytest, Selenium, Allure
Java, Spring, Dvaletilstand

VSC

Git, Gitlab

AWS Grafana IAM, SNS, SQS, KMS, RDS (PostgreSQL), S3, SES

Gitlab, Docker, Docker Compose

Proces

Agil metodik og sprintstruktur

I vores projekt fulgte vi nøje den agile metode og strukturerede vores udviklingsproces i sprints af to ugers varighed. Denne tilgang gjorde det muligt for os at opdele projektet i håndterbare bidder og sikre konsistens og effektivitet i hver fase.

Opgavestyring og teamsamarbejde

I starten af hvert sprint opstillede vi klare mål og opgaver, som blev sporet ved hjælp af Jira. Dette værktøj holdt vores team på linje og på sporet. Vi brugte det ikke kun til at spore opgaver, men også som et centralt knudepunkt for samarbejde og kommunikation, så alle teammedlemmer altid var opdateret med den seneste udvikling og de seneste prioriteter.

Sprintgennemgang og detaljeret rapportering

Da vi nærmede os slutningen af hvert sprint, skiftede vores fokus til at konsolidere vores arbejde og forberede sprintgennemgangen. Vi udarbejdede omhyggeligt detaljerede rapporter, der fremhævede vores testdækning og -resultater. Disse rapporter var mere end blot en opsummering af de udførte opgaver, de indeholdt en dybdegående analyse af, hvad vi havde opnået, hvilke udfordringer vi stod over for, og hvordan vi overvandt dem. De indeholdt også feedback fra vores testprocesser og eventuelle erfaringer, der kunne overføres til det næste sprint.

Hold

3

AQA Engineers

1

DevOps Engineer

Resultater

Hurtigere udrulning af funktioner og 50% færre produktionsfejl

Implementering af automatiseret testning af vores kundes ERP-system resulterede i markante forbedringer og effektiviseringer:

  • Hurtigere frigivelse af nye funktioner: Med automatiseret testning blev nye funktioner frigivet dobbelt så hurtigt sammenlignet med den tidligere manuelle proces.
  • Reduktion af fejl: Integrationen af CI/CD førte til en reduktion på 50% i antallet af fejl, der nåede produktionen, hvilket forbedrede softwarens pålidelighed betydeligt.

På baggrund af dette positive resultat har vores kunde udtrykt sin begejstring for vores samarbejde. De anerkender den værdi, som vores ekspertise og implementeringen af banebrydende teknologier tilfører deres virksomhed. Fremover vil vi arbejde tæt sammen med vores kunde for at bygge videre på de opnåede succeser og udforske yderligere muligheder for at forbedre deres systemer og processer.

Projektets varighed
  • September 2023 - Løbende

2x

Forøgelse af funktionalitetsudgivelseshastigheden

50%

færre fejl når frem til produktionen

    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