Som softwareudviklere er en af de vigtigste dele af vores arbejde at teste. Der findes dusinvis af testformater, hvor testere undersøger hver eneste linje kode for at levere det perfekte produkt.
End-to-end-testning er den ultimative test af et stykke kode, der vurderer programmet fra brugerens perspektiv og leder efter potentielle fejl, som kan ødelægge en persons oplevelse af arbejdet.
Få mere at vide om, hvad end-to-end testning er, nogle af fordelene ved denne type testning og nogle af de ideelle værktøjer til at gennemføre dine testprocesser på arbejdspladsen.
Hvad er End-to-End-testning?
End-to-End-testning bruges i softwareudviklingsprocessen til at teste en applikations funktion og ydeevne, når den anvendes som et produkt.
Målet med end-to-end-testning (eller E2E) er at få en bedre idé om, hvordan et produkt vil fungere, når det bruges i et live-miljø.
Denne form for testning fokuserer på at undersøge koden fra starten af en brugers interaktioner med den til slutningen, deraf udtrykket “end-to-end”.
Det er en meget omfattende måde at undersøge software på og finde ud af, hvor og hvorfor der kan opstå problemer i dit arbejde.
1. Hvornår og hvorfor skal man lave End-to-End-test?
Det bedste tidspunkt til at gennemføre E2E-testning er mod slutningen af udviklingsprocessen. Det skyldes, at de fleste af de funktioner, som en kunde bruger, er på plads i softwaren, hvilket betyder, at en end-to-end-test dækker alle de nødvendige aspekter af programmet, som brugerne vil opleve.
Hvis testningen afsluttes før dette tidspunkt, kan det give problemer med, at der er tale om en ufuldstændig version af programmet eller softwaren.
Organisationer gennemfører E2E-test af indlysende årsager, primært af hensyn til funktionalitet. Når du gennemgår denne testproces, betyder det, at du forstår problemerne med dit projekt indtil da og kan løse dem, inden du frigiver dit produkt til offentligheden.
2. Når du ikke behøver at lave end-to-end-test
Der er nogle få tilfælde, hvor en end-to-end-test ikke er nødvendig, f.eks. i tilfælde hvor enhedstests er mere effektive.
Enhedstests undersøger de specifikke enheder i et stykke kode, f.eks. individuelle funktioner og isolerede forbindelser mellem to forskellige funktioner i programmet. Unit tests kan være hurtigere, men har den ulempe, at de ikke fuldt ud simulerer en brugeroplevelse.
Overvej enhedstest, når der er relativt få enheder, f.eks. i en webapplikation, der kun har én funktion.
Større applikationer kræver et eksponentielt større team til at teste alle enhederne grundigt.
I disse tilfælde er det langt nemmere at vende tilbage til end-to-end-tests.
3. Hvem er involveret i E2E-test?
Dette afhænger helt af organisationens karakter. Nogle virksomheder har et særligt testteam, hvor udviklerne selv gennemfører testprocessen for nogle virksomheder.
Større organisationer har tendens til at have individuelle teams til testning og udvikling og holde de to organer uafhængige af hinanden, så resultaterne af E2E-testene ikke bliver skævvredet.
Få så vidt muligt en person, der ikke har udviklet en bestemt funktion, til at teste den. Dette fjerner iboende skævheder, hvor det er muligt, og holder testen så nøjagtig som muligt.
Mindre uafhængige udviklere som f.eks. førstegangsudviklere af apps eller udviklere med mere begrænsede budgetter gennemfører selv E2E-testene.
I disse tilfælde skal du fokusere på at bruge automatiseret testning. Automatiserede systemer eliminerer enhver bias og begår ikke fejl, når de producerer resultater.
Hvor det er muligt, er det ideelt at flere personer gennemfører testene og gentager dem, da det giver ekstra sikkerhed i både automatiserede og manuelle resultater.
Endelig tilbyder End-to-End-automatiseringsværktøjer som ZAPTEST en software + servicemodel, hvilket betyder, at en ZAP-certificeret ekspert arbejder sammen med og som en del af kundens team for at støtte og maksimere den ROI, der genereres af en række automatiserede tests, herunder end-to-end.
Fordele ved end-to-end-testning
End-to-end-testning har flere fordele for et udviklingsteam, som varierer afhængigt af den specifikke type software, du tester.
Nogle af de største fordele ved at bruge E2E-test i din organisation omfatter:
1. Opdag fejl og mangler
End-to-end-testning er ideel til at finde fejl og andre mangler i et stykke software.
Når du gennemgår testprocessen, skal du notere alle problemer og fejlmeddelelser, som du ser, samt hvor problemerne opstår. Det gør det langt hurtigere og nemmere at rette fejl.
Nogle eksempler på problemer, som du skal kigge efter, er, at en programfunktion ikke kan gennemføres, at programmet går helt ned, eller at funktioner i brugergrænsefladen ikke indlæses korrekt, hvilket påvirker programmets udseende.
2. Forstå brugerperspektivet
Et af de problemer, som udviklere har, er manglende forståelse af brugernes perspektiv på deres arbejde. Når alt kommer til alt, ser udviklere primært bagsiden af arbejdet og forstår ikke, hvordan en bruger interagerer.
Denne proces bygger bro over denne kløft og gør en udvikler opmærksom på problemer som f.eks. problemer med brugergrænsefladen.
Kompilér et komplet build af applikationen for at få den fulde brugeroplevelse i disse tilfælde, fra første gang du åbner appen til du gennemgår alle de tilgængelige funktioner.
Testere, der ikke er udviklere, er nyttige i disse tilfælde, da de er mindre eftergivende ved at fokusere på, hvordan applikationen “bør” fungere, og udelukkende ser et eksternt perspektiv.
3. Øge udviklernes tillid
Selv efter at have gennemført flere tests kan udviklere have svært ved at være helt sikre på deres arbejde.
En end-to-end-test viser, at brugerens oplevelse er positiv, og at der er et godt grundlag for at frigive produktet.
Selv i tilfælde af et problem er det en fordel at vide, hvor disse problemer er, for at kunne udarbejde en strategi og have tillid til de andre områder og funktioner i applikationen.
Udfordringer ved end-to-end-test
Der er nogle få udfordringer ved at bruge End-to-End-tests i softwareudvikling, herunder:
1. Langsom udførelse
At gennemføre en end-to-end-test betyder, at man skal interagere med brugergrænsefladen for at få en handling frem for at bruge backend, hvilket kan tage længere tid at navigere i og bruge appen.
Dette forbedres delvist, når der anvendes automatisering af test fra ende til ende.
2. Komplekse testmiljøer
End-to-end-testning er designet til at fokusere på at genskabe en nøjagtig version af den måde, som en kunde interagerer med softwaren på, hvilket gør det vanskeligere at opbygge et mere nøjagtigt testmiljø end at gennemføre mindre test.
3. Vanskelig fejlfinding
Fejlfindingsprocessen er mere kompleks med end-to-end-tests, da en automatisk test, der vender tilbage med en “Fail”-meddelelse, sandsynligvis ikke vil være specifik for årsagen til problemet.
Udviklerne skal undersøge disse tilfælde nærmere for at løse problemerne, især hvis der ikke er nogen integration af specifikke fejlmeddelelser.
Karakteristika ved end-to-end-test
Der er nogle få vigtige tests, som man skal kigge efter, når man skal fastslå, om en test er end-to-end-test.
Nogle af de karakteristika, der kendetegner denne type test, omfatter:
1. Vurdering fra start til slut
Alle end-to-end-tests er vurderinger af softwaren fra brugerens første interaktion med produktet til den sidste, og de dækker alle aspekter af softwaren, som brugerne interagerer med.
Dette gør E2E til et af de mest omfattende testformater, der findes inden for softwareudvikling.
2. Scenarie fra den virkelige verden
E2E-testning lægger vægt på en simulation i den virkelige verden, idet disse test alle har til formål at skabe et scenarie i den virkelige verden, der præcist skildrer den måde, hvorpå en bruger interagerer med de tilgængelige oplysninger.
Dette indebærer opbygning af et nøjagtigt miljø og en nøjagtig bruger til testcasen.
3. Klare resultater
Resultaterne af E2E-testning er klare og enkle, idet udviklerne får at vide, om deres software var vellykket, eller om der var fejl på et hvilket som helst tidspunkt i brugerrejsen.
Dette gælder især for manuel testning, da testerne kan rapportere eventuelle problemer.
Typer af aktiviteter i E2E-testning
Der er flere typer af aktiviteter, som udviklere og testere deltager i, når de gennemgår E2E-testprocessen.
Disse omfatter:
Brugerfunktioner
Brugerfunktioner er en af de første ting, man skal fokusere på, når man arbejder med E2E-testning.
1. Hvad er brugerfunktioner?
Brugerfunktioner er en liste over alle de funktioner og indbyrdes forbundne systemer, der findes i et stykke software.
Dette omfatter alt, hvad brugeren skal interagere med, og som giver et højere funktionsniveau i programmet.
Uden brugerfunktioner er der ikke behov for et program, da du blot har kode, der skaber en brugergrænseflade, som ikke gør noget.
2. Eksempler
En menu i et program anses for at være en brugerfunktion, da det er noget, som brugeren bruger, når han/hun vil forbedre standarden af sit arbejde.
Andre eksempler omfatter algoritmer i back-end’en, f.eks. algoritmer, der giver brugerne flere oplysninger og tillader eller nægter adgang til et udvalg af programmer.
3. Opbygning af brugerfunktioner
Optegn alle funktioner og indbyrdes forbundne systemer, før du sporer og noterer alle interaktioner, der forekommer i systemet.
Dette omfatter alle data, der indlæses, og de output, der kommer ud af programmet.
Vær så grundig som muligt i denne proces, da en omfattende forståelse af funktionaliteten og dataene i programmet gør testningen langt enklere og mere forståelig.
Betingelser
Betingelser henviser til parametre, der er indstillet i en End-to-End-test, og som definerer den måde, hvorpå en test finder sted, og hvordan et resultat vurderes af testeren.
1. Hvad er betingelser?
Betingelser henviser til et sæt parametre, der definerer en test. Disse findes i to former, herunder en TRUE/FALSE-parameter, der bestemmer, om data eller output er gyldige, og en data-parameter.
Ved hjælp af disse betingelser defineres testens status, og om miljøet er nøjagtigt i forhold til en rigtig bruger.
2. Eksempler på betingelser i end-to-end-test
Et eksempel på en TRUE/FALSE-betingelse er den browser, som en bruger er i, når han/hun får adgang til et webprogram, hvor TRUE/FALSE definerer, om brugeren er i desktop-versionen.
Et eksempel på en databehandling er den tid, det tager en bruger at gennemføre en bestemt handling, eller den IP-adresse, som en bruger opretter forbindelse fra.
3. Bygningsforhold
Bestem de ideelle betingelser for din test, herunder brugerens placering, tidspunktet for testens gennemførelse og andre dataforhold, der bidrager til testens nøjagtighed.
Brug om nødvendigt en “brugerprofil” for at skabe konsistens og nøjagtighed i dine data. Jo mere realistiske testbetingelserne er, jo mere præcise er resultaterne.
Testcases til end-to-end-testning
En testcase er et sæt handlinger, som en bruger udfører på et system for at undersøge, om det fungerer, som udvikleren forventer.
Når udviklerne gennemfører en række testcases, kan de have større tillid til kvaliteten af deres arbejde og se, at deres produkter kører som forventet.
1. Hvad er testcases for end-to-end-tests?
Testcases for end-to-end-tests udføres af testere, der kører fra starten af en persons interaktion med et program til slutningen.
Ved at designe disse grundige testcases og følge dem til dørs for hver iteration af softwaren garanterer en udvikler, at de har funktionalitet i hver iteration af softwaren.
Hold dine testcases konsistente fra version til version, så du kan se ændringerne i kvaliteten af arbejdet og testresultaterne.
2. Hvordan udformes E2E-testsager?
Der er nogle få trin i processen med at designe E2E-testcases, som hver især fører til bedre resultater under hele testningen.
Disse trin omfatter:
Kend dine mål
Start med at forstå målene for hver enkelt testcase.
I den allerførste testrunde undersøger du den grundlæggende funktionalitet og sikrer, at applikationen fungerer, med yderligere E2E-tests senere i processen, hvor du undersøger præstationsniveauet og responsiviteten.
Dette omfatter forståelse af de specifikke betingelser for testen, herunder de demografiske oplysninger, som du tester med, og sikring af, at de passer til din gennemsnitlige bruger.
Hvis du har dine mål for øje fra starten, får du større fokus og klarhed i processen.
Fokus på enkelhed
Start med et relativt simpelt grundlag.
Hvis du opregner en række komplekse betingelser og krav til dit arbejde i den allerførste test, gør du det stadig vanskeligere at bestå testen og gør dit arbejde mere komplekst.
Gennemfør de første test med meget grundlæggende betingelser og mål, før du bygger op i senere test og tilføjer flere detaljer, når det er nødvendigt.
Testning kan være mere kompleks, men du bør færdiggøre det grundlæggende, før du udvider.
Vær grundig
Arbejd på at være så grundig som muligt, når du gennemfører E2E-tests.
Det betyder, at du skal gennemføre alle test fuldstændigt og notere alle data, der kommer ud af processen.
På den måde kan du registrere den indvirkning, som hver ændring i koden har haft.
Dette er især nyttigt, når du skal optimere et program senere i processen og måle den tid, det tager at udføre specifikke opgaver.
3. Eksempler på E2E-testsager
Nogle eksempler på testcases, som virksomheder bruger, når de fastlægger kvaliteten af deres software gennem E2E-testning, er bl.a:
Funktionsprøvning
Ved funktionstestning fastslås det, om specifikke funktioner i softwaren fungerer som forventet.
Dette er et af de tidligste stadier af E2E-testning og fastslår, om koden fungerer på et grundlæggende niveau, før man forsøger at forbedre softwarens ydeevne i senere iterationer.
Reaktionshastighed
Det skal fastslås, om softwaren reagerer hurtigt på brugeren og udfører opgaverne rettidigt.
Nogle E2E-test fokuserer på at sikre, at systemet returnerer gyldige resultater hurtigt, idet man måler den tid, det tager at gennemgå brugerens proces, og sammenligner den med tidligere iterationer, idet kortere kørsler er ideelt for brugeren.
Det er vigtigt at bevare gyldige og nøjagtige resultater i hele denne proces.
Databasesvar
Nogle systemer er designet til at returnere en række svar fra en database til brugeren.
Når du tester disse applikationer, skal du fastsætte en bestemt periode, hvor applikationen skal svare, og måle antallet af svar, den får fra databasen, i forhold til tidligere iterationer af den samme testcase.
To typer af end-to-end-testning og metoder
Som med andre former for testning er der forskellige typer end-to-end-testning, som udviklere bruger, og hver type har forskellige fordele afhængigt af dine mål.
End-to-end-testning omfatter horisontale test og vertikale test, som adskiller sig væsentligt fra hinanden med hensyn til omfanget af testningen og de metoder, som udviklerne anvender i processen.
Disse omfatter:
1. Horisontale prøver
En horisontal test finder sted, når brugerstrømme verificeres på tværs af flere applikationer på samme tid, hvor alle applikationerne kører fra start til slut. På den måde sikrer du, at alle processer fungerer korrekt på tværs af en række forskellige brugssituationer, og at forskellige former for data ikke har en negativ indvirkning på applikationens ydeevne.
Den største fordel ved horisontal e-to-e-testning er, at du sikrer, at systemerne fungerer korrekt for en række brugere, der alle bruger den samme version af applikationen.
For at fuldføre horisontal testning skal du fokusere på at få oprettet miljøer for alle cases, før du starter end-to-end-testen.
Alle applikationer skal fungere på samme tid, hvilket betyder, at dette heller ikke er ideelt for virksomheder, der endnu ikke har afsluttet udviklingsprocessen for deres applikationer.
Denne form for e-to-e-test er grundig set fra brugernes synsvinkel og sikrer, at dine brugere har et niveau af ydeevne, som de forventer, ud over den grundlæggende funktionalitet.
2. Lodrette prøver
I stedet for at fokusere på den måde, som hele applikationen fungerer på, fokuserer vertikale end-to-end-test på applikationen lag for lag.
Dette indebærer en mere granulær proces, hvor du gentagne gange tester alle de individuelle aspekter af en applikation, idet du tester inden for et system i stedet for på tværs af applikationer, som du ser det ved horisontal testning.
Den største fordel ved vertikal e-to-e-testning er, at du får et mere detaljeret og detaljeret perspektiv på den måde, dit system fungerer på. Du kan se, hvilke problemer der er på hvert enkelt niveau i systemet, og arbejde på at løse dem efter testprocessen, i stedet for blot at vide, at der er et problem et eller andet sted i applikationen.
Det kan dog tage længere tid at gennemføre korrekt i forhold til at arbejde med horisontale tests.
Opklaring af noget forvirring – End-to-End-test vs. systemtest vs. UAT-test vs. funktionel test
Der er flere forskellige typer af test, som folk forveksler med end-to-end-testning, når de diskuterer den måde, som organisationer vurderer og løser problemer med deres software på.
Da forskellige organisationer og programmer har unikke behov, er det vigtigt at imødekomme disse med den rigtige form for testning.
Se nogle af de forskellige testformer nedenfor med definitioner, eksempler og hvornår de kan anvendes.
1. Hvad er systemtestning? (definition, eksempler, hvornår vi anvender den)
Systemtestning er en version af softwaretestning, hvor man undersøger softwareproduktet i sammenhæng med hele systemet.
Dette er en form for end-to-end-testning, da den omfatter hele produktet; systemtestning går dog videre og fastslår, hvordan produktet er forbundet med resten af hardwaren og firmwaren på det pågældende system.
Systemtestning indebærer f.eks. at se, om et program kan køre på et bestemt system og undersøge de ressourcer, som det bruger i den forbindelse.
Gennemfør systemtestning i de sidste faser af produktudviklingscyklussen, kort før det endelige produkt frigives.
Ved at bruge denne form for end to end-test sikrer softwareingeniører, at deres programmer kører pålideligt på en række maskiner, og de kan bruge resultaterne i optimeringsprocessen, så programmet fungerer endnu mere effektivt end det gjorde tidligere.
2. Hvad er UAT-testning? (definition, eksempler, hvornår vi anvender den)
UAT-testning står for User Acceptance Testing og er en form for testning, som ikke udføres af en person i udviklingsteamet, men snarere af et medlem af den tilsigtede målgruppe.
Slutbrugerne kan interagere fuldt ud med softwaren før frigivelsen, så udviklerne har tid til at løse eventuelle problemer, som brugerne opdager.
Det mest almindelige eksempel på dette er en gratis betatest af et spil før lanceringen, hvor udviklerne vælger en bestemt målgruppe til at få feedback.
Anvend denne proces helt til sidst i udviklingsprocessen. Dette er den første version af produktet, som du præsenterer for nogen uden for virksomheden, så det er nødvendigt at have så mange funktioner og så god en finish som muligt på plads som muligt.
De eneste ting, som en virksomhed bør forsøge at afslutte efter UAT-testning, er at rette fejl, der opstår i UAT-processen, og reagere på feedback, som du modtager fra brugerne.
3. Hvad er funktionel testning? (definition, eksempler, hvornår vi anvender den)
Funktionel testning er en form for softwaretestning, der finder sted for at sikre, at et program opfylder alle de grundlæggende funktioner, der var en del af designbeskrivelsen for projektet.
Dette indebærer, at der skal leveres passende input til testene, og at de skal sammenlignes med output, hvilket viser, at systemets kernefunktionalitet er på plads.
Et eksempel på dette er at skabe en skakmotor eller lignende spilregel og sikre, at den kender de grundlæggende regler og handler korrekt, når den spiller.
Afslut denne testning midtvejs i udviklingsprocessen, når du mener, at du har alle programmets grundlæggende funktioner på plads.
Dette viser, at programmets kernefunktioner er funktionelle, og at du har et godt basisniveau af ydeevne uden at skulle justere backend-koden, så kun brugergrænsefladen og andre æstetiske funktioner skal løses.
4. Hvad er forskellen mellem End-to-End test og systemtest?
Hvor end-to-end-testning blot er en analyse af et stykke software og hvor effektivt det fungerer, omfatter systemtestning også en vurdering af den hardware, som det kører på, og en del af den firmware, f.eks. operativsystemet, som det interagerer med.
5. Hvad er forskellen mellem End-to-End-test og UAT-test?
Hovedforskellen mellem E2E- og UAT-testning er, at UAT-testning foregår gennem en ekstern bruger.
Det betyder, at programmet skal være i en præsentabel stand, og at du er sikker på, at det vil imponere brugeren.
Hvor du kan gennemføre E2E-testning på ethvert tidspunkt i processen, kommer UAT-testning først, når produktet faktisk er klar til at blive pakket og sendt til brugerne med kun mindre redigeringer i softwaren.
6. Hvad er forskellen mellem End-to-End-test og funktionel testning?
Selv om E2E-test og funktionel test begge tester funktionaliteten af de pågældende programmer, er de stadig forskellige former for testning af et par grunde.
Den første er, at funktionalitetstest udelukkende ser på, om et program er funktionelt, i stedet for at undersøge programmets æstetiske aspekter og grænsefladeaspekter.
Funktionel testning finder også sted relativt tidligt i processen, i stedet for at være gavnlig på alle punkter i arbejdsgangen.
7. Konklusion: E2E-tests vs. systemtests vs. UAT-tests vs. funktionel testning
Selv om alle tre former for testning ligner hinanden i den forstand, at de sikrer, at produktet fungerer, er de forskellige på væsentlige punkter.
Hvis du bruger disse udtryk i flæng, kan det føre til dårlig testpraksis og problemer med kvalitetssikringsprocesser, der forveksles med hinanden, så fokuser på at lære disse udtryk og deres korrekte anvendelse, før du tager skridt til at bruge dem på arbejdspladsen.
Manuelle eller automatiserede end-to-end-tests?
Udviklere kan vælge mellem et par forskellige måder at gennemføre end-to-end-tests på, afhængigt af deres tilgængelige ressourcer og personale. Dette henviser til skiftet mellem manuel end-to-end-testning og automatisering af disse test.
Se, hvilke fordele, udfordringer og processer der er ved både manuel og automatiseret end-to-end-testning:
1. Manuel end-to-end test – fordele, udfordringer, proces
Manuel end-to-end-testning består i at gennemføre dine end-to-end-tests på egen hånd, idet du deltager i hver enkelt test “i hånden” i stedet for at få et automatisk end-to-end-værktøj til at gøre det for dig.
Virksomheder bruger typisk et dedikeret testteam til at gennemføre manuelle e-to-e-processer, da de har erfaring med at teste software og ved, hvordan man noterer fejl og fejl i systemer.
En af de største fordele ved at gennemgå en manuel end-to-end-testproces er, at du selv ser alle potentielle problemer og bemærker fejl i softwaren, som en computer måske ikke kan se.
Processen kan dog være relativt langsom i forhold til automatisering af dine testprocesser.
I disse tilfælde gennemgår et menneske, f.eks. en af udviklerne, applikationen og udfylder alle funktionerne og lærer hurtigt, hvad der fungerer og ikke fungerer i den tilgængelige softwarepakke.
Dette følger en planlægningsproces, hvor end-to-end testeren forbereder et specifikt sæt af tests og lærer de målinger, som han/hun sigter mod at spore gennem hele processen, efter et strengt sæt af mål.
2. Automatisering af test fra ende til ende – fordele, udfordringer, proces
Testautomatisering henviser til processen med at gennemføre E2E-test ved hjælp af et computerprogram til automatisering af test. Det meste af automatiseringen sker ved hjælp af specialiserede værktøjer til end-to-end-testning, der er designet til at arbejde med specifikke programmeringssprog og programtyper.
Der er stadig menneskelig involvering i denne proces, men kun i den indledende kodning og i den endelige analyse.
En af de største fordele ved automatiseret end-to-end-testning er, at større applikationer og programmer kræver langt mere grundig vurdering og analyse, da flere og flere funktioner og brugergrænsefladeelementer bliver en del af arbejdsgangen.
Automatiserede e-to-e-tests finder disse mindre variationer. En af udfordringerne ved automatiseret testning er imidlertid, at det menneskelige øje opdager nogle forskelle, som en computer ikke kan se, hvilket betyder, at automatiseret testning fra ende til ende nogle gange overser fejl, som menneskelige testere ikke kan overse.
For at gennemføre automatiseret testning fra ende til anden skal du beslutte dig for dine testcases, skrive dem ud som kode og integrere dem i dit værktøj til softwaretestning.
Derefter skal du køre testen og modtage resultaterne og bruge oplysningerne til at finde ud af, hvordan du kan justere programmet.
Udfyld så vidt muligt hver enkelt testcase separat, da forskellige testcases søger forskellige ting. Ved at køre dem uafhængigt af hinanden mindskes risikoen for, at testene forstyrrer hinanden.
3. Konklusion: Manuel eller end-to-end testautomatisering?
Beslutningen om, hvorvidt manuel testning eller automatisering er den ideelle løsning, afhænger helt og holdent af dine behov som udviklingsteam.
Mindre projekter kan testes grundigt af et team manuelt, der kæmmer koden igennem for at finde eventuelle fejl og noterer dem med det samme.
Derimod er større projekter simpelthen for store til at blive testet manuelt og kræver en masse automatisering af softwaretestning.
Tænk over dit projekts specifikke behov, og tilpas dine e-to-e-testplaner i overensstemmelse med det, du får at vide om testens omfang.
Budgettet er ikke nødvendigvis en faktor, da testautomatisering i de fleste tilfælde findes i både gratis og enterprise-versioner.
Det skal du bruge for at gennemføre end-to-end-test
Der er nogle få ting, som du skal have, før du går i gang med end-to-end-test, uanset om du fokuserer på den manuelle metode eller automatiserer dit arbejde.
Disse omfatter:
1. Repræsentativ hardware
Mange udviklere har adgang til avanceret hardware og bruger moderne pc’er som værktøj til at udvikle deres software. Dette er ideelt til strenge tests og til at kontrollere funktionaliteten af forskellige aspekter af softwaren, men det repræsenterer ikke nøjagtigt slutbrugerens foretrukne hardware.
Anskaf hardware, der passer bedre til den gennemsnitlige brugers profil, da du får et mere præcist billede af de problemer, som de har med det program, du tester fra ende til anden.
Det er f.eks. ideelt at bruge en mobiltelefon til en telefonapp og en industri-pc til et stykke produktionssoftware.
2. Værktøjer til automatisering af test
Når du arbejder med testautomatisering, skal du sikre dig, at du har test-software til rådighed fra starten af e-to-e-testen.
Vælg din software med omhu, da både gratis og virksomhedsversioner af testprogrammer har deres egne fordele og potentielle ulemper. Undersøg den software, du bruger, og lav nogle øvelseskørsler for at reducere den tid, du bruger på at tilpasse dig testplatformen.
Mange end-to-end softwarepakker tilbyder grundige vejledninger eller eksperter, som f.eks. ZAPTESTs testsupport, og nogle eksperter opretter tutorials på YouTube og andre relaterede websteder for at give mere indsigt.
3. En sammenhængende plan
En af de vigtigste ting at have, når man går ind i den samlede testproces, er en sammenhængende testplan.
Dette er et dokument, der noterer den softwareversion, du tester, de specifikke tests, du udfører på softwaren, den hardware, du bruger, og den testplatform, der er i brug.
Jo mere grundig din dokumentation er, jo mere nyttig læring får du af de e-to-e-tests, du gennemfører.
Hvis din organisation udvikler meget software, kan du oprette en skabelon til testplanlægning og bruge den til hver test for at opnå større ensartethed.
4. Komplet software
Gennemførelsen af softwaretestprocessen kræver et komplet stykke software, som er tilgængeligt for testteamet fra ende til ende.
I disse tilfælde er det vigtigt at have den mest opdaterede softwarepakke, da en nyere version betyder, at eventuelle resultater er så repræsentative som muligt i forhold til den endelige version.
Jo tættere på udgivelsen af softwarepakken er, jo flere brugbare resultater får teamet fra E2E-testningen.
Kompilér fra den nyeste kode, du har til rådighed lige før testen, for at sikre, at du ikke ved et uheld arbejder med en gammel version.
Gennemgående automatiseringstestproces
Der er en detaljeret proces, der skal følges, når du gennemfører end-to-end-testning ved hjælp af automatiserede midler, med trin, der omfatter:
1. Overvej dine e-to-e-testsager
Start med at tænke over de testcases, som du ser på i din end-to-end-testning.
For eksempel omfatter testcases i tidlige tests at sikre, at funktionaliteten er korrekt, og at alle softwarens funktioner fungerer og giver de korrekte resultater.
Senere i processen skal du overveje testcases som f.eks. programmets effektivitet og den hastighed, det arbejder med.
Afvej dine testcases i forhold til projektets behov afhængigt af udviklingsstadiet og mængden af end-to-end-test, der tidligere er blevet gennemført.
2. Kodning af testcases fra ende til ende
Når du har besluttet dig for dine testcases, skal du kode de specifikke testcases ind i den test-software, du bruger.
Vær forsigtig med at kode dine end-to-end testcases, da en upræcist kodet testcase måske ikke tester det rigtige eller måske søger efter den forkerte måling i slutningen af processen.
Dette er udelukkende en del af automatiseringstestprocessen, da manuel testning blot består af en tester, der vurderer kvaliteten af programmet uden at kræve nogen computerindgriben.
Udfør så vidt muligt én test ad gangen for at sikre, at resultaterne er ensartede og uden forstyrrelser.
3. Kør dine E2E-tests
Når alle testene er kodet ind i din test-software, skal du køre testene.
Afhængigt af arten af de tests, du udfører, kan det tage alt fra et øjeblik til et par minutter, og der er forskellige faktorer, herunder størrelsen af den applikation, du tester, og de specifikke tests, du udfører.
De fleste E2E-testautomatiseringsprogrammer vil informere dig om den resterende tid i processen og det stadium i processen, som den befinder sig på.
Manuelle tests kræver mere tid og kræfter, da testeren gennemgår alle funktioner og processer i applikationen.
4. Lær af resultaterne
Ved afslutningen af selve testen modtager programmører og testere en række målinger og andre oplysninger om testen.
Brug disse oplysninger til at få mere at vide om din applikation eller dit program, f.eks. hvilke områder der skal forbedres, og hvilke specifikke processer der skal skræddersys for at fungere efter en højere standard.
Testmetrikker er nogle af de mest værdifulde data, som en organisation modtager, og ved at bruge dem korrekt øger du kvaliteten af dit slutprodukt betydeligt. Opbevar langtidsdata fra tidligere tests for at foretage en mere grundig sammenligning fra version til version.
Bedste praksis for end-to-end-testning
At følge bedste praksis inden for enhver branche og kompetence er det første skridt til at sikre bedre resultater.
Nogle af de bedste metoder til end-to-end test i softwareudviklingsprocessen omfatter:
1. Definer din testdækning
Når du gennemfører en E2E-softwaretest, skal du definere testens dækning korrekt.
Dette omfatter, hvor meget af applikationen der testes, og hvilke specifikke målinger du kigger efter i testene.
Ved at definere disse oplysninger klart og tydeligt i starten af processen ved du, hvad du leder efter under hele processen, og dine resultater er lette at fortolke. “Datastøj” elimineres, f.eks. oplysninger fra andre applikationer eller tests.
2. Fokus på effektive test
Effektivitet er en grundlæggende del af testning, da jo flere ressourcer du bruger i testprogrammet, jo mere tager du fra selve applikationen.
For at imødegå dette bør du fokusere på at opstille meget enkle og effektive test.
Hvis hver test omhandler forskellige og relativt små parametre, kræver det færre ressourcer og betyder, at resultatet er så nøjagtigt som muligt, hvilket giver mere brugbare data ved projektets afslutning.
3. Opret et simpelt anmeldelsessæt
Meddelelsessæt er værktøjer, som testerne bruger til at modtage oplysninger om testene.
Når du opretter et sæt meddelelser, skal du lægge vægt på klarhed og enkelhed. Hvis du nemt forstår fejlkoderne, f.eks. ved at oprette en kode, der angiver problemets art, og hvor problemet er i systemet, forbedrer du dine chancer for at finde problemerne i tide og reagere på dem på en måde, der løser programmet så hurtigt som muligt.
Typer af output fra en end-to-end-test
Når du gennemfører en end-to-end-test, er der flere forskellige typer output, som du skal kigge efter, og som hver især giver en unik indsigt.
Nogle af disse typer output, som du skal kigge efter, er bl.a:
1. Data
Dette sker, når resultatet af end-to-end-testningen er en simpel datametri.
Data omfatter den tid, det tager for en proces at returnere et nøjagtigt output, resultatet af en beregning eller endda et billede fra en database.
2. SANDT/FALSK
Nogle E2E-tests giver et TRUE- eller FALSE-output, der angiver, om et sæt parametre eller betingelser er sande eller falske ved afslutningen af en proces.
Dette er nyttigt for sikkerhedssystemer, da det at returnere FALSE til sikkerhedsbetingelser kan være en udløsende faktor for en alarm.
3. Fejltilstande
En nyttig type output er idéen om fejlstatus, og om processerne i et program fungerede som forventet.
I disse tilfælde vil programmet efter at have kørt reagere ved at angive, om det har gennemført sine processer eller ej, med specifikke fejlmeddelelser og koder, der vises i tilfælde af fejl.
Eksempler på end-to-end-test
Det er langt nemmere at forstå end-to-end-tests, når man har nogle eksempler på både vellykkede og mislykkede forsøg på processen.
Her er nogle eksempler på end-to-end-test i udviklingsprocessen:
1. Manuelle end-to-end-tests
En virksomhed er i de sidste faser af sin produktudvikling og har skabt et simpelt webværktøj til beregning af skat på en freelanceindkomst.
Udviklingsteamet gennemgår en manuel E2E-testproces og kontrollerer, at programmet reagerer med de rigtige værdier, og at alle funktioner i brugergrænsefladen fungerer, som udviklerne forventer.
Holdet finder nogle små fejl i beregningen og reagerer på dem ved at opdatere programmet, inden de gennemfører den næste test.
2. Automatisk end-to-end-test
En udvikler af en stor webapp, der er designet til at beregne virksomheders økonomi, er ved at frigive sit produkt og skal forinden igennem en E2E-testproces.
Teamet koder sine tests ind i en automatisk testplatform og modtager resultaterne og bruger målingerne til at sikre funktionalitet og effektivitet.
Efterhånden som programmet er effektivt, fortsætter testerne med at forbedre softwarens ydeevne og reducere ressourceforbruget inden UAT-testning.
3. End-to-end-test af lav kvalitet
En virksomhed ønsker at offentliggøre sin software så hurtigt som muligt.
Udviklerne gennemgår appen hurtigt og undersøger funktionerne meget kortvarigt uden at planlægge deres end-to-end-test på forhånd.
Virksomheden overser nogle af de problemer i softwaren, som kunderne ser efter udgivelsen af produktet. Tab af omdømme er en af de største konsekvenser af denne dårlige test, og virksomheden har også refunderet nogle af sine køb.
Typer af fejl og fejl, der opdages gennem end-to-end-testning
Opsporing af fejl og fejl er et af hovedmålene med enhver testproces inden for softwareudvikling, og nogle fejl og problemer er almindelige, f.eks:
1. Visuelle fejl
Visuelle fejl opstår, når programmet ser anderledes ud, end udviklerne har tænkt sig.
Nogle af problemerne i dette tilfælde omfatter teksturer, der ikke indlæses i virtuelle miljøer, billeder, der vises forvrænget eller i den forkerte størrelse, og tekst, der ikke vises i en brugergrænseflade.
Et stykke software med visuelle fejl kan virke afskrækkende på forbrugere, der i første omgang vurderer software ved første øjekast.
2. Manglende funktionalitet
Funktionalitet er den måde, som et stykke software forventes at opføre sig på, og manglende funktionalitet betyder blot, at et program ikke udfører sit forventede arbejde.
Det kan f.eks. være, at tekst ikke bliver udskrevet korrekt, at der ikke kan indsamles oplysninger fra en database, eller at det går langsomt i forhold til det, som kunden og udvikleren forventer.
3. Fejlhåndteringsfejl
Problemer med fejlhåndtering er, når et stykke software har et problem, men ikke kan definere, hvad problemet er. Dette er årsagen til lange og komplicerede fejlmeddelelser i software.
Hovedproblemet med fejlhåndteringsproblemer er, at en bruger ikke kan finde ud af, hvad problemet er, og derfor kan han ikke løse problemet.
Fejlhåndtering er også et vigtigt problem for udviklere, da det udgør en hindring for effektiv fejlretning.
Fælles målinger af end-to-end-testning
Når du gennemfører en E2E-testproces, er det et must at have enkle målinger på plads, så du får et stærkt fundament, hvorfra du kan sammenligne forskellige iterationer af en applikation.
Nogle eksempler på end-to-end testmetrikker er:
1. Testens udførelsestid
Det er den tid, det tager et automatiseret system at gennemføre alle end-to-end-testene. Jo hurtigere denne tid er, jo mere effektiv er softwaren.
Ved at sammenligne testudførelsestiden mellem testene kan udviklerne se, om de effektivt har øget softwarens hastighed siden den sidste iteration.
2. Antal fejl og mangler
Nogle udviklere registrerer antallet af fejl fra den ene version til den næste. Dette er et rå tal, og ved at se summen falde betydeligt fra version til version ved udviklerne, at de løser væsentlige problemer i koden.
3. Fejltæthed
Fejltæthed henviser til antallet af fejl, der opstår, når der tages højde for kodens størrelse.
Hvis f.eks. en applikations kode vokser med et firedobbelt, men fejlfrekvensen kun stiger med 50 %, viser fejltætheden, at der er tale om en forbedring snarere end en forøgelse af de problemer, som applikationen har.
Bedste gratis værktøjer til test fra ende til anden
Når du skal lave en end-to-end-test, kan du starte med at bruge et gratis værktøj.
5 bedste gratis værktøjer til automatiseret testning fra ende til anden
Nogle af de bedste gratis værktøjer til automatiseret testning fra ende til ende er:
1. ZAPTEST FREE Edition
ZAPTEST Free Edition er den version af ZAPTEST-platformen, som er tilgængelig for alle brugere uden at skulle betale.
Gratisversionen fokuserer på automatisering og giver dig mulighed for at udføre fejlfindingsøvelser i en Just-in-Time-plan. Gennemførelse af e-to-e-tests på denne måde understøtter især organisationer, der anvender agil udvikling, da det giver langt hurtigere gennemløbstider.
2. Katalon
En open source-mulighed, der giver de grundlæggende automatiseringsværktøjer i et kodeløst system.
Let at udvide, men kræver nogle udvidelser og yderligere funktioner, som er bag en betalingsmur for at få det bedste ud af softwaren.
Et andet problem er, at det kører langsommere end nogle alternativer som f.eks. Selenium.
3. Selen
Selenium er også en open source-platform og fungerer med en række forskellige programmeringssprog og browsere, hvilket er en meget fleksibel løsning.
Kan være lidt for komplekst for brugere, der ønsker at lære mere om automatisering af tests. Dette er heller ikke kun til test, men fungerer som et generelt værktøj til automatisering af browseren.
4. Watir
Watir er et ekstremt let open source-testværktøj. Det er ideelt til at teste meget små stykker kode, men afhængigheden af manuelle input betyder, at det er svært at udføre mere intensive opgaver og processer.
Brug Watir til at understøtte manuel E2E-testning, men ikke som et rent automatiseringsværktøj til dit arbejde.
5. Capybara
Capybara forsøger at efterligne en brugers adfærd, når han/hun arbejder med software, men arbejder primært med webapps, hvilket gør det lidt mere begrænset end ideelt som værktøj.
Til mindre end-to-end-tests kan dette være godt, men med enkeltstående programmer har Capybara svært ved at følge med rivalerne.
5 bedste værktøjer til end-to-end-testning af virksomheder
Hvis et gratis end-to-end-testværktøj ikke er tilstrækkeligt, fordi din applikation er for stor, eller fordi værktøjet ikke har den funktionalitet, du har brug for, er et virksomhedsværktøj altid et alternativ.
Nogle af de værktøjer til end-to-end-testning på virksomhedsniveau, som du kan overveje at bruge, omfatter:
1. ZAPTEST ENTERPRISE Edition
Enterprise Edition af ZAPTEST er et mere grundigt værktøj end den gratis version og tilbyder funktioner som ubegrænsede licenser, kodefri grænseflade, 1SCRIPT-teknologi på tværs af platforme, enheder og applikationer samt fuldtidsadgang til en ZAP-certificeret ekspert, der arbejder eksternt sammen med klientens team som en del af det.
Med hensyn til værdi for pengene og kvalitet er dette den perfekte løsning til end-to-end softwaretestning, uanset dit eksisterende erfaringsniveau.
2. BugBug
BugBug er et værktøj til browsertestning designet til agile teams, og selv om det er relativt nemt at bruge, er det ikke ligefrem en fordel for fleksibiliteten, fordi det fokuserer så meget på browsere og agil udvikling.
Når der udvikles stor software i en mere traditionel proces, har BugBug det svært og er mindre velegnet til e-to-e-testere.
3. Cypress
Cypress er et bredt anerkendt testværktøj, men det er designet til UI-testning, hvilket betyder at det ikke understøtter backend-testning, som er nødvendigt for effektive E2E-test.
Værktøjet er stærkt i de sidste faser af udviklingen, men dets manglende anvendelse til funktionalitetstest gør det til et relativt svagt E2E-værktøj.
4. Testsigma
Et open source-værktøj, der fokuserer på vedligeholdelse af AI-test, hvor cloud-lagring potentielt udgør en sikkerhedstrussel på et allerede højt prisniveau.
Ret funktionel, men mangler den personlige support, som ZAPTEST tilbyder.
5. Autify
Ideel til nybegyndere og parallel testning, men prisfastsættelsen på forespørgsel kan føre til forvirring omkring langsigtet planlægning for organisationen.
Nyttig i de tidligere faser af testningen, men kan have svært ved at klare nogle af de mere komplekse opgaver, som du udfører i End-to-End-testprocessen.
Tjekliste for test fra ende til ende
Gennemførelse af end-to-end-test skal være en grundig proces, og derfor bruger mange teams en tjekliste for at sikre, at de tester alle de vigtige aspekter af en applikation.
Nogle af de ting, der skal tilføjes til din tjekliste for E2E-testning, er:
1. Test af funktionalitet
Test softwarens funktionalitet generelt set fra en brugers synspunkt, idet du noterer dig, hvor effektiv funktionaliteten er, og hvilke funktioner der er problemer med.
2. Test af ydeevne
Test softwarens ydeevne, og sørg for, at den kører effektivt uden at opbruge ressourcer, herunder vurdering af den tid, det tager softwaren at udføre opgaver, og belastningstest.
3. Test af data
Test lagringen af applikationen, så det sikres, at alle data er sikre og organiseret på den rigtige måde, samtidig med at det er let at finde specifikke poster, når det er nødvendigt.
4. Brugervenlighedstest
Test, at alle brugergrænsefladerne er anvendelige og giver mening at interagere med fra en kundes perspektiv, som ikke har været involveret i design- og udviklingsprocessen.
5. Sikkerhedsafprøvning
Test for eventuelle sikkerhedsfejl eller sårbarheder i applikationen for at beskytte applikationen mod tredjeparter eller eventuelle huller, der allerede findes i kodebasen for at overholde GDPR-standarderne.
Konklusion
Afslutningsvis er end-to-end-test en utrolig grundig metode til at sikre, at et program fungerer, som du forventer, at det skal.
Især før udgivelsen er det nyttigt at bruge end-to-end-test et meget fleksibelt værktøj, som udviklere af alle størrelser kan implementere i deres processer og bruge til at sikre, at de leverer et kvalitetsprodukt til slutbrugeren.
Tag dig tid til at overveje den specifikke type test, du bruger, uanset om den er manuel og horisontal eller automatisk og vertikal, men alle udviklere bør se end-to-end-testning som en mulighed for at forbedre deres slutprodukter.
Ofte stillede spørgsmål og ressourcer
Da end-to-end-testning er et stort udviklingsområde, kan det give anledning til mange spørgsmål. Læs vores ofte stillede spørgsmål for at få mere at vide om end-to-end-tests, og hvordan du kan forbedre kvaliteten af dine tests i fremtiden.
1. De bedste kurser om end-to-end testautomatisering
En af de bedste måder at forbedre dine standarder inden for end-to-end-testning på er ved at deltage i et kursus. Nogle af de mere populære kurser for personer, der ønsker at forbedre deres E2E-testkompetencer, omfatter:
– End to End Testing Implementation fra Skillsoft, et kursus, der tager lidt over en time og giver et indledende grundlag for læring.
– Kursus i automatiseret testning fra PluralSight, der lærer brugerne, hvordan de kan gennemføre test ved hjælp af automatisering og software.
– E2E Web Testing fra TestCafe, et kort kursus, der dækker det grundlæggende i at automatisere dine testprocesser ved hjælp af NodeJS.
– Software Testing and Automation Specialization fra Coursera, der dækker de fleste færdigheder og kompetencer inden for softwaretestning.
– Introduktion til softwaretestning fra Coursera er ideel for alle, der er helt nye inden for softwaretestning.
2. Bedste bøger om End-to-End-testning?
Nogle mennesker foretrækker at udvikle deres færdigheder i deres eget tempo og gennemgå en læseproces frem for at gennemføre et komplekst kursus som led i udviklingen af deres E2E-testfærdigheder.
Nogle af de bedste bøger, der findes om E2E-testning af software, er bl.a:
– “Complete Guide to Test Automation” af Arnon Axelrod
– “Tips til automatisering af softwaretestning” af Gennadiy Alpaev
– “Hands-On Mobile App Testing” af Daniel Knott
– “Exploratory Software Testing” af James A. Whittaker
– “Test af udviklere: Bygning af kvalitet i software” af Alexander Tarlinder
3. Hvad er de 5 vigtigste interviewspørgsmål om End-to-End Testing?
Når du søger en stilling i en udviklingsvirksomhed, stiller mange rekrutteringsteams spørgsmål, der specifikt vedrører E2E-testning.
Nogle af de vigtigste interviewspørgsmål, som kandidaterne får, er:
– Hvilke erfaringer har du med E2E-testning på en aktiv arbejdsplads, og hvilke udfordringer stod du over for i processen?
– Kan du fortælle mig om forskellene mellem UAT- og E2E-testning, og hvornår ville du bruge hver af testtyperne i en udviklingscyklus?
– Hvordan adskiller automatiseret E2E-testning sig fra manuel E2E-testning, og hvorfor bruger virksomheder hver af disse metoder?
– Hvordan har du tidligere løst problemer, når du har brugt E2E-testning?
– Hvad er fordelene ved at bruge E2E-test på en udviklingsarbejdsplads, og hvorfor er disse fordele vigtige?
4. De bedste YouTube-vejledninger om end-to-end-testning
YouTube er et af de bedste steder at lære et udvalg af færdigheder, og der er masser af YouTube-tutorials, som brugerne kan bruge til at udvikle deres færdigheder. Nogle ideelle YouTube-tutorials for alle, der arbejder på deres E2E-testfærdigheder, er bl.a:
– “Tutorial om softwaretestning nr. 28 – Testning fra ende til anden i softwaretestning” af Software Testing Mentor
– “Gratis komplet kursus om manuel testning fra ende til anden – juli parti 2022” af Performance Testing Basic og Advanced
– “Det er tid til end-to-end-test!” af Academind
5. Hvordan opretholder man end-to-end-tests?
Ved at vedligeholde end-to-end-tests betyder, at du skal holde dine testprotokoller kørende under hele udviklingsprocessen.
En af de bedste måder at sikre, at du vedligeholder dine tests på, er at udføre de samme tests gentagne gange, hvilket sikrer en større grad af konsistens fra test til test.
Fokuser også på enkelhed i denne proces, da jo mere enkle testene er, jo nemmere er det at vedligeholde dataene, og jo nemmere er det at gentage testene for fremtidige datasæt.
6. Hvad er End-to-End-testning i QA?
End-to-end-testning i QA henviser til den rolle, som E2E-testning spiller i kvalitetssikringsprocesser. I disse tilfælde er processen ens, idet testerne undersøger hele applikationen eller programmet, men de specifikke mål med testen er forskellige.
Målet i disse tilfælde er at sikre et højt kvalitetsniveau i brugeroplevelsen, snarere end at sikre, at alt er så funktionelt og effektivt som muligt.
QA-testning finder normalt sted, efter at udviklingsprocessen er afsluttet.