End-to-end-test kontra regressionstest: En gennemgang af to testperspektiver

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Målet for enhver testers arbejde er at have tillid til softwaren gennem kontinuerlig testning. Vi kan sove bedre om natten, når vi ved, at brugerne vil opleve færre fejl i produkterne, fordi der er en omfattende testproces på plads. Det er mindst lige så vigtigt at vælge de rigtige teststrategier som at teste tilstrækkeligt. Jeg […]

Målet for enhver testers arbejde er at have tillid til softwaren gennem kontinuerlig testning. Vi kan sove bedre om natten, når vi ved, at brugerne vil opleve færre fejl i produkterne, fordi der er en omfattende testproces på plads. Det er mindst lige så vigtigt at vælge de rigtige teststrategier som at teste tilstrækkeligt.

Jeg blev engang bedt om at udarbejde en testplan for en kompleks netværksenhed. Målet var at opnå 100 % dækning af forskellige forbindelser og deres kombinationer. En hurtig beregning viste, at det ville tage mere end 40.000 år at opsætte og udføre sådanne test.

Jo mere komplekse dine systemer er, desto vigtigere er det at finde en teststrategi, der både er gennemførlig og effektiv.

To testperspektiver og tilgange til testning, som for nylig ofte er dukket op, er kendt som ende-til-ende-testning og regressionstestning. 

Formålet med regressionstestning er at bekræfte, at det, der virkede i går, stadig virker i dag efter eventuelle ændringer. 

Ved ende-til-ende-testning tester man en forretningsproces som en helhed, deraf “ende til ende”.

Det er en almindelig misforståelse at betragte disse to strategier som det samme, fordi regressionstestning ofte også omfatter ende-til-ende-testning. Det ville dog være en fejl at antage, at ende-til-ende-testning kun var regressionstest.

Regressionstestning bør foregå på alle testniveauer, begyndende med enhedstest. Ende-til-ende-testning omfatter regressionstestning, men ende-til-ende-testning er sjældent mulig på de lavere testniveauer, fordi alle de involverede dele af processen skal være på plads, før den kan testes som en helhed. 

Hver testtype har et særskilt og forskelligt formål. Hver type har sit eget sæt af fordele, udfordringer og egenskaber, der gør den unik i forhold til forskellige softwaremål. 

Når vi taler om enhedstest, kan du se vores anbefalinger til de 10 bedste værktøjer til enhedstest.

Ende-til-ende-testning: Hvad det er – og hvad det ikke er

Ende-til-ende-testning betyder, at man tester en arbejdsgang fra ende til anden. Mange arbejdsgange eller forretningsprocesser strækker sig i dag over flere applikationer og systemer. Derfor er de traditionelle begreber applikationstest eller systemtest muligvis ikke længere tilstrækkelige alene.

Ende-til-ende-testning måler forretningsprocessens funktionalitet og ydeevne. På grund af testningens karakter er det måske ikke altid muligt at gennemføre ende-til-ende-testning i et normalt testmiljø. I stedet er et simuleret miljø eller et ægte produktionsmiljø efter lancering ofte nødvendigt.

Ende-til-ende-test identificerer primært problemer, afhængigheder og integrationsproblemer.

Denne type testning kan lyde som brugergodkendelsestest (UAT), fordi den giver testere mulighed for at genskabe slutbrugerens adfærd, f.eks. ved at efterligne en transaktion via et websted, som er en almindelig forretningsproces for forbrugere. I moderne udvikling med korte udviklingscyklusser skal ende-til-ende-testning dog være en kontinuerlig aktivitet frem for blot en indsats med fokus på godkendelsestest. 

Når man udfører ende-til-ende-testning, er det afgørende at simulere et miljø fra den virkelige verden, hvilket ofte omfatter interaktioner med databaser. For at sikre en problemfri oplevelse bør du overveje at bruge førsteklasses software til databasestyring.

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

Fordelene ved og udfordringerne ved ende-til-ende-testning

De fleste virksomheder kører i dag både i og uden for skyen, hvilket er et stærkt argument for nøje at overvåge integrationer. Typisk er ende-til-ende-testning velegnet til heterogene systemer, fordi den gør det muligt at kontrollere hvert enkelt system og lag, fra applikationens front-end og back-end til databasen. 

Det er dog her, vi støder på udfordringen: Testere skal oprette og køre mange langvarige og gentagne test, hvilket er en krævende opgave. En større testsamling betyder, at vedligeholdelsen kræver mere tid og flere ressourcer. Testere, der arbejder med ende-til-ende-testning, finder ofte sig selv dybt involveret i oprettelse og vedligeholdelse af testmiljøer. 

Da ende-til-ende-testning har til formål at efterligne brugerinteraktioner, kan den ikke udføres udelukkende i udviklingsmiljøet. Produktionsmiljøet er dog ikke altid tilgængeligt og kan være udsat for testafbrydelser som f.eks. softwareopdateringer.

Testautomatisering i stor skala bliver nødvendig for at udføre ordentlig ende-til-ende-testning. Testerne bør koncentrere deres indsats om at designe test og analysere testresultaterne i stedet for at vedligeholde eksisterende test og konfigurere værktøjer og miljøer. En platform til testautomatisering, der reducerer vedligeholdelsesbyrden, automatiserer testopsætningen og kan udføre test parallelt, kan spare en masse arbejde og endnu mere tid.

Regressionstestning

Regressionstest kommer i spil, når systemet har gennemgået ændringer. Alle, der har arbejdet med softwaretest, ved, at ændringer ét sted kan forårsage funktionsfejl et andet sted.  

Du vil se regressionstest udført i praksis efter enhver af disse situationer: tilføjelse af nye funktioner, fejlrettelser, opdateringer eller nye udgivelser. Testere kan udføre et delvist eller fuldt udvalg af eksisterende testtilfælde. 

Tag dette eksempel:

Forestil dig en forretningsproces, der begynder med, at en forbruger køber noget ved hjælp af en mobilapp. Forretningsprocessen kan være styret af en Salesforce-applikation, betalingen kan gennemføres af et eksternt betalingsbehandlingssystem, og den faktiske ordre kan behandles i en  SAP-applikation. Nogle trin i processen kan involvere mennesker. 

Udviklerne af de involverede applikationer kan udvikle deres dele uafhængigt af hinanden, måske endda uden at kende til hinanden. En forbedring i én applikation kan forårsage et kompatibilitetsproblem i en anden. Det er her, ende-til-ende-test og regressionstest mødes på en meget meningsfuld måde.

More Articles

Automatisering af regressionstest i din udgivelsespipeline

Regressionstest gør en CI/CD-pipeline komplet, fordi den evaluerer systemets stabilitet ved hver ændring. Ingen bryder sig om at skulle lave omarbejde og opdage, at noget er gjort forkert, efter at softwaren allerede er lanceret. 

Men disse fordele medfører udfordringer, især når softwaren vokser sammen med din virksomhed. Gamle testtilfælde vil blive kørt sammen med nye testtilfælde, hvilket får testsuiterne til at vokse og testcyklusserne til at blive længere. Automatisering og i sidste ende AI vil hjælpe med testudførelse, vedligeholdelse og analyse.

Ende-til-ende-test kontra regressionstest: Hvilken er den rigtige for din virksomhed? 

Svaret er begge dele. Du må ikke vælge mellem ende-til-ende-test og regressionstest. 

I stedet skal du beslutte, hvor meget ende-til-ende-test du har brug for, hvor meget af dette der bør være regressionstest, og hvor meget der bør være test af nye funktioner. 

Som nævnt ovenfor har ende-til-ende-test tendens til at være langsom og kræve komplekse testopsætninger. Det er afgørende at anvende automatisering for at forkorte gennemløbstiderne. 

Men på grund af ende-til-ende-testens komplekse karakter skal automatiseringen bygges, så den tid og indsats, der kræves til at vedligeholde den, ikke opvejer den opnåede fordel. 

Et stort problem, testere har stået over for, er, at gentagen testning med store testsuiter i et heterogent miljø betyder lange testcyklusser og en arbejdskrævende proces. Men der er ingen vej udenom. 

Digitale forretningsprocesser vokser fortsat både i omfang og kompleksitet. Et dygtigt testteam med de rette, moderne automatiseringsværktøjer kan virkelig bidrage til virksomhedens succes. Vi hører også, at teams oplever at have brug for forskellige værktøjer til at teste forskellige applikationer, så det kan være nyttigt at finde ét, der tester flere scenarier.

Du vil måske også kunne lide: 10 bedste værktøjer til visuel regressionstest for kvalitetssikringsteams

Esko Hannula
Esko Hannula is VP Product Line Management at Copado, a DevOps and testing solution for low code SaaS platforms that run the world’s largest digital transformations. Backed by Insight Partners, Salesforce Ventures and SoftBank Vision Fund, Copado accelerates multi-cloud, enterprise deployments by automating the end-to-end software delivery process to maximize customers’ return on their cloud investment.
Follow the author:

You may also like