Varje testares mål är att känna förtroende för programvaran genom kontinuerlig testning. Vi kan sova bättre om natten när vi vet att färre fel kommer att upplevas i produkterna eftersom en omfattande testprocess finns på plats. Att välja rätt teststrategier är minst lika viktigt som att testa tillräckligt mycket.
Jag blev en gång ombedd att skapa en testplan för en komplex nätverksenhet. Målet var att uppnå 100 % täckning av olika anslutningar och deras kombinationer. En snabb beräkning visade att det skulle ta mer än 40 tusen år att konfigurera och köra sådana tester.
Ju mer komplexa dina system är, desto viktigare är det att hitta en teststrategi som både är genomförbar och framgångsrik.
Två testperspektiv och testmetoder som ofta har dykt upp på senare tid kallas testning från början till slut och regressionstestning.
Syftet med regressionstestning är att verifiera att det som fungerade i går fortfarande fungerar i dag efter eventuella ändringar.
Vid testning från början till slut testar man en affärsprocess som helhet, därav ”från början till slut”.
Det är en vanlig missuppfattning att betrakta dessa två strategier som samma sak, eftersom regressionstestning ofta även omfattar testning från början till slut. Det vore dock ett misstag att anta att testning från början till slut enbart är regressionstester.
Regressionstestning bör ske på alla testnivåer, med början i enhetstesterna. Testning från början till slut omfattar regressionstestning, men testning från början till slut är sällan möjlig på de lägre testnivåerna eftersom alla delar av processen som ingår måste finnas på plats för att den ska kunna testas som helhet.
Varje typ av testning har ett eget och särskilt syfte. Var och en har sin egen uppsättning fördelar, utmaningar och egenskaper som gör dem unika för olika programvarumål.
På tal om enhetstestning: ta en titt på våra rekommendationer för de 10 bästa verktygen för enhetstestning.
Testning från början till slut: Vad det är – och vad det inte är
Testning från början till slut innebär att testa ett arbetsflöde från början till slut. Många arbetsflöden eller affärsprocesser sträcker sig numera över flera applikationer och system. Därför är de traditionella begreppen applikationstestning eller systemtestning kanske inte längre tillräckliga på egen hand.
Testning från början till slut mäter affärsprocessens funktionalitet och prestanda. På grund av sin natur är det inte alltid möjligt att genomföra testning från början till slut i en normal testmiljö. I stället krävs ofta en simulerad miljö eller den verkliga produktionsmiljön efter lansering.
Tester från början till slut identifierar främst problem, beroenden och integrationsproblem.
Den här typen av testning kan låta lik användaracceptanstestning (UAT), eftersom den gör det möjligt för testare att återskapa slutanvändarnas beteende, till exempel genom att spegla en transaktion via en webbplats, vilket är en vanlig affärsprocess för konsumenter. I modern utveckling med snabba cykler måste testning från början till slut dock vara en kontinuerlig aktivitet snarare än en renodlad insats för acceptanstestning.
När man utför testning från början till slut är det avgörande att simulera en verklig miljö, vilket ofta innefattar interaktioner med databaser. För en sömlös upplevelse kan du överväga att använda förstklassig programvara för databashantering.
Fördelarna med och utmaningarna vid testning från början till slut
De flesta företag i dag kör både i molnet och utanför molnet, vilket är ett starkt argument för att noggrant övervaka integrationer. Vanligtvis är testning från början till slut utmärkt för heterogena system, eftersom den gör det möjligt att kontrollera varje separat system och lager, från applikationens klientdel och serverdel till databasen.
Men det är här vi stöter på utmaningen: det kräver att testare skapar och kör många långvariga och repetitiva tester, vilket är ett arbetskrävande arbete. En större testsvit innebär att underhållet kräver mer tid och ansträngning. Testare som arbetar med testning från början till slut finner sig ofta helt uppslukade av att skapa och underhålla testmiljöer.
Eftersom testning från början till slut syftar till att efterlikna användarinteraktioner kan den inte utföras enbart i utvecklingsmiljön. Produktionsmiljön är dock inte alltid tillgänglig och kan vara känslig för testavbrott, exempelvis på grund av programuppdateringar.
Omfattande testautomatisering blir nödvändig vid korrekt testning från början till slut. Testarna bör fokusera sina insatser på att utforma tester och analysera testresultaten, snarare än på att underhålla befintliga tester och konfigurera verktyg och miljöer. En plattform för testautomatisering som minskar underhållsbelastningen, automatiserar testkonfigurationen och klarar parallell testkörning kan spara mycket arbete och ännu mer tid.
Regressionstestning
Regressionstestning blir aktuell när systemet har genomgått förändringar. Alla som har arbetat med programvarutestning vet att förändringar på ett ställe kan orsaka funktionsfel någon annanstans.
Du kan se regressionstestning utföras i praktiken efter något av följande scenarier: tillägg av nya funktioner, buggfixar, uppdateringar eller nya versioner. Testare kan utföra ett delvis eller fullständigt urval av befintliga testfall.
Ta det här exemplet:
Föreställ dig en affärsprocess som börjar med att en konsument köper något med hjälp av en mobilapp. Affärsprocessen kan styras av en Salesforce-applikation, betalningen kan genomföras av ett externt betalningshanteringssystem och den faktiska beställningen kan behandlas i en SAP-applikation. Vissa delar av processen kan involvera människor.
Utvecklarna av de berörda applikationerna kan utveckla sina delar oberoende av varandra, kanske till och med utan att känna till varandra. En förbättring i en applikation kan orsaka ett inkompatibilitetsproblem i en annan. Det är här testning från början till slut och regressionstestning förenas på ett mycket meningsfullt sätt.
Automatisera regressionstester i din leveranspipeline
Regressionstestning gör en CI/CD-pipeline komplett eftersom den utvärderar systemets stabilitet vid varje förändring. Ingen tycker om att behöva göra om arbetet och upptäcka att något blev fel efter att programvaran redan har lanserats.
Men dessa fördelar medför utmaningar, särskilt när programvaran växer tillsammans med verksamheten. Gamla testfall kommer att köras tillsammans med nya testfall, vilket leder till att testsviterna växer och att testcyklerna blir längre. Automatisering, och så småningom AI, kommer att underlätta testkörning, underhåll och analys.
Testning från början till slut kontra regressionstestning: Vilken passar din verksamhet bäst?
Svaret är båda. Du får inte välja mellan testning från början till slut och regressionstestning.
I stället måste du avgöra hur mycket testning från början till slut du behöver utföra, hur mycket av detta som bör vara regressionstestning och hur mycket som bör vara testning av nya funktioner.
Som vi diskuterade ovan tenderar testning från början till slut att vara långsam och kräva komplexa testkonfigurationer. Det är viktigt att tillämpa automatisering för att korta ledtiderna.
Men eftersom testning från början till slut är så komplex måste automatiseringen byggas på ett sådant sätt att den tid och arbetsinsats som krävs för att underhålla automatiseringen inte äter upp den uppnådda nyttan.
Ett stort problem som testare har ställts inför är att repetitiv testning med stora testsviter i en heterogen miljö innebär långa testcykler och en arbetskrävande process. Men det finns ingen väg runt det.
Digitala affärsprocesser fortsätter att växa både vad gäller volym och komplexitet. Ett bra testteam med rätt moderna automatiseringsverktyg kan verkligen bidra till verksamhetens framgång. Vi hör också att team upptäcker att de behöver använda olika verktyg för att testa olika appar, så det kan vara bra att hitta ett som testar flera scenarier.
Du kanske också gillar: De 10 bästa verktygen för visuell regressionstestning för QA-team
