skillnad mellan enhetstest, systemtest, integrationstest och regressionstest

skillnad mellan enhetstest, systemtest, integrationstest och regressionstest

enhetstest

enhetstester utförs på de enskilda enheterna i ett program och är avsedda att undersöka en enskild komponent som har olika egenskaper och egenskaper har ändrats eller införts för första gången. Varje test som syftar till att validera en enda modul måste presenteras med relaterad teknisk dokumentation bifogad, som bland annat innehåller de resultat som den testade modulen förväntas ge. Enhetstesterna fokuserar på programvarans funktionalitet och tillförlitlighet och utförs i en testfas före systemintegration. Om en defekt upptäcktes under ett enhetstest skulle dess natur och påverkan på det allmänna systemet bedömas; målet är att lösa det innan den testade modulen godkänns.

systemtest

systemtest utförs på alla nya eller modifierade komponenter och moduler som kännetecknar en produkt. Målet är att förstå hur de olika enhetliga blocken interagerar med varandra och om de ger de nödvändiga utgångarna totalt sett; tonvikten läggs på att validera och verifiera systemkrav och hur enskilda moduler fungerar tillsammans när de är anslutna. Vanligtvis är testerna på systemet mer än en: den första förtjänar speciellt omnämnande (normalt kallat “röktest”), som syftar till att studera i breda termer hur programmet beter sig och om huvudfunktionerna utförs korrekt, utan att dölja detaljerna. Test på hela systemet tar lång tid, eftersom det är nödvändigt att utföra ett stort antal för att analysera alla möjliga scenarier som kan uppstå.testplanen vid denna tidpunkt spelar en mycket känslig roll, eftersom den innehåller beskrivningen av testfallen, sekvensen i vilken de måste utföras och den dokumentation som krävs för att lista resultaten. När ett fel upptäcks och åtgärdas måste testet utföras på nytt för att säkerställa att korrigeringarna inte har haft någon negativ inverkan på komponenter som tidigare inte hade några fel (regressionstestet som redan nämnts ovan).

integrationstest

efter att ha utfört de olika systemtesterna är det nödvändigt att se till att det utvecklade programmet ger de önskade resultaten även om det körs i andra miljöer än den ursprungliga: det är därför nödvändigt att utföra integrationstester, där produkten testas tillsammans med andra gränssnitt och applikationer. Till skillnad från systemtester är det i integrationstester inte nödvändigt att testa om en defekt upptäcks efter att den har åtgärdats. Integrationstesterna är indelade i olika grupper och kan utföras eller inte beroende på vilken applikation som ska testas:

  • kompatibilitetstest: garantera att applikationen fungerar med olika konfigurationer baserat på de som är tillgängliga för användaren
  • prestandatester: de utvärderar applikationens förmåga att fungera korrekt när till exempel flera användare använder den samtidigt eller antalet ingångar ökar
  • stresstester: de testar applikationens korrekta funktion när den är stressad med ovanliga arbetsbelastningar
  • belastningstester: de kompletterar stresstester och utvärderar applikationens funktion under normala arbetsbelastningar

Regressionstest

regressionstestet, som redan nämnts i föregående stycken, utförs när proceduren för ett programstycke ändras efter identifiering av en defekt; när ett fel korrigeras uppstår möjligheten att en ny introduceras oavsiktligt: det finns därför osäkerhet om applikationens förmåga att upprepa alla tidigare utförda funktioner korrekt igen. Regressionstestet utförs vanligtvis parallellt med andra tester och kan ses som en kvalitetskontroll för att säkerställa att koden just modifierad fortsätter att korrekt utföra de funktioner som inte har modifierats och som uppfyller samma krav som verifierats tidigare . Sammanfattningsvis kan det konstateras att regressionstestet säkerställer att resten av ansökan som inte är föremål för modifiering inte påverkas av fel som uppstår vid korrigering av andra.

Leave a Reply