Programvaretesting, eller programvaretesting, er også kjent som applikasjonstesting.
Programvaretesting er først og fremst en stor prosess som består av flere sammenkoblede prosesser. Hovedmålet med programvaretesting er å måle integriteten til programvaren sammen med dens fullstendighet i forhold til dens grunnleggende krav. Programvaretesting innebærer å undersøke og teste programvare gjennom ulike testprosesser. Målene for disse prosessene kan omfatte:
Verifisering av programvarens fullstendighet mot funksjonelle/forretningskrav
Identifisere feil/tekniske feil og sikre at programvaren er feilfri
Evaluering av brukervennlighet, ytelse, sikkerhet, lokalisering, kompatibilitet og installasjon
Testet programvare må bestå alle tester for å være komplett eller egnet for bruk. Noen av de forskjellige typene programvaretestmetoder inkluderer testing av hvit boks, testing av svart boks og testing av grå boks. Videre kan programvaren testes som en helhet, i komponenter/enheter eller innenfor et strømførende system.
Black Box Testing er en programvaretestingsteknikk som fokuserer på å analysere funksjonaliteten til programvaren, med hensyn til den interne funksjonen til systemet. Black Box Testing ble utviklet som en metode for å analysere kundekrav, spesifikasjoner og designstrategier på høyt nivå.
En Black Box Testing-tester velger et sett med gyldige og ugyldige kodeutførelse og inndatabetingelser og sjekker for gyldige utdatasvar.
Black Box-testing er også kjent som funksjonell testing eller lukket boks-testing.
En søkemotor er et enkelt eksempel på en applikasjon som er gjenstand for black box-testing. En søkemotorbruker skriver inn tekst i søkefeltet i en nettleser. Søkemotoren lokaliserer og henter deretter resultater relatert til brukerdata (utdata).
Fordelene med Black Box-testing inkluderer:
Black Box-testing har også noen ulemper, som følger:
Under white-box-testing kjøres kode med forhåndsvalgte inngangsverdier for å validere de forhåndsvalgte utgangsverdiene. White-box-testing innebærer ofte å skrive stubbekode (en kodebit som brukes til å erstatte en spesifikk funksjon. En stubbe kan simulere oppførselen til eksisterende kode, for eksempel en prosedyre på en ekstern maskin.) og også drivere.
Fordelene med white-box-testing inkluderer:
Ulempene inkluderer:
En enhetstest er en komponent i Software Development Life Cycle (SDLC) der en omfattende testprosedyre brukes individuelt på de minste delene av et programvareprogram for ønsket egnethet eller oppførsel.
En enhetstest er en kvalitetsmåling og -evalueringsprosedyre som brukes i de fleste programvareutviklingsaktiviteter for bedrifter. Generelt sett evaluerer en enhetstest hvordan programvarekoden samsvarer med det overordnede målet for programvaren/applikasjonen/programmet og hvordan dens egnethet påvirker andre mindre enheter. Enhetstester kan gjøres manuelt – av en eller flere utviklere – eller gjennom en automatisert programvareløsning.
Under testing er hver enhet isolert fra hovedprogrammet eller grensesnittet. Enhetstester utføres vanligvis etter utvikling og før distribusjon, noe som letter integrasjon og tidlig problemdeteksjon. Størrelsen eller omfanget av en enhet varierer avhengig av programmeringsspråket, programvareapplikasjonen og testmålene.
Funksjonell testing er en testprosess som brukes innen programvareutvikling hvor programvare testes for å sikre at den overholder alle krav. Det er en måte å sjekke programvare for å sikre at den har all nødvendig funksjonalitet spesifisert i funksjonskravene.
Funksjonell testing brukes hovedsakelig for å verifisere at et stykke programvare gir samme utdata som kreves av sluttbrukeren eller virksomheten. Vanligvis innebærer funksjonell testing å evaluere og sammenligne hver programvarefunksjon mot forretningskrav. Programvaren testes ved å gi den noen relaterte input, slik at utdataene kan evalueres for å se hvordan den samsvarer med, forholder seg til eller varierer fra de grunnleggende kravene. I tillegg sjekker funksjonstester også brukervennligheten til programvaren, for eksempel å sørge for at navigasjonsfunksjonene fungerer etter behov.
Regresjonstesting er en type programvaretesting som brukes til å avgjøre om nye problemer er et resultat av programvareendringer.
Før en endring tas i bruk, testes et program. Etter at en endring er tatt i bruk, testes programmet på nytt i utvalgte områder for å oppdage om endringen har skapt nye feil eller problemer, eller om den faktiske endringen har tjent sitt tiltenkte formål.
Regresjonstesting er avgjørende for store programvareapplikasjoner, siden det ofte er vanskelig å vite om endring av en del av et problem har skapt et nytt problem for en annen del av applikasjonen. For eksempel kan en endring i et låneskjema for banksøknad føre til at en månedlig transaksjonsrapport mislykkes. I de fleste tilfeller kan problemene virke urelaterte, men de kan faktisk være årsaken til frustrasjon blant applikasjonsutviklere.
Andre situasjoner som krever regresjonstesting inkluderer å oppdage om visse endringer oppnår et fastsatt mål eller testing for nye farer forbundet med problemer som dukker opp igjen etter en periode uten problemer.
Moderne regresjonstesting håndteres først og fremst gjennom spesialiserte kommersielle testverktøy som tar øyeblikksbilder av eksisterende programvare som deretter sammenlignes etter å ha tatt i bruk en spesifikk endring. Det er nesten umulig for menneskelige testere å utføre de samme oppgavene like effektivt som automatiserte programvaretestere. Dette gjelder spesielt med store og komplekse programvareapplikasjoner innenfor store IT-miljøer som banker, sykehus, produksjonsbedrifter og store forhandlere.
Stresstesting refererer til testing av programvare eller maskinvare for å avgjøre om ytelsen er tilfredsstillende under ekstreme og ugunstige forhold, som kan oppstå som et resultat av stor nettverkstrafikk, prosessbelastning, underklokking, overklokking og høye krav til ressursbruk.
De fleste systemer er utviklet forutsatt normale driftsforhold. Derfor, selv om en grense overskrides, er feil ubetydelige dersom systemet stresstestes under utvikling.
Stresstesting brukes i følgende sammenhenger:
Automatisert testing (software test automation) er en tilnærming til kodetesting som gjør bruk av spesielle programvareverktøy som kjører tester automatisk og deretter sammenligner faktiske testresultater med forventede resultater.
Automatisert testing spiller en viktig rolle i Continuous Delivery (CD), Continuous Integration (CI), DevOps og DevSecOps. De viktigste fordelene med automatisert testing inkluderer:
I programvareutvikling er det spesielt nyttig å utføre automatiserte tester under byggeprosessen for å sikre at en applikasjon er fri for byggefeil og utfører den tiltenkte funksjonen.
Å ta seg tid til å automatisere programvaretesting vil til slutt spare utviklere tid ved å redusere risikoen for at en kodeendring vil ødelegge eksisterende funksjonalitet.
Testing er et svært viktig stadium i utviklingsprosessen. Sikrer at alle feil er fikset og at produktet, programvaren eller maskinvaren fungerer etter hensikten eller så nær målytelsen som mulig. Automatisert testing, snarere enn manuell testing, er avgjørende for å konsekvent levere kostnadseffektiv programvare som oppfyller brukernes behov på en rettidig måte med minimale defekter.
Manuell testing utføres fortsatt på ulike tidspunkt under utviklingen, men dette gjøres for det meste av utviklerne eller maskinvareingeniørene selv for raskt å se om endringene de har gjort har hatt ønsket effekt.
Ercole Palmeri
Sist mandag kunngjorde Financial Times en avtale med OpenAI. FT lisensierer sin journalistikk i verdensklasse...
Millioner av mennesker betaler for strømmetjenester og betaler månedlige abonnementsavgifter. Det er vanlig oppfatning at du...
Coveware by Veeam vil fortsette å tilby responstjenester for cyberutpressing. Coveware vil tilby kriminaltekniske og utbedringsmuligheter...
Prediktivt vedlikehold revolusjonerer olje- og gasssektoren, med en innovativ og proaktiv tilnærming til anleggsledelse...