forskel mellem enhedstest, systemtest, integrationstest og regressionstest

forskel mellem enhedstest, systemtest, integrationstest og regressionstest

enhedstest

enhedsprøver udføres på de enkelte enheder i et program og er beregnet til at undersøge en individuel komponent, der har en blev ændret eller introduceret for første gang. Hver test, der har til formål at validere et enkelt modul, skal præsenteres med den tilhørende tekniske dokumentation vedhæftet, som blandt andet indeholder de output, som det testede modul forventes at give. Enhedstestene fokuserer på programmets funktionalitet og pålidelighed og udføres i en testfase forud for systemintegration. Hvis en defekt blev opdaget under en enhedstest, ville dens art og indvirkning på det generelle system blive vurderet; målet er at løse det, før det testede modul godkendes.

systemtest

systemtest udføres på alle nye eller modificerede komponenter og moduler, der karakteriserer et produkt. Målet er at forstå, hvordan de forskellige enhedsblokke interagerer med hinanden, og hvis de generelt giver de krævede output; der lægges vægt på validering og verifikation af systemkrav og på, hvordan individuelle moduler fungerer sammen, når de er tilsluttet. Normalt er testene på systemet mere end en: den første fortjener særlig omtale (normalt kaldet “røgtest”), der sigter mod at studere bredt, hvordan programmet opfører sig, og hvis hovedfunktionerne udføres korrekt uden at dvæle ved detaljerne. Test på hele systemet tager lang tid, da det er nødvendigt at udføre et stort antal for at analysere alle mulige scenarier, der kan opstå; testplanen på dette tidspunkt spiller en meget delikat rolle, fordi den indeholder beskrivelsen af testsagerne, rækkefølgen, hvori de skal udføres, og den dokumentation, der er nødvendig for at liste resultaterne. Når en fejl opdages og rettes, skal testen udføres igen for at sikre, at de foretagne korrektioner ikke har haft nogen negativ indflydelse på komponenter, der tidligere ikke havde nogen fejl (den ovenfor nævnte regressionstest).

integrationstest

efter at have udført de forskellige systemtest er det nødvendigt at sikre, at det udviklede program giver de ønskede resultater, selvom det køres i andre miljøer end den oprindelige: det er derfor nødvendigt at udføre integrationstest, hvor produktet testes sammen med andre grænseflader og applikationer. I modsætning til systemtest er det i integrationstest ikke nødvendigt at teste igen, hvis der opdages en defekt, efter at den er rettet. Integrationstestene er opdelt i forskellige grupper og kan udføres eller ej afhængigt af den applikation, der skal testes:

  • kompatibilitetstest: garanti for, at applikationen fungerer med forskellige konfigurationer baseret på dem, der er tilgængelige for brugeren
  • Ydelsestest: de vurderer applikationens evne til at fungere korrekt, når for eksempel flere brugere bruger det samtidigt, eller antallet af input øges
  • stresstest: de tester applikationens korrekte funktion, når den er stresset med usædvanlige arbejdsbelastninger
  • belastningstest: de er komplementære til stresstest og evaluerer applikationens funktion under normale arbejdsbelastninger

regressionstest

regressionstesten, der allerede er nævnt i de foregående afsnit, udføres, når proceduren for et programstykke ændres efter identifikation af en defekt; når en fejl rettes, opstår muligheden for, at en ny utilsigtet introduceres: der indføres derfor usikkerhed om applikationens evne til at gentage alle tidligere udførte funktioner korrekt igen. Regressionstesten udføres normalt parallelt med andre test og kan ses som en kvalitetskontrol for at sikre, at den netop ændrede kode fortsætter med at udføre de funktioner, der ikke er blevet ændret, korrekt, og som opfylder de samme krav, der tidligere er verificeret . Afslutningsvis kan det fastslås, at regressionstesten sikrer, at resten af applikationen, der ikke er genstand for ændring, ikke påvirkes af fejl som følge af korrektion af andre.

Leave a Reply