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

Vandfaldsmodel

Hvad er det?

I vandfaldsmodel, softwareudvikling fremskridt gennem forskellige faser som kravanalyse, design osv. โ€“ sekventielt.

I denne model begynder den nรฆste fase fรธrst, nรฅr den tidligere fase er afsluttet.

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

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

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

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 โ€“

  1. Fรธj til Test sag til testpakken for at verificere den nye funktionalitet, som endnu ikke er udviklet
  2. Kรธr alle testene, og det nye testtilfรฆlde, der tilfรธjes, skal naturligvis mislykkes, da funktionaliteten ikke er kodet endnu
  3. Skriv noget kode for at implementere funktionen/funktionaliteten
  4. 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.

Opsummer dette indlรฆg med: