Softwaretestmetoder: QA-modeller
Hvad er softwaretestmetode?
Softwaretestmetodologi er defineret som strategier og testtyper, der bruges til at bekrรฆfte, at applikationen under test lever op til kundens forventninger. Testmetoder omfatter funktionel og ikke-funktionel test for at validere AUT. Eksempler pรฅ testmetoder er Enhedstest, Integrationstest, Systemtest, Test af ydeevne osv. Hver testmetode har et defineret testmรฅl, teststrategi og leverancer.
Bemรฆrk: Da softwaretest er en integreret del af enhver udviklingsmetodik, bruger mange virksomheder udtrykket udviklingsmetoder og testmetoder i daglig tale. Derfor kan testmetoder ogsรฅ henvise til vandfalds-, agile- og andre kvalitetssikringsmodeller i modsรฆtning til ovenstรฅende definition af testmetoder. Diskussion om forskellige testtyper tilfรธjer ikke vรฆrdi for lรฆserne. Derfor vil vi diskutere de forskellige udviklingsmodeller.
Vandfaldsmodel
Hvad er det?
I vandfaldsmodel, softwareudvikling fremskridt gennem forskellige faser som kravanalyse, design osv. โ sekventielt.
Hvad er testmetoden?
Den fรธrste fase i vandfaldsmodellen er kravfasen, hvor alle projektets krav er fuldstรฆndigt defineret, fรธr testen pรฅbegyndes. I denne fase brainstormer testteamet testomfanget, teststrategi og udarbejder en detaljeret testplan.
Fรธrst nรฅr designet af softwaren er fรฆrdig, vil teamet gรฅ videre til udfรธrelse af testcases for at sikre, at den udviklede software opfรธrer sig, som den forventede.
I denne metode gรฅr testteamet fรธrst videre til nรฆste fase, nรฅr den forrige fase er afsluttet.
| Fordele | Ulemper |
|---|---|
| Denne software Engineering-model er meget enkel at planlรฆgge og administrere. Derfor kan projekter, hvor krav er klart defineret og angivet pรฅ forhรฅnd, nemt testes ved hjรฆlp af en vandfaldsmodel. | I vandfaldsmodellen kan du fรธrst begynde med den nรฆste fase, nรฅr den forrige fase er afsluttet. Derfor kan denne model ikke rumme uplanlagte hรฆndelser og usikkerhed. |
| Denne metode er ikke egnet til projekter, hvor kravene รฆndres ofte. |
Iterativ udvikling
Hvad er det?
I denne model er et stort projekt opdelt i smรฅ dele, og hver del er udsat for flere iterationer af vandfaldsmodellen. I slutningen af โโen iteration udvikles et nyt modul, eller et eksisterende modul forbedres. Dette modul er integreret i softwarearkitekturen og hele systemet testes samlet
Hvad er testmetoden?
Sรฅ snart iterationen er afsluttet, testes hele systemet. Feedback fra test er umiddelbart tilgรฆngelig og indarbejdes i nรฆste cyklus. Den nรธdvendige testtid ved successive iterationer kan reduceres baseret pรฅ erfaringerne fra tidligere iterationer.
| Fordele | Ulemper |
|---|---|
| Den stรธrste fordel ved iterativ udvikling er, at testfeedback er umiddelbart tilgรฆngelig i slutningen af โโhver cyklus. | Denne model รธger kommunikationsomkostningerne betydeligt, da der i slutningen af โโhver cyklus skal gives feedback om leverancer, indsats osv. |
Agile metodologi
Hvad er det?
Traditionelle softwareudviklingsmetoder arbejder ud fra den forudsรฆtning, at softwarekravene forbliver konstante gennem hele projektet. Men med en stigning i kompleksitet undergรฅr kravene adskillige รฆndringer og udvikler sig lรธbende. Til tider er kunden ikke selv sikker pรฅ, hvad han vil have. Selvom den iterative model lรธser dette problem, er den stadig baseret pรฅ vandfaldsmodellen.
I Agile metodologi udvikles software i trinvise, hurtige cyklusser. Interaktioner mellem kunder, udviklere og klienter lรฆgges vรฆgt pรฅ frem for processer og vรฆrktรธjer. Den agile metodologi fokuserer pรฅ at reagere pรฅ forandring frem for omfattende planlรฆgning.
Hvad er testmetoden?
Inkrementel test bruges i agile udviklingsmetoder, og derfor testes hver udgivelse af projektet grundigt. Dette sikrer, at eventuelle fejl i systemet er rettet inden nรฆste udgivelse.
| Fordele | Ulemper |
|---|---|
| Det er muligt at foretage รฆndringer i projektet til enhver tid for at overholde kravene. | Konstant klientinteraktion betyder รธget tidspres pรฅ alle interessenter inklusive klienten selv, softwareudvikling og testteams. |
| Denne trinvise test minimerer risici. |
Ekstrem programmering
Hvad er det?
Ekstrem programmering er en form for agil metodologi, der tror pรฅ korte udviklingscyklusser. Et projekt er opdelt i simple ingeniรธropgaver. Programmรธrer koder et simpelt stykke software og vender tilbage til kunden for feedback. Revpoint fra kunden indarbejdes, og udviklerne gรฅr videre med nรฆste opgave.
I ekstrem programmering arbejder udviklere normalt i par.
Ekstrem programmering bruges pรฅ steder, hvor kundernes krav konstant รฆndrer sig.
Hvad er testmetoden?
Ekstrem programmering fรธlger en testdrevet udvikling, som beskrives som fรธlger โ- Fรธj til Test sag til testpakken for at verificere den nye funktionalitet, som endnu ikke er udviklet
- Kรธr alle testene, og det nye testtilfรฆlde, der tilfรธjes, skal naturligvis mislykkes, da funktionaliteten ikke er kodet endnu
- Skriv noget kode for at implementere funktionen/funktionaliteten
- Kรธr testpakken igen. Denne gang skulle den nye test-case bestรฅ, da den funktionelt er blevet kodet
| Fordele | Ulemper |
|---|---|
| Kunder med et vagt softwaredesign i tankerne kunne bruge ekstrem programmering | Mรธder mellem softwareudviklingsteamet og kunder รธger tidskravene. |
| Kontinuerlig test og kontinuerlig integration af smรฅ udgivelser sikrer, at softwarekoden er af hรธj kvalitet |
Hvilken softwaremetode skal man vรฆlge?
Der er tonsvis af metoder tilgรฆngelige til softwareudvikling og dens tilsvarende test. Hver testteknik og -metode er designet til et specifikt formรฅl og har sine relative fordele og ulemper.
Valg af en bestemt metode afhรฆnger af mange faktorer sรฅsom et projekts art, kundekrav, projektplan osv.
Fra et testperspektiv presser nogle metoder pรฅ at teste input tidligt i udviklingslivscyklussen, mens andre venter, indtil en arbejdsmodel af systemet er klar.
Hvordan opsรฆtter man softwaretestmetoder?
Softwaretestmetoder bรธr ikke konfigureres kun for at teste softwarekode. Det store billede bรธr overvejes, og det primรฆre mรฅl for projektet bรธr vรฆre tilfreds med testmetoden. Se denne liste over velrenommerede udbydere af softwaretesttjenester som kan hjรฆlpe dig med at etablere effektive teststrategier, der er skrรฆddersyet til dit projekts mรฅl.
Planlรฆgning
Realistisk planlรฆgning er nรธglen til implementering af en vellykket testmetodologi, og tidsplanen bรธr opfylde behovene hos hvert medlem af teamet.
Definerede leverancer
For at holde alle medlemmer af teamet pรฅ samme side, bรธr der gives veldefinerede leverancer. Leverancerne skal indeholde direkte indhold uden nogen tvetydighed.
Test tilgang
Nรฅr planlรฆgningen er fรฆrdig, og definerede leverancer er gjort tilgรฆngelige, bรธr testteamet vรฆre i stand til at formulere den rigtige testtilgang. Definitionsdokumenter og udviklermรธder bรธr angive holdet om den bedste testmetode, der kan bruges til projektet.
Rapportering
Gennemsigtig rapportering er meget vanskelig at opnรฅ, men dette trin bestemmer effektiviteten af โโden testmetode, der bruges i projektet.




