Programvaretestmetoder: QA-modeller

Hva er metodikk for programvaretesting?

Programvaretestmetodikk er definert som strategier og testtyper som brukes for รฅ bekrefte at applikasjonen under test oppfyller kundens forventninger. Testmetoder inkluderer funksjonell og ikke-funksjonell testing for รฅ validere AUT. Eksempler pรฅ testmetoder er Enhetstesting, Integrasjonstesting, Systemtesting, Ytelsestesting osv. Hver testmetodikk har et definert testmรฅl, teststrategi og leveranser.

Merknader: Siden programvaretesting er en integrert del av enhver utviklingsmetodikk, bruker mange selskaper begrepet utviklingsmetodikk og testmetoder i daglig tale. Derfor kan testmetoder ogsรฅ referere til Waterfall, Agile og andre QA-modeller i motsetning til definisjonen ovenfor av testmetoder. Diskusjon om ulike testtyper gir ingen verdi for leserne. Derfor vil vi diskutere de ulike utviklingsmodellene.

Fossmodell

Fossmodell

Hva er det?

pรฅ fossemodell, programvareutvikling fremskritt gjennom ulike faser som kravanalyse, design etc โ€“ sekvensielt.

I denne modellen begynner neste fase fรธrst nรฅr den tidligere fasen er fullfรธrt.

Hva er testmetoden?

Fรธrste fase i fossefallsmodellen er kravfasen der alle prosjektkravene er fullstendig definert fรธr testingen starter. I lรธpet av denne fasen brainstormer testteamet omfanget av testing, teststrategi og utarbeider en detaljert testplan.

Fรธrst nรฅr utformingen av programvaren er fullfรธrt, vil teamet gรฅ videre til utfรธrelse av testtilfellene for รฅ sikre at den utviklede programvaren oppfรธrer seg som forventet.

I denne metodikken fortsetter testteamet til neste fase fรธrst nรฅr forrige fase er fullfรธrt.

Fordeler Ulemper
Denne programvareingeniรธrmodellen er veldig enkel รฅ planlegge og administrere. Derfor kan prosjekter, hvor kravene er klart definert og angitt pรฅ forhรฅnd, enkelt testes ved hjelp av en fossefallsmodell. I fossefallsmodellen kan du begynne med neste fase fรธrst nรฅr forrige fase er fullfรธrt. Derfor kan ikke denne modellen imรธtekomme uplanlagte hendelser og usikkerhet.
Denne metodikken egner seg ikke for prosjekter hvor kravene endres ofte.

Iterativ utvikling

Iterativ utvikling

Hva er det?

I denne modellen er et stort prosjekt delt inn i smรฅ deler, og hver del er utsatt for flere iterasjoner av fossefallsmodellen. Pรฅ slutten av en iterasjon utvikles en ny modul eller en eksisterende modul forbedres. Denne modulen er integrert i programvarearkitekturen og hele systemet er testet sammen

Hva er testmetoden?

Sรฅ snart iterasjonen er fullfรธrt, testes hele systemet. Tilbakemelding fra testing er umiddelbart tilgjengelig og innarbeides i neste syklus. Testtiden som kreves ved suksessive iterasjoner kan reduseres basert pรฅ erfaringen fra tidligere iterasjoner.

Fordeler Ulemper
Den stรธrste fordelen med iterativ utvikling er at testtilbakemeldingen er umiddelbart tilgjengelig pรฅ slutten av hver syklus. Denne modellen รธker kommunikasjonskostnadene betraktelig siden det pรฅ slutten av hver syklus mรฅ gis tilbakemelding om leveranser, innsats osv.

Agile metodikk

Agil metodikk

Hva er det?

Tradisjonelle metoder for programvareutvikling arbeider med forutsetningen om at programvarekravene forblir konstante gjennom hele prosjektet. Men med en รธkning i kompleksitet, gjennomgรฅr kravene mange endringer og utvikler seg kontinuerlig. Til tider er kunden selv ikke sikker pรฅ hva han vil ha. Selv om den iterative modellen lรธser dette problemet, er den fortsatt basert pรฅ fossefallsmodellen.

I smidig metodikk utvikles programvare i inkrementelle, raske sykluser. Interaksjoner mellom kunder, utviklere og klienter vektlegges snarere enn prosesser og verktรธy. Den smidige metodikken fokuserer pรฅ รฅ reagere pรฅ endringer i stedet for omfattende planlegging.

Hva er testmetoden?

Inkrementell testing brukes i smidige utviklingsmetoder, og derfor testes hver utgivelse av prosjektet grundig. Dette sikrer at eventuelle feil i systemet er fikset fรธr neste utgivelse.

Fordeler Ulemper
Det er mulig รฅ gjรธre endringer i prosjektet til enhver tid for รฅ overholde kravene. Konstant klientinteraksjon betyr รธkt tidspress pรฅ alle interessenter, inkludert klienten selv, programvareutvikling og testteam.
Denne inkrementelle testingen minimerer risikoen.

Ekstrem programmering

Ekstrem programmering

Hva er det?

Ekstrem programmering er en type smidig metodikk som tror pรฅ korte utviklingssykluser. Et prosjekt er delt inn i enkle ingeniรธroppgaver. Programmerere koder et enkelt stykke programvare og kommer tilbake til kunden for tilbakemelding. Revsynspoeng fra kunden blir innlemmet og utviklerne fortsetter med neste oppgave.

I ekstreme programmeringsutviklere jobber vanligvis i par.

Ekstrem programmering brukes pรฅ steder hvor kundenes krav er i stadig endring.

Hva er testmetoden?

Ekstrem programmering fรธlger en testdrevet utvikling som beskrives som fรธlger โ€“

  1. legge en Testsak til testpakken for รฅ verifisere den nye funksjonaliteten som ennรฅ ikke er utviklet
  2. Kjรธr alle testene og รฅpenbart mรฅ den nye testsaken som legges til mislykkes siden funksjonaliteten ikke er kodet ennรฅ
  3. Skriv litt kode for รฅ implementere funksjonen/funksjonaliteten
  4. Kjรธr testpakken pรฅ nytt. Denne gangen skal den nye testsaken bestรฅ siden den funksjonelt har blitt kodet
Fordeler Ulemper
Kunder som har en vag programvaredesign i tankene kan bruke ekstrem programmering Mรธter mellom programvareutviklingsteamet og klienter รธker tidskravene.
Kontinuerlig testing og kontinuerlig integrasjon av smรฅ utgivelser sikrer at programvarekoden som leveres er av hรธy kvalitet

Hvilken programvaremetodikk รฅ velge?

Det er tonnevis av metoder tilgjengelig for programvareutvikling og tilhรธrende testing. Hver testteknikk og metodikk er designet for et bestemt formรฅl og har sine relative fordeler og ulemper.

Valg av en bestemt metodikk avhenger av mange faktorer som et prosjekts natur, klientkrav, prosjektplan osv.

Fra et testperspektiv presser noen metoder for รฅ teste input tidlig i utviklingslivssyklusen, mens andre venter til en arbeidsmodell av systemet er klar.

Hvordan konfigurerer jeg metoder for programvaretesting?

Programvaretestmetoder bรธr ikke settes opp bare for รฅ teste programvarekoden. Det store bildet bรธr vurderes og hovedmรฅlet for prosjektet bรธr vรฆre tilfreds med testmetoden. Se denne listen over anerkjente tjenesteleverandรธrer for programvaretesting som kan hjelpe deg med รฅ etablere effektive teststrategier skreddersydd for prosjektets mรฅl.

Planlegging

Realistisk planlegging er nรธkkelen til implementering av vellykket testmetodikk, og tidsplanen bรธr mรธte behovene til hvert medlem av teamet.

Definerte leveranser

For รฅ holde alle medlemmene i teamet pรฅ samme side, bรธr veldefinerte leveranser gis. Leveransene skal inneholde direkte innhold uten noen tvetydighet.

Testtilnรฆrming

Nรฅr planleggingen er fullfรธrt og definerte leveranser er gjort tilgjengelig, bรธr testteamet vรฆre i stand til รฅ formulere den riktige testtilnรฆrmingen. Definisjonsdokumenter og utviklermรธter bรธr indikere teamet om den beste testmetoden som kan brukes for prosjektet.

Rapportering

Transparent rapportering er svรฆrt vanskelig รฅ oppnรฅ, men dette trinnet bestemmer effektiviteten til testmetoden som brukes i prosjektet.

Oppsummer dette innlegget med: