logo

Typer programvaretesting

Velkommen til verden av programvaretesting , som sikrer kvaliteten og påliteligheten til programvareapplikasjoner . Å forstå de ulike typene programvaretesting er avgjørende for både utviklere og fagfolk i kvalitetssikring.

I denne veiledningen vil vi utforske de grunnleggende kategoriene for programvaretesting, fra enhetstesting til sikkerhetstesting, og hjelpe deg med å navigere og sikre at programvaren din oppfyller de høyeste standardene for ytelse og funksjonalitet.

Innholdsfortegnelse



Prinsipper for programvaretesting

  • Alle testene skal oppfylle kundens krav.
  • For å gjøre vår programvaretesting bør utføres av en tredjepart.
  • Uttømmende testing er ikke mulig. Ettersom vi trenger den optimale mengden testing basert på risikovurderingen av søknaden.
  • Alle testene som skal utføres bør planlegges før de implementeres
  • Den følger Pareto-regelen(80/20-regelen) som sier at 80 % av feilene kommer fra 20 % av programkomponentene.
  • Begynn å teste med små deler og utvide det til store deler.
  • Typer testing
Typer programvaretesting

Typer programvaretesting

Ulike typer programvaretesting

  1. Manuell testing
  2. Testing av automatisering

1. Manuell testing

Manuell testing er en teknikk for å teste programvaren som utføres ved hjelp av funksjonene og funksjonene til en applikasjon. Ved manuell programvaretesting utfører en tester tester på programvaren ved å følge et sett med forhåndsdefinerte testtilfeller. I denne testen lager testere testcases for kodene, tester programvaren og gir den endelige rapporten om den programvaren. Manuell testing er tidkrevende fordi det gjøres av mennesker, og det er en sjanse for menneskelige feil.

Fordeler med manuell testing

  • Rask og nøyaktig visuell tilbakemelding: Den oppdager nesten hver eneste feil i programvareapplikasjonen og brukes til å teste de dynamisk skiftende GUI-designene som layout, tekst osv.
  • Billigere: Det er rimeligere siden det ikke krever noen ferdigheter på høyt nivå eller en bestemt type verktøy.
  • Ingen koding er nødvendig: Ingen programmeringskunnskap er nødvendig når du bruker black box-testmetoden. Det er lett å lære for de nye testerne.
  • Effektiv for ikke-planlagte endringer: Manuell testing er egnet i tilfelle uplanlagte endringer i applikasjonen, da den lett kan tas i bruk.

2. Automatiseringstesting

Automatisert testing er en teknikk der testeren skriver skript på egen hånd og bruker passende programvare eller automatiseringsverktøy for å teste programvaren. Det er en automatiseringsprosess av en manuell prosess. Det gjør det mulig å utføre repeterende oppgaver uten innblanding fra en manuell tester.

Fordeler med automatiseringstesting:

  • Forenkler utførelse av testtilfeller: Automatiseringstesting kan forlates praktisk talt uten tilsyn, og dermed tillater den overvåking av resultatene på slutten av prosessen. Dermed forenkles den generelle testutførelsen og øke effektiviteten til applikasjonen.
  • Forbedrer påliteligheten til tester: Automatiseringstesting sikrer at det er likt fokus på alle områder av testingen, og sikrer dermed sluttproduktet av beste kvalitet.
  • Øker mengden testdekning: Ved hjelp av automatiseringstesting kan flere testtilfeller opprettes og utføres for applikasjonen som testes. Dette resulterer i høyere testdekning og oppdagelse av flere feil. Dette gir mulighet for testing av mer komplekse applikasjoner og flere funksjoner kan testes.
  • Minimere menneskelig interaksjon: I automatiseringstesting er alt automatisert fra opprettelse av testcase til utførelse, og det er derfor ingen endringer for menneskelige feil på grunn av omsorgssvikt. Dette reduserer behovet for å fikse feil i fasen etter utgivelsen.

Typer manuell testing

  1. White Box Testing
  2. Black Box-testing
  3. Testing av grå boks

1. White Box Testing

Hvit boks testing teknikker analyserer de interne strukturene de brukte datastrukturene, intern design, kodestruktur og programvarens virkemåte i stedet for bare funksjonaliteten som i black box-testing. Det kalles også glassbokstesting klarbokstesting eller strukturell testing. White Box Testing er også kjent som transparent testing eller open box testing.

White box-testing er en programvaretestingsteknikk som innebærer å teste den interne strukturen og virkemåten til en programvareapplikasjon. Testeren har tilgang til kildekoden og bruker denne kunnskapen til å designe testcases som kan verifisere riktigheten av programvaren på kodenivå.

Fordeler med White Box Testing:

  • Grundig testing : White box-testing er grundig ettersom hele koden og strukturene testes.
  • Kodeoptimalisering: Det resulterer i optimalisering av kode som fjerner feil og hjelper til med å fjerne ekstra linjer med kode.
  • Tidlig oppdagelse av defekter: Det kan starte på et tidligere stadium, da det ikke krever noe grensesnitt som i tilfelle av black box-testing.
  • Integrasjon med SDLC: White box-testing kan enkelt startes i Software Development Life Cycle.
  • Påvisning av komplekse defekter: Testere kan identifisere defekter som ikke kan oppdages gjennom andre testteknikker.

2. Black Box-testing

Black-box-testing er en type programvaretesting der testeren ikke er opptatt av den interne kunnskapen eller implementeringsdetaljene til programvaren, men heller fokuserer på å validere funksjonaliteten basert på de angitte spesifikasjonene eller kravene.

Fordeler med Black Box-testing:

  • Testeren trenger ikke ha mer funksjonell kunnskap eller programmeringskunnskaper for å implementere Black Box Testing.
  • Det er effektivt for å implementere testene i det større systemet.
  • Tester utføres fra brukerens eller klientens synspunkt.
  • Testtilfeller er lett reproduserbare.
  • Den brukes til å finne tvetydigheten og motsetningene i funksjonsspesifikasjonene.

3. Testing av grå boks

Testing av grå boks er en programvaretestingsteknikk som er en kombinasjon av Black Box-testing teknikk og White Box Testing teknikk.

  1. I Black Box Testing-teknikken er testeren uvitende om den interne strukturen til gjenstanden som testes, og i White Box Testing er den interne strukturen kjent for testeren.
  2. Den interne strukturen er delvis kjent i Gray Box Testing.
  3. Dette inkluderer tilgang til interne datastrukturer og algoritmer for å designe testcasene.

Fordeler med Gray Box-testing:

  1. Klarhet i mål: Brukere og utviklere har klare mål mens de tester.
  2. Utført fra et brukerperspektiv: Gråbokstesting gjøres for det meste fra brukerperspektivet.
  3. Høye programmeringskunnskaper er ikke nødvendig: Testere er ikke pålagt å ha høye programmeringskunnskaper for denne testen.
  4. Ikke-påtrengende: Gråbokstesting er ikke påtrengende.
  5. Forbedret produktkvalitet: Den generelle kvaliteten på produktet er forbedret.

Typer Black Box-testing

  1. Funksjonstesting
  2. Ikke-funksjonell testing

1. Funksjonstesting

Funksjonell testing er en type programvaretesting der systemet testes mot funksjonskrav og spesifikasjoner. Funksjonstesting sikrer at kravene eller spesifikasjonene er riktig tilfredsstilt av applikasjonen. Denne typen testing er spesielt opptatt av resultatet av behandlingen. Den fokuserer på simulering av faktisk systembruk, men utvikler ingen systemstrukturforutsetninger. Artikkelen fokuserer på å diskutere funksjonstesting.

min live cricket

Fordeler med funksjonstesting

  • Feilfritt produkt: Funksjonstesting sikrer levering av et feilfritt produkt av høy kvalitet.
  • Kundetilfredshet: Den sikrer at alle krav oppfylles og sikrer at kunden blir fornøyd.
  • Testing fokusert på spesifikasjoner: Funksjonstesting er fokusert på spesifikasjoner i henhold til kundens bruk.
  • Riktig bruk av applikasjonen: Dette sikrer at applikasjonen fungerer som forventet og sikrer at all funksjonaliteten til applikasjonen fungerer som den skal.
  • Forbedrer kvaliteten på produktet: Funksjonstesting sikrer sikkerheten og sikkerheten til produktet og forbedrer kvaliteten på produktet.

2. Ikke-funksjonell testing

Ikke-funksjonell testing er en type Programvaretesting som utføres for å verifisere de ikke-funksjonelle kravene til applikasjonen. Det verifiserer om oppførselen til systemet er i henhold til kravet eller ikke. Den tester alle aspekter som ikke er testet i funksjonstesting. Ikke-funksjonell testing er en programvaretestingsteknikk som sjekker de ikke-funksjonelle egenskapene til systemet. Ikke-funksjonell testing er definert som en type programvaretesting for å sjekke ikke-funksjonelle aspekter ved en programvareapplikasjon. Den er designet for å teste beredskapen til et system i henhold til ikke-funksjonelle parametere som aldri blir adressert av funksjonell testing. Ikke-funksjonell testing er like viktig som funksjonell testing.

Fordeler med ikke-funksjonell testing

  • Forbedret ytelse: Ikke-funksjonell testing sjekker ytelsen til systemet og bestemmer ytelsesflaskehalsene som kan påvirke ytelsen.
  • Mindre tidkrevende: Ikke-funksjonell testing er totalt sett mindre tidkrevende enn den andre testprosessen.
  • Forbedrer brukeropplevelsen: Ikke-funksjonell testing som Usability-testing sjekker hvor enkel og brukervennlig programvaren er for brukerne. Fokuser derfor på å forbedre den generelle brukeropplevelsen for applikasjonen.
  • Sikrere produkt: Som ikke-funksjonell testing inkluderer spesifikt sikkerhetstesting som sjekker sikkerhetsflaskehalsene til applikasjonen og hvor sikker applikasjonen er mot angrep fra interne og eksterne kilder.

Typer funksjonstesting

  1. Enhetstesting
  2. Integrasjonstesting
  3. Systemtesting

1. Enhetstesting

Enhetstesting er en metode for å teste individuelle enheter eller komponenter i en programvareapplikasjon. Det gjøres vanligvis av utviklere og brukes til å sikre at de enkelte enhetene i programvaren fungerer etter hensikten. Enhetstester er vanligvis automatiserte og er designet for å teste spesifikke deler av koden, for eksempel en bestemt funksjon eller metode. Enhetstesting utføres på det laveste nivået av programvareutviklingsprosess , hvor individuelle kodeenheter testes isolert.

Fordeler med enhetstesting:

Noen av fordelene med enhetstesting er listet opp nedenfor.

  • Det hjelper å identifisere feil tidlig i utviklingsprosessen før de blir vanskeligere og dyrere å fikse.
  • Det bidrar til å sikre at endringer i koden ikke introduserer nye feil.
  • Det gjør koden mer modulær og enklere å forstå og vedlikeholde.
  • Det bidrar til å forbedre den generelle kvaliteten og påliteligheten til programvaren.

Merk: Noen populære rammeverk og verktøy som brukes til enhetstesting inkluderer JUnit , NUnit, og xEnhet.

  • Det er viktig å huske på at enhetstesting bare er ett aspekt ved programvaretesting, og det bør brukes i kombinasjon med andre typer testing som integrasjonstesting, funksjonstesting og aksepttesting for å sikre at programvaren oppfyller behovene til brukerne. .
  • Den fokuserer på den minste enheten for programvaredesign. I dette tester vi en individuell enhet eller gruppe av sammenhengende enheter. Det gjøres ofte av programmereren ved å bruke prøveinndata og observere de tilsvarende utgangene.

Eksempel:

  1. I et program sjekker vi om løkken, metoden eller funksjonen fungerer bra.
  2. Misforstått eller feil, aritmetisk forrang.
  3. Feil initialisering.

2. Integrasjonstesting

Integrasjonstesting er en metode for å teste hvordan ulike enheter eller komponenter i en programvareapplikasjon samhandler med hverandre. Den brukes til å identifisere og løse eventuelle problemer som kan oppstå når ulike enheter av programvaren kombineres. Integrasjonstesting utføres vanligvis etter enhetstesting og før funksjonstesting og brukes til å verifisere at de ulike enhetene i programvaren fungerer sammen etter hensikten.

Ulike måter å utføre integrasjonstesting på:

Ulike måter for integrasjonstesting er diskutert nedenfor.

  • Top-down integrasjonstesting: Den starter med modulene på høyeste nivå og skiller dem fra moduler på lavere nivå.
  • Integrasjonstesting nedenfra og opp: Den starter med modulene på laveste nivå og integrerer dem med moduler på høyere nivå.
  • Big-Bang-integrasjonstesting: Den kombinerer alle modulene og integrerer dem alle samtidig.
  • Inkrementell integrasjonstesting: Den integrerer modulene i små grupper, og tester hver gruppe etter hvert som den legges til.

Fordeler med å integrere testing

  • Det hjelper å identifisere og løse problemer som kan oppstå når ulike enheter av programvaren kombineres.
  • Det bidrar til å sikre at de ulike enhetene i programvaren fungerer sammen etter hensikten.
  • Det bidrar til å forbedre den generelle påliteligheten og stabiliteten til programvaren.
  • Det er viktig å huske på at integrasjonstesting er avgjørende for komplekse systemer der ulike komponenter er integrert.
  • Som med enhetstesting, er integrasjonstesting bare ett aspekt ved programvaretesting, og det bør brukes i kombinasjon med andre typer testing som enhetstesting, funksjonstesting og aksepttesting for å sikre at programvaren oppfyller brukernes behov.

De objektiv er å ta enhetstestede komponenter og bygge en programstruktur som har blitt diktert av design. Integrasjonstesting er testing der en gruppe komponenter kombineres for å produsere output.

Integrasjonstesting er av fire typer: (i) Top-down (ii) Bottom-up (iii) Sandwich (iv) Big-Bang

Eksempel:

  1. Black Box-testing: Den brukes til validering. I dette ignorerer vi interne arbeidsmekanismer og fokuserer på hva er output?
  2. Hvit boks testing: Den brukes til verifisering. I dette fokuserer vi på interne mekanismer, dvs. hvordan produksjonen oppnås.

3. Systemtesting

Systemtesting er en type programvaretesting som evaluerer den generelle funksjonaliteten og ytelsen til en komplett og fullt integrert programvareløsning. Den tester om systemet oppfyller de spesifiserte kravene og om det er egnet for levering til sluttbrukerne. Denne typen testing utføres etter integrasjonstestingen og før aksepttestingen.

Systemtesting er en type programvaretesting som utføres på et fullstendig integrert system for å evaluere systemets samsvar med de tilsvarende kravene. Ved systemtesting tas integrasjonstesting av beståtte komponenter som input. Målet med integrasjonstesting er å oppdage eventuelle uregelmessigheter mellom enhetene som er integrert.

Fordeler med systemtesting:

  • Testerne krever ikke mer kunnskap om programmering for å gjennomføre denne testen.
  • Den vil teste hele produktet eller programvaren slik at vi enkelt vil oppdage feilene eller defektene som ikke kan identifiseres under enhetstesten og integrasjonstestingen.
  • Testmiljøet ligner det for sanntidsproduksjon eller forretningsmiljø.
  • Den sjekker hele funksjonaliteten til systemet med forskjellige testskript, og den dekker også de tekniske og forretningsmessige kravene til klienter.
  • Etter denne testingen vil produktet nesten dekke alle mulige feil eller feil, og derfor vil utviklingsteamet trygt gå videre med aksepttesting.

Typer integrasjonstesting

  1. Inkrementell testing
  2. Ikke-inkrementell testing

1. Inkrementell testing

I likhet med utvikling er testing også en fase av SDLC (Software Development Life Cycle) . Ulike tester utføres på ulike stadier av utviklingssyklusen. Inkrementell testing er en av testmetodene som ofte brukes i programvarefeltet under testfasen av integrasjonstesting som utføres etter enhetstesting . Flere stubber og drivere brukes til å teste modulene en etter en som hjelper til med å oppdage feil og mangler i de spesifikke modulene.

Fordeler med inkrementell testing

  • Hver modul har sin spesifikke betydning. Hver og en får en rolle å spille under testingen ettersom de økes individuelt.
  • Defekter oppdages i mindre moduler i stedet for å angi feil og deretter redigere og korrigere store filer.
  • Det er mer fleksibelt og kostnadseffektivt i henhold til krav og omfang.
  • Kunden får sjansen til å svare på hvert bygg.

Det finnes 2 typer Inkrementell testing

  1. Top-down integrasjonstesting
  2. Integrasjonstesting nedenfra og opp

1. Top-down integrasjonstesting

Top-down testing er en type inkrementell integrasjonstesting tilnærming der testing utføres ved å integrere eller slå sammen to eller flere moduler ved å bevege seg ned fra topp til bunn gjennom kontrollflyten til arkitekturstrukturen. I disse testes først høynivåmoduler, og deretter testes lavnivåmoduler. Så, til slutt, gjøres integrasjon for å sikre at systemet fungerer som det skal. Stubber og drivere brukes til å gjennomføre dette prosjektet. Denne teknikken brukes til å øke eller stimulere oppførselen til moduler som ikke er integrert i et lavere nivå.

Fordeler Top Down Integrasjonstesting

  1. Det er ikke nødvendig å skrive drivere.
  2. Grensesnittfeil identifiseres på et tidlig stadium og feillokalisering er også enklere.
  3. Verktøy på lavt nivå som ikke er viktige testes ikke godt og testere på høyt nivå testes godt på en passende måte.
  4. Representasjon av testtilfeller er enklere og enklere når Input-Output-funksjoner er lagt til.

2. Bottom-up integrasjonstesting

Testing nedenfra og opp er en type inkrementell integrasjonstesting tilnærming der testing utføres ved å integrere eller slå sammen to eller flere moduler ved å bevege seg oppover fra bunn til topp gjennom kontrollflyten til arkitekturstrukturen. I disse testes først lavnivåmoduler, og deretter testes høynivåmoduler. Denne typen testing eller tilnærming er også kjent som induktiv resonnement og brukes som et syntesesynonym i mange tilfeller. Bottom-up-testing er brukervennlig testing og resulterer i en økning i total programvareutvikling. Denne testen resulterer i høye suksessrater med langvarige resultater.

Fordeler med bottom-up integrasjonstesting

  • Det er enkelt og enkelt å lage og utvikle testbetingelser.
  • Det er også enkelt å observere testresultater.
  • Det er ikke nødvendig å vite om detaljene i den strukturelle utformingen.
  • Lavnivåverktøy er også testet godt og er også kompatible med den objektorienterte strukturen.

Typer ikke-funksjonell testing

  1. Ytelsestesting
  2. Brukbarhetstesting
  3. Kompatibilitetstesting

1. Ytelsestesting

Ytelsestesting er en type programvaretesting som sikrer at programvareapplikasjoner fungerer som de skal under forventet arbeidsbelastning. Det er en testteknikk utført for å bestemme systemytelse i form av følsomhet, reaktivitet og stabilitet under en bestemt arbeidsbelastning.

Ytelsestesting er en type programvaretesting som fokuserer på å evaluere ytelsen og skalerbarheten til et system eller en applikasjon. Målet med ytelsestesting er å identifisere flaskehalser, måle systemytelse under ulike belastninger og forhold, og sikre at systemet kan håndtere forventet antall brukere eller transaksjoner.

Fordeler med ytelsestesting

  • Ytelsestesting sikrer systemets hastighet, belastningsevne, nøyaktighet og andre ytelser.
  • Den identifiserer, overvåker og løser problemene hvis noe oppstår.
  • Det sikrer stor optimalisering av programvaren og lar også mange brukere bruke den samtidig.
  • Det sikrer kundens så vel som sluttkundens tilfredshet. Ytelsestesting har flere fordeler som gjør det til et viktig aspekt ved programvaretesting:
  • Identifisere flaskehalser : Ytelsestesting hjelper til med å identifisere flaskehalser i systemet, for eksempel trege databasespørringer, utilstrekkelig minne eller overbelastning av nettverket. Dette hjelper utviklere med å optimalisere systemet og sikre at det kan håndtere forventet antall brukere eller transaksjoner.

2. Brukervennlighetstesting

Du designer et produkt (for eksempel et kjøleskap), og når det blir helt klart, trenger du en potensiell kunde til å teste det for å sjekke at det fungerer. For å forstå om maskinen er klar til å komme på markedet, tester potensielle kunder maskinene. Likeledes er det beste eksemplet på brukervennlighetstesting når programvaren også gjennomgår ulike testprosesser som utføres av potensielle brukere før den lanseres på markedet. Det er en del av programvareutviklingslivssyklusen (SDLC).

Fordeler og ulemper med brukervennlighetstesting

Brukervennlighetstesting foretrekkes for å evaluere et produkt eller en tjeneste ved å teste det med de riktige brukerne. I Usability-testing vil utviklings- og designteamene bruke til å identifisere problemer før koding, og resultatet vil være tidligere problemer vil bli løst. Under en brukervennlighetstest kan du,

  • Finn ut om deltakerne vil være i stand til å fullføre den spesifikke oppgaven fullstendig.
  • identifisere hvor lang tid det vil ta å fullføre den spesifikke oppgaven.
  • Gir utmerkede egenskaper og funksjoner til produktet
  • Forbedrer brukertilfredsheten og oppfyller krav basert på tilbakemeldinger fra brukere
  • Produktet blir mer effektivt og effektivt

3. Kompatibilitetstesting

Kompatibilitetstesting er programvaretesting som kommer under ikke funksjonell testing kategori, og det utføres på en applikasjon for å sjekke dens kompatibilitet (kjøreevne) på forskjellige plattformer/miljøer. Denne testen utføres bare når applikasjonen blir stabil. Dette betyr ganske enkelt at denne kompatibilitetstesten tar sikte på å sjekke den utviklede programvareapplikasjonens funksjonalitet på ulike programvarer, maskinvareplattformer, nettverkslesere etc. Denne kompatibilitetstesten er svært viktig i produktproduksjons- og implementeringssynspunkt da den utføres for å unngå fremtidige problemer angående kompatibilitet.

Fordeler med kompatibilitetstesting

  • Det sikrer full kundetilfredshet.
  • Det gir tjenester på tvers av flere plattformer.
  • Identifisering av feil under utviklingsprosessen.

Det er 4 typer Ytelsestesting

  1. Lasttesting
  2. Stresstesting
  3. Skalerbarhetstesting
  4. Stabilitetstesting

1. Lasttesting

Lasttesting bestemmer oppførselen til applikasjonen når flere brukere bruker den samtidig. Det er responsen til systemet målt under varierende belastningsforhold.

  1. Lasttestingen utføres for normale og ekstreme belastningsforhold.
  2. Lasttesting er en type ytelsestesting som simulerer en virkelig belastning på et system eller en applikasjon for å se hvordan den yter under stress.
  3. Målet med lasttesting er å identifisere flaskehalser og bestemme det maksimale antallet brukere eller transaksjoner systemet kan håndtere.
  4. Det er et viktig aspekt ved programvaretesting ettersom det bidrar til å sikre at systemet kan håndtere de forventede bruksnivåene og identifisere potensielle problemer før systemet distribueres til produksjon.

Fordeler med lasttesting:

Lasttesting har flere fordeler som gjør det til et viktig aspekt ved programvaretesting:

  1. Identifisere flaskehalser: Lasttesting hjelper til med å identifisere flaskehalser i systemet, for eksempel trege databasespørringer, utilstrekkelig minne eller overbelastning av nettverket. Dette hjelper utviklere med å optimalisere systemet og sikre at det kan håndtere forventet antall brukere eller transaksjoner.
  2. Forbedret skalerbarhet: Ved å identifisere systemets maksimale kapasitet, bidrar belastningstesting til å sikre at systemet kan håndtere et økende antall brukere eller transaksjoner over tid. Dette er spesielt viktig for nettbaserte systemer og applikasjoner som forventes å håndtere et høyt trafikkvolum.
  3. Forbedret pålitelighet: Belastningstesting hjelper til med å identifisere potensielle problemer som kan oppstå under tung belastning, for eksempel økte feilfrekvenser eller langsomme responstider. Dette bidrar til å sikre at systemet er pålitelig og stabilt når det distribueres til produksjon.

2. Stresstesting

I Stresstesting , gir vi ugunstige forhold til systemet og sjekker hvordan det fungerer under disse forholdene.

Eksempel:

  1. Testtilfeller som krever maksimalt minne eller andre ressurser blir utført.
  2. Testtilfeller som kan forårsake thrashing i et virtuelt operativsystem.
  3. Testtilfeller som kan forårsake overdreven diskkrav Ytelsestesting.

Den er designet for å teste kjøretidsytelsen til programvare i sammenheng med et integrert system. Den brukes til å teste hastigheten og effektiviteten til programmet. Det kalles også lasttesting. I den sjekker vi hva som er ytelsen til systemet i den gitte belastningen.

Eksempel:

Kontrollerer flere prosessorsykluser.

3. Skalerbarhetstesting

Skalerbarhetstesting er en type ikke-funksjonell testing der ytelsen til en programvareapplikasjon, et system, et nettverk eller en prosess testes i forhold til dens evne til å skalere opp eller nedskalere antall brukerforespørselsbelastninger eller andre slike ytelsesattributter. Det kan utføres på maskinvare-, programvare- eller databasenivå. Skalerbarhetstesting er definert som evnen til et nettverk, system, applikasjon, produkt eller prosess til å utføre funksjonen riktig når det gjøres endringer i systemets størrelse eller volum for å møte et økende behov. Det sikrer at et programvareprodukt kan håndtere den planlagte økningen i brukertrafikk, datavolum, frekvens for antall transaksjoner og mange andre ting. Den tester systemet, prosessene eller databasens evne til å møte et økende behov.

Fordeler med skalerbarhetstesting

  • Det gir mer tilgjengelighet til produktet.
  • Den oppdager problemer med lasting av nettsider og andre ytelsesproblemer.
  • Den finner og fikser problemene tidligere i produktet, noe som sparer mye tid.
  • Det sikrer sluttbrukeropplevelsen under den spesifikke belastningen. Det gir kundetilfredshet.
  • Det hjelper med effektiv sporing av verktøybruk.

4. Stabilitetstesting

Stabilitetstesting er en type programvaretesting for å sjekke kvaliteten og oppførselen til programvaren under forskjellige miljøparametere. Det er definert som produktets evne til å fortsette å fungere over tid uten feil.

Det er en ikke-funksjonell testteknikk som fokuserer på å stresse programvarekomponenten maksimalt. Stabilitetstesting utføres for å sjekke effektiviteten til et utviklet produkt utover normal driftskapasitet, som er kjent som bruddpunkt. Det har høyere betydning i feilhåndtering, programvarepålitelighet, robusthet og skalerbarhet til et produkt under stor belastning i stedet for å sjekke systematferden under normale omstendigheter.

Stabilitetstesting vurderer stabilitetsproblemer. Denne testingen er hovedsakelig ment for å sjekke om applikasjonen vil krasje når som helst eller ikke.

Fordeler med stabilitetstesting

  1. Det gir grensen for data som et system kan håndtere praktisk talt.
  2. Det gir tillit til ytelsen til systemet.
  3. Det bestemmer stabiliteten og robustheten til systemet under belastning.
  4. Stabilitetstesting fører til en bedre sluttbrukeropplevelse.

Andre typer testing

  1. Røyktesting
  2. Sanitetstesting
  3. Regresjonstesting
  4. Aksepttesting
  5. Brukeraksepttesting
  6. Utforskende testing
  7. Adhoc testing
  8. Sikkerhetstesting
  9. Globaliseringstesting
  10. Regresjonstesting
  11. Røyktesting
  12. Alfa-testing
  13. Beta-testing
  14. Objektorientert testing

1. Røyktesting

Røyktesting gjøres for å sikre at programvaren som testes er klar eller stabil for videre testing
Det kalles en røyktest ettersom testingen av et innledende bestått gjøres for å sjekke om det ikke tok fyr eller røyk i den første innkoblingen.

Eksempel:

If the project has 2 modules so before going to the module make sure that module 1 works properly.>

Fordeler med røyktesting

  1. Røyktesting er enkel å utføre.
  2. Det hjelper med å identifisere defekter i de tidlige stadiene.
  3. Det forbedrer kvaliteten på systemet.
  4. Røyktesting reduserer risikoen for feil.
  5. Røyktesting gjør fremdriften lettere tilgjengelig.

2. Sanitetstesting

Det er en delmengde av Regresjonstesting . Sanitetstesting utføres for å sikre at kodeendringene som gjøres fungerer som de skal. Sanitetstesting er et stopp for å sjekke om testing for bygget kan fortsette eller ikke. Fokuset til teamet under fornuftstestprosessen er å validere funksjonaliteten til applikasjonen og ikke detaljert testing. Sanitetstesting utføres vanligvis på en build der produksjonsdistribusjon er nødvendig umiddelbart som en kritisk feilretting.

Fordeler med sanitetstesting

  • Sanitetstesting hjelper til raskt å identifisere defekter i kjernefunksjonaliteten.
  • Det kan utføres på kortere tid siden det ikke kreves dokumentasjon for helsetesting.
  • Hvis feilene blir funnet under tilregnelighetstesting, avvises prosjektet, noe som er nyttig for å spare tid for gjennomføring av regresjonstester.
  • Denne testteknikken er ikke så dyr sammenlignet med en annen type testing.
  • Det hjelper å identifisere de avhengige manglende objektene.

3. Regresjonstesting

Prosessen med å teste de modifiserte delene av koden og delene som kan bli påvirket på grunn av modifikasjonene sikrer at ingen nye feil har blitt introdusert i programvaren etter at modifikasjonene er gjort. Regresjon betyr retur av noe, og i programvarefeltet refererer det til retur av en feil.

Fordeler med regresjonstesting

  • Det sikrer at ingen nye feil har blitt introdusert etter å ha lagt til nye funksjoner til systemet.
  • Siden de fleste testtilfellene som brukes i regresjonstesting er valgt fra den eksisterende testpakken, og vi kjenner allerede deres forventede resultater. Derfor kan det enkelt automatiseres av de automatiserte verktøyene.
  • Det bidrar til å opprettholde kvaliteten på kildekoden.

4. Aksepttesting

Aksepttesting gjøres av kundene for å kontrollere om de leverte produktene utfører de ønskede oppgavene eller ikke, som angitt i kravene. Vi bruker Objektorientert testing for å diskutere testplaner og for å gjennomføre prosjektene.

Fordeler med aksepttesting

  1. Denne testingen hjelper prosjektteamet til å kjenne brukernes ytterligere krav direkte ettersom den involverer brukerne for testing.
  2. Automatisert testkjøring.
  3. Det gir tillit og tilfredshet til kundene da de er direkte involvert i testprosessen.
  4. Det er lettere for brukeren å beskrive sitt krav.
  5. Den dekker kun Black-Box-testprosessen, og derfor vil hele funksjonaliteten til produktet bli testet.

5. Brukeraksepttesting

Brukeraksepttesting er en testmetodikk der kunder/sluttbrukere deltar i produkttesting for å validere produktet mot deres krav. Det gjøres på klientens nettsted på utviklerens nettsted. For bransjer som medisin eller romfart utføres også testing av kontraktsmessige og forskriftsmessige samsvar og operasjonelle aksepttester som en del av brukerakseptetester. UAT er kontekstavhengig og UAT-planer er utarbeidet basert på krav og er ikke pålagt å utføre alle typer brukerakseptetester og blir til og med koordinert og bidratt av testteamet.

6. Utforskende testing

Utforskende testing er en type programvaretesting der testeren står fritt til å velge enhver mulig metode for å teste programvaren. Det er en uskriptet tilnærming til programvaretesting. I utforskende testing bruker programvareutviklere sin læring, kunnskap, ferdigheter og evner til å teste programvaren utviklet av dem selv. Utforskende testing sjekker funksjonaliteten og driften av programvaren, samt identifiserer funksjonelle og tekniske feil i den. Utforskende testing har som mål å optimalisere og forbedre programvaren på alle mulige måter.

Fordeler med utforskende testing

  • Mindre forberedelse kreves: Det krever ingen forberedelse siden det er en uskriptet testteknikk.
  • Finner kritiske feil: Utforskende testing innebærer en undersøkelsesprosess som bidrar til å finne kritiske feil svært raskt.
  • Forbedrer produktiviteten: I utforskende testing bruker testerne sin kunnskap, ferdigheter og erfaring til å teste programvaren. Det bidrar til å utvide fantasien til testerne ved å utføre flere testtilfeller, og dermed forbedre den generelle kvaliteten på programvaren.

7. Adhoc-testing

Adhoc-testing er en type programvaretesting som utføres uformelt og tilfeldig etter at den formelle testen er fullført for å finne smutthull i systemet. Av denne grunn er det også kjent som Random eller Monkey testing. Adhoc-testing utføres ikke på en strukturert måte, så den er ikke basert på noen metodisk tilnærming. Det er derfor Adhoc-testing er en type ustrukturert programvaretesting.

Fordeler med Adhoc-testing

  • Feilene som ikke kan identifiseres med skriftlige testtilfeller kan identifiseres ved Adhoc-testing.
  • Det kan utføres innen en svært begrenset tid.
  • Bidrar til å lage unike testcases.
  • Denne testen bidrar til å bygge et sterkt produkt som er mindre utsatt for fremtidige problemer.
  • Denne testen kan utføres når som helst i løpet av Softthe ware Development Life Cycle Process (SDLC)

8. Sikkerhetstesting

Sikkerhetstesting er en type Programvaretesting som avdekker sårbarheter i systemet og fastslår at dataene og ressursene til systemet er beskyttet mot mulige inntrengere. Den sikrer at programvaresystemet og applikasjonen er fri for trusler eller risikoer som kan forårsake tap. Sikkerhetstesting av ethvert system er fokusert på å finne alle mulige smutthull og svakheter i systemet som kan resultere i tap av informasjon eller omdømme til organisasjonen.

Fordeler med sikkerhetstesting

  1. Identifisere sårbarheter: Sikkerhetstesting hjelper til med å identifisere sårbarheter i systemet som kan utnyttes av angripere, for eksempel svake passord, uopprettet programvare og feilkonfigurerte systemer.
  2. Forbedring av systemsikkerhet: Sikkerhetstesting bidrar til å forbedre den generelle sikkerheten til systemet ved å identifisere og fikse sårbarheter og potensielle trusler.
  3. Sikre samsvar: Sikkerhetstesting bidrar til å sikre at systemet oppfyller relevante sikkerhetsstandarder og forskrifter, slik som HIPAA, PCI DSS og SOC2.

9. Globaliseringstesting

Globaliseringstesting er en type programvaretesting som utføres for å sikre at systemet eller programvareapplikasjonen kan fungere uavhengig av det geografiske og kulturelle miljøet. Den sikrer at applikasjonen kan brukes over hele verden og godtar alle språktekster. I dag med økningen i ulike teknologier, er hvert programvareprodukt utformet på en slik måte at det er et globalisert programvareprodukt.

Fordeler med globaliseringstesting

  • Hjelper med å lage skalerbare produkter: Det gjør programvareproduktet mer fleksibelt og skalerbart.
  • Spare tid: Det sparer samlet tid og krefter for programvaretesting.
  • Reduser tid for lokaliseringstesting: Globaliseringstesting bidrar til å redusere tiden og kostnadene ved lokaliseringstesting.

10. Regresjonstesting

Regresjonstesting er en testmetode som brukes for å sikre at endringer i programvaren ikke introduserer nye feil eller fører til at eksisterende funksjonalitet bryter. Det gjøres vanligvis etter at det er gjort endringer i koden, for eksempel feilrettinger eller nye funksjoner, og brukes til å bekrefte at programvaren fortsatt fungerer etter hensikten.

Regresjonstesting kan utføres på forskjellige måter, for eksempel:

  • Tester på nytt : Dette innebærer å teste hele applikasjonen eller spesifikk funksjonalitet som ble påvirket av endringene.
  • Re henrettelse : Dette innebærer å kjøre en tidligere utført testpakke for å sikre at endringene ikke bryter noen eksisterende funksjonalitet.
  • Sammenligning : Dette innebærer å sammenligne gjeldende versjon av programvaren med en tidligere versjon for å sikre at endringene ikke bryter noen eksisterende funksjonalitet.

Fordeler med regresjonstesting

  • Det bidrar til å sikre at endringer i programvaren ikke introduserer nye feil eller fører til at eksisterende funksjonalitet bryter.
  • Det er med på å sikre at programvaren fortsetter å fungere etter hensikten etter at endringer er gjort.
  • Det bidrar til å forbedre den generelle påliteligheten og stabiliteten til programvaren.
  • Det er viktig å huske på at regresjonstesting er en pågående prosess som bør gjøres gjennom hele programvare utvikling
  • livssyklus for å sikre at programvaren fortsetter å fungere etter hensikten. Det bør automatiseres så mye som mulig for å spare tid og ressurser. I tillegg er det viktig å ha en veldefinert regresjonstestpakke som dekker

Hver gang en ny modul legges til fører til endringer i programmet. Denne typen testing sørger for at hele komponenten fungerer som den skal selv etter å ha lagt til komponenter i hele programmet.

Eksempel:

Anta at vi har modulansatte, studenter og økonomi i skoleregistrene som kombinerer disse modulene og sjekker om integreringen av disse modulene fungerer bra i regresjonstesting.

11. Røyktesting

Røyktesting gjøres for å sikre at programvaren som testes er klar eller stabil for videre testing
Det kalles en røyktest ettersom testingen av et innledende bestått gjøres for å sjekke om det ikke tok fyr eller røyk i den første innkoblingen.

Eksempel:

Hvis prosjektet har 2 moduler, må du kontrollere at modul 1 fungerer som den skal før du går til modulen.

12. Alfatesting

Alfa-testing er en type valideringstesting. Det er en type akseptansetesting som gjøres før produktet slippes ut til kundene. Det gjøres vanligvis av QA-folk.

Eksempel:

Når programvaretesting utføres internt i organisasjonen.

13. Betatesting

De betatest utføres på ett eller flere kundesteder av sluttbrukeren av programvaren. Denne versjonen er utgitt for et begrenset antall brukere for testing i et sanntidsmiljø.

Eksempel:

Når programvaretesting utføres for et begrenset antall personer.

14. Objektorientert testing

Objektorientert testing testing er en kombinasjon av ulike testteknikker som bidrar til å verifisere og validere objektorientert programvare. Denne testen utføres på følgende måte:

  • Testing av krav,
  • Design og analyse av testing,
  • Testing av kode,
  • Integrasjonstesting,
  • Systemtesting,
  • Brukertesting.

Fordeler med programvaretesting

  1. Forbedret programvarekvalitet og pålitelighet.
  2. Tidlig identifisering og utbedring av feil.
  3. Forbedret kundetilfredshet.
  4. Økt tillit hos interessentene.
  5. Reduserte vedlikeholdskostnader.
  6. Kundetilfredshet
  7. Kostnadseffektiv
  8. Kvalitetsprodukt
  9. Lav feil
  10. Feilfri applikasjon
  11. Sikkerhet
  12. Få fart på utviklingsprosessen
  13. Tidlig defektdeteksjon
  14. Pålitelig produkt

Ulemper med programvaretesting

  • Tidkrevende og øker prosjektkostnaden.
  • Dette kan bremse utviklingsprosessen.
  • Ikke alle feil kan bli funnet.
  • Kan være vanskelig å fullstendig teste komplekse systemer.
  • Potensial for menneskelig feil under testprosessen.

Spørsmål for praksis

1. Med hensyn til programvaretesting, vurder en flytgraf G med én tilkoblet komponent. La E være antall kanter, N være antall noder, og P være antall predikatnoder til G. Tenk på følgende fire uttrykk: [GATE IT -2006]

  • I. E-N+P
  • II. E-N+2
  • III. P+2
  • IV. P+1

Den syklomatiske kompleksiteten til G er gitt av

  • (EN) I eller III
  • (B) II eller III
  • (C) II eller IV
  • (D) I eller IV

Løsning: Riktig svar er (C).

Ofte stilte spørsmål om typer programvaretesting

1. Hva er et testtilfelle?

År: Testtilfeller kan enkelt bestemmes som forhold som en tester vil sjekke om koden kjører perfekt eller ikke.

2. Hva er bruken av automatiseringstesting?

År: Automatiseringstesting brukes til å redusere testarbeidet, og tester også raskere leveringsevne.

3. Hva er forskjellen mellom manuell og automatisert testing?

År: Manuell testing innebærer at en menneskelig tester samhandler med programvaren for å finne feil. Automatisert testing bruker skript eller verktøy for å automatisere repeterende testtilfeller.