Forfattere har redaktører til at tjekke deres arbejde, og fødevareindustrien udfører omhyggelige tests af deres produkter for at sikre overholdelse af gældende standarder og politikker. Men hvad med softwareudvikling? Har du nogensinde undret dig over, hvorfor kvalitetssikring er så afgørende i denne branche? Det er et spørgsmål, der er mere aktuelt end nogensinde, især når vi betragter den stigende kompleksitet af moderne it-systemer.
I softwareudvikling er kvalitetssikring ofte et undervurderet og misforstået emne. Mange spørger, hvorfor udviklere ikke bare kan levere korrekte produkter fra starten eller udføre tilstrækkelig tests undervejs. På den anden side - i industrier som medicinproduktion - er omfattende tests og konstante forbedringer standardpraksis. Hvorfor bliver kvalitetssikring i softwareudvikling så ofte negligeret?
Det er sandt, at medicinproduktion og softwareudvikling er to vidt forskellige områder, men der er alligevel visse ligheder, som vi kan drage inspiration fra. Især når vi betragter fagområder, hvor produktkvalitet er kritisk, som det er i medicinproduktion. Men i en verden, der er i stigende grad afhængig af it, kan det være klogt at søge inspiration fra andre fagområder, der har årtiers erfaring med kvalitetssikring indlejret i deres DNA.
I dette indlæg vil vi introducere dig til, hvordan vi udfører kvalitetssikring hos Novicell, med indsigter fra vores QA-specialist, Alexandru-Orestis Giuran. Han har dyb indsigt i it og arbejder kontinuerligt på at optimere og automatisere kvalitetssikringsprocesserne. Følg med, mens vi udforsker, hvorfor kvalitetssikring spiller en central rolle i den evigt skiftende verden af tech og webudvikling, og hvordan moderne teknologi og værktøjer hjælper os med at levere produkter af endnu højere kvalitet.
Nedenstående er et interview i Q&A-format, hvor vores QA-specialist, Alexandru-Orestis Giuran, uddyber, hvad automatiske tests er, og hvordan vi hos Novicell arbejder med kvalitetssikring.
Hvordan begyndte du at udforske automatiske tests?
Automatiserede tests er blevet en naturlig del af min karriereudvikling, da jeg konstant arbejder på at udvikle mine kompetencer. Jeg begyndte at dykke ned i automatisering af gentagne opgaver inden for kvalitetssikring af webapplikationer. Dette viste sig at forbedre pålideligheden og nøjagtigheden af kernesystemets funktionalitet markant.
Hvad er automatiske tests?
Automatiske tests er i bund og grund en dedikeret hjælper til produktejeren af it-systemet og løsningerne. Normalt har produktejeren en opskrift eller en vejledning, der beskriver, hvad og hvordan der skal testes i forbindelse med udviklingen af nye funktioner. Forestil dig nu et værktøj, der kan gennemgå en liste af kritiske fokusområder helt automatisk og give en rapport inden for få minutter. Dette er i stedet for at bruge mange timer på den samme opgave, inden du er helt sikker på, at alt fungerer som det skal, før du kan lancere en ny funktion. Dette er nøjagtigt, hvad automatiske tests indebærer i praksis. Det indebærer at programmere en række specifikke opgaver, som systematisk udføres automatisk og efterfølgende rapporteres. For eksempel, hvis dit system involverer e-handel og købsfunktioner, kan du automatisere testprocessen for at bekræfte, om disse funktioner stadig fungerer korrekt.
Den ovenstående video er et eksempel på Cypress i praksis, som automatisk tester funktionalitet på et website.
Kan du fortælle om din rejse ind i verdenen af kvalitetssikring og automatiske tests som profession?
Selvfølgelig. Min interesse har altid ligget i at afdække, hvordan ting fungerer, inklusive de komplekse systemer, der driver dem. Denne nysgerrighed førte mig naturligt ind i feltet for kvalitetssikring og automatiserede tests.
Kan du give os indsigt i, hvordan du først blev introduceret til kvalitetssikring?
Mit første bekendtskab med kvalitetssikring fandt sted, mens jeg studerede. Som led i mit uddannelsesforløb tilbragte jeg et helt semester som QA & User Research Manager for en spilvirksomhed som en del af DADIU-programmet. Denne oplevelse spillede en afgørende rolle i min udvikling, og jeg deltog samtidig i to kurser, der skulle vise sig at have betydelig indflydelse på min fremtidige karriere.
Hvis du skulle forklare kvalitetssikring med dine egne ord, hvordan ville du beskrive det?
Kvalitetssikring, set fra min synsvinkel, kan bedst beskrives som en brobygger mellem udviklerne og kunderne. En dygtig QA-specialist fungerer som en kompromisløs projektejer under testfasen og som en af holdets udviklere, når fejl opdages. Denne rolle kræver en særlig personlighedstype, da den involverer at finde fejl i ens kollegers arbejde, samtidig med at man opretholder et positivt samarbejdsforhold.
En kompetent QA-specialist skal besidde en dybdegående forståelse for løsningens kernefunktionalitet. Samtidig skal de have evnen til at se tingene fra en brugers perspektiv og bevare et objektivt syn på løsningen. Det indebærer at have viden om de typiske udfordringer inden for it- og webudvikling, samtidig med at man er åben for at søge efter nye kontekster og perspektiver.
Hvorfor er kvalitetssikring så vigtig?
Kvalitetssikring spiller en central rolle inden for næsten alle fagområder, da det bidrager væsentligt til at sikre, at de leverede produkter og løsninger ikke lider af fejl eller mangler. Dette hjælper med at hæve den generelle kvalitet og pålidelighed af leverancen.
Min personlige mening er, at kvalitetssikring især er afgørende i sammenhæng med webapplikationer. Dette skyldes den enorme variation i systemer og den måde, vi interagerer med dem på. En vellykket web-løsning bør levere en ensartet og fremragende brugeroplevelse på tværs af forskellige enheder med varierende skærmstørrelser og formater. Kvalitetssikring forsøger at tilbyde kunderne den sikkerhed, at man får den ønskede brugeroplevelse uanset hvilken teknologi eller enhed der bruges til at interagere med løsningen.
Hvorfor er det, at udviklerne normalt ikke udfører tests på deres egen kode, eller hvorfor kan de ikke bare få det rigtigt første gang?
Som regel observerer jeg, at udviklere primært tester for positive scenarier, hvor de bekræfter, at noget fungerer, snarere end at udforske, hvordan en ny funktion påvirker hele systemet. Her kommer en QA-specialist ind i billedet, da de fokuserer på både funktionalitet og brugeroplevelse. Deres rolle er at sikre, at alt fungerer og ser ud, som kunden forventer, og at det overholder de aftalte standarder.
Når det kommer til at skabe den "perfekte" løsning fra første forsøg, er det en udfordrende opgave. Særligt svært er det, når der implementeres nye features i et allerede komplekst system. Det er her regressionstests bliver afgørende, især når større funktioner integreres i et eksisterende system. En QA-specialist er den ideelle person at involvere i de situationer, fordi de typisk har et godt overblik og en bred forståelse af systemerne og løsningerne.
Hvilken værdi giver kvalitetssikring til kunderne?
Kvalitetssikring spiller en afgørende rolle i at give kunderne ekstra sikkerhed og forbedrer deres overordnede oplevelse med brugen af den leverede løsning. En omhyggelig kvalitetssikring resulterer også i øget kundetilfredshed, da næsten alle, hvis ikke alle, fejl bliver opdaget og rettet, før nye funktioner eller opgaver rulles ud til slutbrugerne. Dette sikrer en mere problemfri og pålidelig brugeroplevelse, hvilket i sidste ende er til gavn for kunden.
Kan du uddybe, hvordan du bidrager til et projekt, både under udvikling og når det er i produktion?
Min rolle som QA-specialist indebærer, ud over omfattende tests af applikationen, at jeg fungerer som en sparringspartner for udviklerne og som en vejleder for kunder og slutbrugere. Jeg påtager mig ansvaret for at besvare alle slags spørgsmål og udfordringer, uanset om de stammer fra udviklerne, kunderne eller projektlederne. At have et helhedsorienteret overblik over systemets funktionalitet både i udviklingsfasen og i produktionen er afgørende for at sikre projektets succes.
Kan du uddybe, hvilke værktøjer du bruger til automatiske tests, herunder Cypress?
Som jeg nævnte tidligere, er automatiserede tests det naturlige næste skridt i udviklingsprocessen for at sikre en mere pålidelig og konsistent løsning. Før jeg begyndte at anvende disse værktøjer, foretog jeg en omhyggelig research og bemærkede, at Cypress var et udbredt valg til end-to-end tests.
Cypress er ikke et nyt værktøj, men det gennemgår løbende opdateringer, ofte månedligt, og dette gør det til et af de mest anvendte værktøjer inden for kvalitetssikring.
Paywright (Microsoft produkt) er en af de nye spillere på markedet, som på det seneste har fået en del opmærksomhed. Dette har skabt en form for konkurrence mellem de to værktøjer, og de stræber begge efter at tilbyde forbedrede funktioner for at opnå en konkurrencefordel. Dette udviklingskapløb bidrager til at gøre begge produkter bedre og mere avancerede.
Hvordan arbejder du med at opretholde kvaliteten i projekterne på lang sigt?
En afgørende måde at sikre kvaliteten på lang sigt er ved at udnytte automatiske tests. Disse tests udføres kontinuerligt, hvilket betyder, at potentielle fejl kan opdages så snart de opstår, og dermed rettes, før de når ud til produktion. De fleste automatiserede end-to-end testværktøjer tilbyder pipelineintegration, hvilket betyder, at automatiske tests kan køres hver gang der foretages en opdatering af koden og denne uploades til serveren. Man kan derfor teste hele løsningen hver gang, man tilføjer ny kode og nye features.
Cypress, for eksempel, giver dig mulighed for at have tests i skyen samt videooptagelser af, hvad der sker under testene, herunder fejl og logfiler. Dette skaber en værdifuld dokumentation af testresultaterne, der kan bruges til at forbedre kvaliteten og stabiliteten af projektet over tid.
Kan du give os et eksempel på, hvordan automatiske tests anvendes i udviklingen af et projekt?
Et typisk scenarie hvor automatiske tests bruges, er i forbindelse med såkaldte "smoke-tests". Det er en hurtig og enkel test, der tjekker, om en software eller en del af en software fungerer overhovedet. Det er den første test for at sikre, at softwaren kan starte og udføre de mest grundlæggende funktioner uden alvorlige problemer. I et typisk projekt kan en automatisk test være en række tjek, der sikrer at indholdssider kan tilføjes korrekt, at komponenterne fungerer som forventet, og at brugerinteraktionen fungerer problemfrit. Det kan også være en test af om en kunde kan logge ind, købe produkter, og at check-out flowet virker som det skal.
Vil du vide mere om automatiske test i praksis?
Så kontakt os lige her: