När ny programvara släpps är behovet av att testa ny funktionalitet uppenbart. Det är dock lika viktigt att köra om gamla tester som applikationen tidigare klarat. På det sättet kan vi vara säkra på att den nya programvaran inte introducerar gamla defekter eller skapar nya i programvaran. Vi kallar denna typ av testning som regressionstestning. Under hela denna artikel kommer vi att undersöka regressionstesteri detalj. Om du är ny inom programvarutestning, se till att du också läser .
Låt oss ta en titt på ämnen som behandlas i den här artikeln:
- Vad är regressionstestning?
- Fördelar med regressionstestning?
- När ska jag tillämpa regressionstestning?
- Vilka är typerna av regressionstestning?
- Hur genomförs regressionstestning?
- Regressionstesttekniker
- Utmaningar med regressionstestning
Vad är regressionstestning?
'Testning av ett tidigare testat program efter modifiering för att säkerställa att defekter inte har införts eller upptäckts i oförändrade områden av programvaran, som ett resultat av de ändringar som görs kallas Regression Testing.'
Ett regressionstest är ett systemomfattande test vars huvudsyfte är att säkerställa att en liten förändring i en del av systemet inte bryter mot befintlig funktionalitet någon annanstans i systemet. Om du betraktar regression som oavsiktlig förändring, är denna typ av testning processen för att jaga efter dessa förändringar. Enkelt uttryckt handlar det om att se till att gamla buggar inte kommer tillbaka för att hemsöka dig. Låt ossta en titt på ett fiktivt exempel som illustrerar konceptet.
hur man skriver ut array php
När du lägger till en ny betalningstyp på en shoppingwebbplats, kör igen gamla tester för att säkerställa att den nya koden inte har skapat nya defekter eller återinfört gamla.Regressionstest är viktigt eftersom det utan det är fullt möjligt att införa avsedda korrigeringar i ett system som skapar fler problem än de löser.
Fördelar med regressionstestning
Genomföra regressionstestgynnar företag på ett antal sätt som:
- Det ökar chansen att upptäcka fel orsakade av ändringar i programvara och applikation
- Det kan hjälpa till att fånga fel tidigt och därmed minska kostnaderna för att lösa dem
- Hjälper till att undersöka oönskade biverkningar som kan ha uppstått på grund av en ny operativ miljö
- Säkerställer bättre programvara på grund av tidig identifiering av fel och fel
- Viktigast är att det verifierar att kodändringar inte introducerar gamla defekter igen
Regressionstestning säkerställer att programvaran är korrekt så att den bästa versionen av produkten släpps på marknaden. Men i den verkliga världen är det inte möjligt att utforma och underhålla en nästan oändlig uppsättning regressionstest. Så du borde veta när du ska tillämpa regressionstest.
När ska jag tillämpa Regression Testing?
Det rekommenderas att utföra regressionstest på förekomsten av följande händelser:
- När nya funktioner läggs till
- Vid ändringskrav
- När det finns en felkorrigering
- När det finns prestandafrågor
- Vid miljöförändringar
- När det finns en korrigeringsfix
Nästa del av denna artikel handlar om olika typer av regressionstester.
Vilka är typerna av regressionstestning?
Regressionstestning görs genom flera testfaser. Det är av den anledningen att det finns flera typer av regressionstester. Några av dem är som följer:
Enhetstestning: Vid enhetstestning när kodningsändringar görs för en enda enhet kör en testare, vanligtvis utvecklaren som ansvarar för koden, alla tidigare godkända enhetstester. I miljöer är automatiserade enhetstester inbyggda i koden, vilket gör enhetstester mycket effektiva jämfört med andra typer av test.
Progressiv testning: Denna typ av testning fungerar effektivt när det sker ändringar i programvaru- / applikationsspecifikationerna såväl som nya är designade.
Selektiv testning: I selektiva test använder testare en delmängd av nuvarande testfall för att sänka omprövningskostnaden och ansträngningen. En testenhet måste köras om och endast om någon av de programenheter som den täcker har ändrats.
Testa om alla test: Denna typ av teststrategi innefattar testning av alla aspekter av en viss applikation samt återanvändning av alla testfall även om ändringarna inte har gjorts. Det är tidskrävande och det är inte mycket nytta när någon liten modifiering eller ändring görs i applikationen.
Fullständig testning: Denna testning är mycket användbar när flera ändringar har gjorts i den befintliga koden. Att utföra denna testning är mycket värdefullt för att identifiera oväntade buggar. När denna testning är klar kan det slutliga systemet göras tillgängligt för användaren.
Det är mycket viktigt att veta vilken typ av test som passar dina krav. Därefter kommer vi att diskutera hur regressionstest implementeras.
Hur genomförs regressionstestning?
Proceduren för att genomföra regressionstestning är som den du använder för alla andra testprocesser. Varje gång programvaran genomgår en förändring och en ny release kommer, utför utvecklaren dessa steg som en del av testprocessen:
tcp-sockelprogrammering i Java
- Först och främst utför han regressionstester på enhetsnivå för att validera kod som de har modifierat, tillsammans med alla nya tester de har skrivit för att täcka ny eller ändrad funktionalitet.
- Sedan slås den ändrade koden samman och integreras för att skapa en ny version av applikationen under test (AUT)
- Därefter utförs rökprov för att säkerställa att byggnaden är bra innan ytterligare test utförs
- När build har förklarats bra utförs integrationstester för att verifiera interaktionen mellan applikationsenheterna med varandra och med back-end-tjänster som databaser
- Beroende på storleken och omfattningen av den släppta koden är antingen en partiell eller en fullständig regression schemalagd
- Fel rapporteras sedan tillbaka till utvecklingsteamet
- Ytterligare omgångar med regressionstester utförs vid behov
Således införlivas regressionstest i en typisk programvarutestningsprocess. Bilden nedan visar tydligt hur regressionstester utfördes.
När några ändringar görs i källkoden misslyckas programkörningen av uppenbara skäl. Efter misslyckandet debiteras källkoden för att identifiera buggarna i programmet. Lämpliga modifieringar görs. Därefter väljs lämpliga testfall från den redan existerande testsviten som täcker alla modifierade och berörda delar av källkoden. Nya testfall läggs till vid behov. I slutändan utförs testning med valda testfall. Nu kanske du undrar vilka testfall du ska välja.
Effektiva regressionstest kan göras genom att välja följande testfall:
- Testfall som har frekventa defekter
- Komplexa testfall
- Integrationsprovfall
- Testfall som täcker produktens kärnfunktionalitet
- Funktioner som ofta används
- Testvaser som ofta misslyckas
- Gränsvärde testfall
Med regressionstestprocessen ur vägen kan vi kolla in olika tekniker.
Regressionstesttekniker
Regressionstestning bekräftar helt enkelt att modifierad programvara inte har förändrats oavsiktligt och den utförs vanligtvis med någon kombination av följande tekniker:
Testa om alla: Denna metod testar helt enkelt hela programvarupaketet, från topp till botten. I många fall utförs majoriteten av dessa tester med automatiserade verktyg. Vissa tider är automatisering inte nödvändig. Denna teknik är dyr eftersom den kräver mer tid och resurser jämfört med andra tekniker.
Testval: Istället för att välja alla testfall, tillåter den här metoden teamet att välja en uppsättning tester som kommer att approximera fullständig testning av testsuiten. Den främsta fördelen med denna praxis är att det kräver mycket mindre tid och ansträngning att utföra. Vanligtvis görs av utvecklare som vanligtvis har bättre inblick i nyanserna i testkantsfall och oväntade beteenden.
Prioritering av testfall: Målet med denna teknik är att prioritera en begränsad uppsättning testfall genom att överväga fler potentiella testfall före mindre viktiga. Testfall som kan påverka både nuvarande och framtida programvaruprogram väljs.
Dessa är de tre viktigaste teknikerna. Ibland baserat på testkrav kombineras dessa tekniker.
Så användbart som regressionstest kan vara, det är inte utan dess negativa poäng. Du måste förstå de utmaningar som du kan möta när du implementerar den.
Utmaningar med regressionstestning
- Tidskrävande: Tekniker som omprövning kräver mycket tid för att testa hela testserien
- Dyr: Dyrt på grund av resurser och arbetskraft som du behöver testa om och om igen, något som redan har utvecklats, testats och distribuerats i tidiga skeden
- Komplex: När produkten expanderar blir testare ofta överväldigade av den enorma mängden testfall och blir offer för att förlora spåren av testfall, med utsikt över viktiga testfall.
Trots dessa negativa punkter är regressionstest mycket användbart i testprocessen för programvara. Med regressionstestning kan företag förhindra att projekt går över budgeten, hålla sitt team på rätt spår och, viktigast av allt, förhindra oväntade buggar från att skada sina produkter. Med detta har vi nått slutet på bloggen. Hoppas att de saker som du har lärt dig här idag hjälper dig när du går ut på din programvarutestning.
Om du hittade det här artikel relevant, kolla in live-online av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen.
Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i detta ” Vad är regressionstestning? Artikeln så återkommer vi till dig.