Denne opplæringen introduserer de syv grunnleggende programvaretestingsprinsippene som hver programvaretester og kvalitetssakkyndig bør vite.
7 Prinsipper for programvaretesting
- Testing viser tilstedeværelse av mangler
- Uttømmende testing er ikke mulig
- Tidlig testing
- Feilklynging
- Pesticidparadoks
- Testing er kontekstavhengig
- Fravær av feil feil
La oss lære testprinsippene med følgende videoeksempel-
Klikk her hvis videoen ikke er tilgjengelig
Bakgrunn
Det er viktig at du oppnår optimale testresultater mens du gjennomfører programvaretesting uten å avvike fra målet. Men hvordan finner du ut at du følger den riktige strategien for testing? For det må du holde deg til noen grunnleggende testprinsipper. Her er de vanlige sju testprinsippene som er mye praktisert i programvareindustrien.
For å forstå dette, bør du vurdere et scenario der du flytter en fil fra mappe A til mappe B.
Tenk på alle mulige måter du kan teste dette på.
Bortsett fra de vanlige scenariene, kan du også teste følgende forhold
- Prøver å flytte filen når den er åpen
- Du har ikke sikkerhetsrettighetene til å lime inn filen i mappe B.
- Mappe B er på en delt stasjon og lagringskapasiteten er full.
- Mappe B har allerede en fil med samme navn, faktisk er listen uendelig
- Eller antar at du har 15 inntastingsfelt å teste, hver med 5 mulige verdier, antall kombinasjoner som skal testes ville være 5 15
Hvis du skulle teste hele mulige kombinasjoner, ville prosjektet UTFØRINGSTID OG KOSTNADER øke eksponentielt. Vi trenger visse prinsipper og strategier for å optimalisere testinnsatsen
Her er de 7 prinsippene:
1) Uttømmende testing er ikke mulig
Ja! Uttømmende testing er ikke mulig. I stedet trenger vi den optimale mengden testing basert på risikovurderingen av applikasjonen.
Og million dollar-spørsmålet er, hvordan bestemmer du denne risikoen?
For å svare på dette, la oss gjøre en øvelse
Etter din mening, Hvilken operasjon vil mest sannsynlig føre til at operativsystemet ditt mislykkes?
Jeg er sikker på at de fleste av dere ville ha gjettet, Åpne 10 forskjellige applikasjoner samtidig.
Så hvis du testet dette operativsystemet, ville du innse at mangler sannsynligvis vil bli funnet i multitasking-aktivitet og må testes grundig, noe som bringer oss til vårt neste prinsipp Feilklynging
2) Feilklynging
Defect Clustering som sier at et lite antall moduler inneholder de fleste av de manglene som er oppdaget. Dette er anvendelsen av Pareto-prinsippet på programvaretesting: omtrent 80% av problemene finnes i 20% av modulene.
Av erfaring kan du identifisere slike risikable moduler. Men denne tilnærmingen har sine egne problemer
Hvis de samme testene gjentas om og om igjen, vil til slutt de samme testtilfellene ikke lenger finne nye feil.
3) Pesticidparadoks
Gjentatt bruk av den samme plantevernmiksen for å utrydde insekter under oppdrett, vil over tid føre til at insektene utvikler motstand mot plantevernmidlet. Dermed ineffektivt av plantevernmidler på insekter. Det samme gjelder programvaretesting. Hvis det samme settet med gjentatte tester blir utført, vil metoden være ubrukelig for å oppdage nye feil.
For å overvinne dette, må testsakene gjennomgås og revideres regelmessig, og det legges til nye og forskjellige testsaker for å hjelpe til med å finne flere feil.
Testere kan ikke bare avhenge av eksisterende testteknikker. Han må se opp kontinuerlig for å forbedre eksisterende metoder for å gjøre testing mer effektiv. Men selv etter alt dette svette og harde arbeidet med å teste, kan du aldri hevde at produktet ditt er feilfritt. For å kjøre hjem dette punktet, la oss se denne videoen av den offentlige lanseringen av Windows 98
Du tror et selskap som MICROSOFT ikke ville ha testet operativsystemet deres grundig og ville risikere omdømmet deres bare for å se operativsystemet deres krasje under offentlig lansering!
4) Testing viser tilstedeværelse av mangler
Derfor sier testprinsippet at - Testing snakker om tilstedeværelse av mangler og ikke snakk om fravær av mangler. dvs. programvaretesting reduserer sannsynligheten for at uoppdagede mangler forblir i programvaren, men selv om det ikke blir funnet feil, er det ikke et bevis på korrekthet.
Men hva om du jobber ekstra hardt, tar alle forholdsregler og gjør programvareproduktet ditt 99% feilfritt. Og programvaren oppfyller ikke kundenes behov og krav.
Dette fører oss til vårt neste prinsipp, som sier at - Fravær av feil
5) Fravær av feil - feilslutning
Det er mulig at programvare som er 99% feilfri fortsatt er ubrukelig. Dette kan være tilfelle hvis systemet testes grundig for feil krav. Programvaretesting er ikke bare å finne feil, men også å kontrollere at programvaren adresserer forretningsbehovet. Fraværet av feil er en feil, dvs. å finne og fikse feil hjelper ikke hvis systembyggingen er ubrukelig og ikke oppfyller brukerens behov og krav.
For å løse dette problemet sier det neste prinsippet om testing at Early Testing
6) Tidlig testing
Tidlig testing - Testing skal starte så tidlig som mulig i programvarens livssyklus. Slik at eventuelle feil i kravene eller designfasen blir fanget opp i tidlige stadier. Det er mye billigere å fikse en defekt i de tidlige stadiene av testingen. Men hvor tidlig skal man begynne å teste? Det anbefales at du begynner å finne feilen i det øyeblikket kravene er definert. Mer om dette prinsippet i en senere opplæringsveiledning.
7) Testing er kontekstavhengig
Testing er kontekstavhengig, noe som i utgangspunktet betyr at måten du tester et e-handelssted på, vil være forskjellig fra måten du tester en reklame på. All utviklet programvare er ikke identisk. Du kan bruke en annen tilnærming, metoder, teknikker og typer testing, avhengig av applikasjonstype. For eksempel testing vil ethvert POS-system i en butikk være annerledes enn å teste en minibank.
Myte: "Prinsipper er bare for referanse. Jeg vil ikke bruke dem i praksis."
Dette er så veldig usant. Testprinsipper vil hjelpe deg med å lage en effektiv teststrategi og utkast til testtilfeller.
Men læringstestingsprinsipper er akkurat som å lære å kjøre for første gang.
I utgangspunktet, mens du lærer å kjøre, tar du hensyn til alt som girskift, hastighet, clutchhåndtering osv. Men med erfaring fokuserer du bare på å kjøre resten kommer naturlig. Slik at du til og med har samtaler med andre passasjerer i bilen.
Det samme gjelder testprinsipper. Erfarne testere har internalisert disse prinsippene til et nivå at de bruker dem selv uten å tenke. Derfor er myten om at prinsippene ikke brukes i praksis rett og slett ikke sant.