Artikler

Hvad er softwaretest, hvad vil det sige at teste software

Softwaretest er et sæt processer til at undersøge, evaluere og fastslå fuldstændigheden og kvaliteten af ​​software skrevet til computere. Sikrer overholdelse af et softwareprodukt med hensyn til regulatoriske, forretningsmæssige, tekniske, funktionelle og brugerkrav.

Softwaretest eller softwaretest er også kendt som applikationstest.

Softwaretest er primært en stor proces, der består af flere indbyrdes forbundne processer. Hovedformålet med softwaretest er at måle softwarens integritet sammen med dens fuldstændighed i forhold til dens grundlæggende krav. Softwaretest involverer at undersøge og teste software gennem forskellige testprocesser. Målene for disse processer kan omfatte:

Verifikation af softwarens fuldstændighed i forhold til funktionelle/forretningsmæssige krav
Identifikation af fejl/tekniske fejl og sikring af, at softwaren er fejlfri
Evaluering af brugervenlighed, ydeevne, sikkerhed, lokalisering, kompatibilitet og installation
Testet software skal bestå alle test for at være komplet eller egnet til brug. Nogle af de forskellige typer softwaretestmetoder inkluderer test af hvide bokse, test af sorte bokse og test af grå bokse. Desuden kan softwaren testes som en helhed, i komponenter/enheder eller i et strømførende system.

Black Box test

Black Box Testing er en softwaretestteknik, der fokuserer på at analysere softwarens funktionalitet med hensyn til systemets interne funktion. Black Box Testing er udviklet som en metode til at analysere kundekrav, specifikationer og designstrategier på højt niveau.

En Black Box Test-tester vælger et sæt af gyldige og ugyldige kodeudførelse og inputbetingelser og kontrollerer for gyldige outputsvar.

Black Box Testing er også kendt som funktionel test eller lukket boks test.

En søgemaskine er et simpelt eksempel på en applikation, der er genstand for black box-test. En søgemaskinebruger indtaster tekst i søgefeltet i en webbrowser. Søgemaskinen lokaliserer og henter derefter brugerdataresultater (output).

Fordelene ved Black Box-test inkluderer:

  • Enkelhed: Letter test af projekter på højt niveau og komplekse applikationer
  • Spar på ressourcer: Testere fokuserer på softwarens funktionalitet.
  • Testcases: Fokus på softwarefunktionalitet for at lette hurtig udvikling af testcases.
  • Giver fleksibilitet: ingen specifik programmeringsviden er påkrævet.

Black Box-test har også nogle ulemper, som følger:

  • Testcase/script design og vedligeholdelse kan være udfordrende, fordi Black Box-testværktøjer afhænger af kendte input.
  • Interaktion med den grafiske brugergrænseflade (GUI) kan ødelægge testscripts.
  • Testene vedrører kun applikationens funktioner.

White Box Test

Under white-box-testning køres kode med forudvalgte inputværdier for at validere de forudvalgte outputværdier. White-box-test involverer ofte at skrive stub-kode (kodestykke, der bruges til at erstatte en specifik funktion. En stub kan simulere adfærden af ​​eksisterende kode, såsom en procedure på en fjernmaskine.) og også drivere.

Fordelene ved white-box test inkluderer:

  • Muliggør genbrug af testcases og giver større stabilitet
  • Letter kodeoptimering
  • Letter at finde placeringen af ​​skjulte fejl i de tidlige udviklingsstadier
  • Letter effektiv applikationstest
  • Fjern unødvendige kodelinjer


Ulemperne omfatter:

  • Kræver en erfaren tester med viden om intern struktur
  • Tager tid
  • Høje omkostninger
  • Bit-of-code validering er vanskelig.
  • White-box-test omfatter enhedstest, integrationstest og regressionstest.

Enhedstest

En enhedstest er en komponent i Software Development Life Cycle (SDLC), hvor en omfattende testprocedure individuelt anvendes på de mindste dele af et softwareprogram for ønsket egnethed eller adfærd.


En enhedstest er en kvalitetsmåling og -evalueringsprocedure, der anvendes i de fleste virksomhedssoftwareudviklingsaktiviteter. Generelt evaluerer en enhedstest, hvor godt softwarekoden er i overensstemmelse med softwarens/applikationens/programmets overordnede mål, og hvordan dens egnethed påvirker andre mindre enheder. Enhedstest kan udføres manuelt – af en eller flere udviklere – eller gennem en automatiseret softwareløsning.

Under testning er hver enhed isoleret fra hovedprogrammet eller grænsefladen. Enhedstest udføres typisk efter udvikling og før implementering, hvilket letter integration og tidlig problemdetektion. Størrelsen eller omfanget af en enhed varierer afhængigt af programmeringssproget, softwareapplikationen og testmålene.

Funktionel test

Funktionel test er en testproces, der bruges inden for softwareudvikling, hvor software testes for at sikre, at den overholder alle krav. Det er en måde at kontrollere software på for at sikre, at den har al den nødvendige funktionalitet, der er specificeret i dets funktionelle krav.


Funktionel test bruges hovedsageligt til at verificere, at et stykke software giver det samme output som krævet af slutbrugeren eller virksomheden. Funktionel test involverer typisk evaluering og sammenligning af hver softwarefunktion i forhold til forretningskrav. Softwaren testes ved at give den noget relateret input, så outputtet kan evalueres for at se, hvordan det er i overensstemmelse med, relaterer til eller varierer fra dets grundlæggende krav. Ydermere kontrollerer funktionstest også softwarens anvendelighed, for eksempel at sikre sig, at navigationsfunktionerne fungerer efter behov.

Nyhedsbrev om innovation
Gå ikke glip af de vigtigste nyheder om innovation. Tilmeld dig for at modtage dem via e-mail.

Regressionstest

Regressionstest er en type softwaretest, der bruges til at afgøre, om nye problemer er resultatet af softwareændringer.

Før en ændring anvendes, testes et program. Efter en ændring er anvendt, testes programmet igen i udvalgte områder for at opdage, om ændringen har skabt nye fejl eller problemer, eller om den faktiske ændring har tjent det tilsigtede formål.


Regressionstest er afgørende for store softwareapplikationer, da det ofte er svært at vide, om ændring af en del af et problem har skabt et nyt problem for en anden del af applikationen. For eksempel kan en ændring af en bankansøgningslåneform medføre, at en månedlig transaktionsrapport mislykkes. I de fleste tilfælde kan problemerne virke uafhængige, men de kan faktisk være årsagen til frustration blandt applikationsudviklere.

Andre situationer, der kræver regressionstestning, omfatter opdagelse af, om visse ændringer opnår et fastsat mål, eller test for nye farer forbundet med problemer, der dukker op igen efter en periode uden problemer.

Moderne regressionstest håndteres primært gennem specialiserede kommercielle testværktøjer, der tager snapshots af eksisterende software, som derefter sammenlignes efter at have anvendt en specifik ændring. Det er næsten umuligt for menneskelige testere at udføre de samme opgaver lige så effektivt som automatiserede softwaretestere. Det gælder især store og komplekse softwareapplikationer inden for store IT-miljøer som banker, hospitaler, produktionsvirksomheder og store detailhandlere.

Stresstest

Stresstest refererer til test af software eller hardware for at afgøre, om dens ydeevne er tilfredsstillende under ekstreme og ugunstige forhold, som kan opstå som følge af tung netværkstrafik, procesbelastning, underclocking, overclocking og spidsbelastning af ressourcer.

De fleste systemer er udviklet under forudsætning af normale driftsforhold. Derfor, selvom en grænse overskrides, er fejl ubetydelige, hvis systemet stresstestes under udvikling.


Stresstest bruges i følgende sammenhænge:

  • Software: Stresstest lægger vægt på tilgængelighed og fejlhåndtering under ekstremt store belastninger for at sikre, at softwaren ikke går ned på grund af utilstrækkelige ressourcer. Softwarestresstest fokuserer på identificerede transaktioner for at afbryde transaktioner, som er stærkt stressede under test, selv når en database ikke er indlæst. Stresstestprocessen belaster samtidige brugere ud over normale systemniveauer for at finde det svageste led i systemet.
  • Hardware: Stresstest sikrer stabilitet i normale computermiljøer.
  • Websites: Stresstest bestemmer grænserne for enhver sidefunktionalitet.
  • CPU: Ændringer såsom overspænding, underspænding, underlocking og overlocking kontrolleres for at afgøre, om de kan håndtere store belastninger ved at køre et CPU-intensivt program for at teste for systemnedbrud eller fryser. CPU-stresstest er også kendt som torturtest.

Automatiske tests

Automatiseret test (software test automation) er en tilgang til kodetest, der gør brug af specielle softwareværktøjer, der kører test automatisk og derefter sammenligner faktiske testresultater med forventede resultater.

Automatiseret test spiller en vigtig rolle i Continuous Delivery (CD), Continuous Integration (CI), DevOps og DevSecOps. De vigtigste fordele ved automatiseret test inkluderer:

  • Automatiseret test sparer udviklere tid og penge ved at gøre testprocessen mere effektiv.
  • Automatiserede test identificerer fejl mere effektivt end manuelle tests.
  • Når test er automatiseret, kan flere testværktøjer implementeres parallelt.


I softwareudvikling er det især nyttigt at udføre automatiserede test under byggeprocessen for at sikre, at en applikation er fri for byggefejl og udfører sin tilsigtede funktion.

At tage sig tid til at automatisere softwaretest vil i sidste ende spare udviklere tid ved at reducere risikoen for, at en kodeændring vil bryde eksisterende funktionalitet.


Test er et meget vigtigt trin i udviklingsprocessen. Sikrer, at alle fejl er rettet, og at produktet, softwaren eller hardwaren fungerer efter hensigten eller så tæt på målydelsen som muligt. Automatiseret test, snarere end manuel test, er afgørende for konsekvent at levere omkostningseffektiv software, der opfylder brugernes behov rettidigt med minimale defekter.

Typer af automatiserede test, der bruges i softwareudvikling
  • Enhedstest: Test et enkelt program på lavt niveau i et isoleret miljø, før du verificerer dets integration med andre enheder.
  • Integrationstest: Enhedstest og andre applikationskomponenter testes som en kombineret enhed.
  • Funktionstest: Tjek om et softwaresystem opfører sig som det skal.
  • Ydelsestest: Evaluer applikationens robusthed under højere end forventet belastning. Ydeevnetest afslører ofte flaskehalse.
  • Røgtest: Bestemmer, om en build er stabil nok til at fortsætte med yderligere test.
  • Browsertest: Bekræft, at softwarekomponenter er kompatible med forskellige browsere.

Manuel test udføres stadig på forskellige tidspunkter under udviklingen, men dette udføres for det meste af udviklerne eller hardwareingeniørerne selv for hurtigt at se, om de ændringer, de har foretaget, har haft den ønskede effekt.

Ercole Palmeri

Nyhedsbrev om innovation
Gå ikke glip af de vigtigste nyheder om innovation. Tilmeld dig for at modtage dem via e-mail.

Seneste artikler

Udgivere og OpenAI underskriver aftaler for at regulere strømmen af ​​information, der behandles af kunstig intelligens

Sidste mandag offentliggjorde Financial Times en aftale med OpenAI. FT licenserer sin verdensklasses journalistik...

30 April 2024

Onlinebetalinger: Her er hvordan streamingtjenester får dig til at betale for evigt

Millioner af mennesker betaler for streamingtjenester og betaler månedlige abonnementsgebyrer. Det er almindelig opfattelse, at du...

29 April 2024

Veeam har den mest omfattende support til ransomware, fra beskyttelse til respons og gendannelse

Coveware by Veeam vil fortsætte med at levere responstjenester til cyberafpresning. Coveware vil tilbyde kriminaltekniske og afhjælpende funktioner...

23 April 2024

Grøn og digital revolution: Hvordan prædiktiv vedligeholdelse transformerer olie- og gasindustrien

Forudsigende vedligeholdelse revolutionerer olie- og gassektoren med en innovativ og proaktiv tilgang til anlægsstyring...

22 April 2024