fbpx

Ikke-funktionel testning henviser til softwaretestning, der udføres for at teste de ikke-funktionelle aspekter af en softwareapplikation.

Der findes mange forskellige typer af ikke-funktionel testning, og nogle typer af softwaretestning kan betragtes som både funktionel testning og ikke-funktionel testning på samme tid.

Ikke-funktionel testning er nødvendig, fordi den evaluerer væsentlige brugerkriterier som f.eks. ydeevne og brugervenlighed og verificerer, om softwaren fungerer som forventet uden for dens grundlæggende funktionalitet.

I denne artikel udforsker vi definitionen og karakteristika for ikke-funktionel testning sammen med typer af ikke-funktionel testning, tilgange til ikke-funktionel testning og testværktøjer, der kan hjælpe med at optimere og forbedre dine egne ikke-funktionelle testprocesser.

 

Hvad er ikke-funktionel testning?

tjekliste uat, værktøjer til test af webapplikationer, automatisering og mere

Ikke-funktionel testning er enhver form for softwaretestning, hvor ikke-funktionelle aspekter af softwarebygningen testes.

Eksempler på ikke-funktionelle test omfatter test, der er designet til at vurdere kapacitet, ydeevne, brugervenlighed, genoprettelse og portabilitet.

Det er lige så vigtigt at verificere kvaliteten og status for hvert af disse ikke-funktionelle kriterier som at verificere funktionerne i et stykke software, men disse parametre testes ikke i standard funktionstest.

Ikke-funktionel test betyder i bund og grund, at man tester “hvordan” softwarens funktioner fungerer i stedet for at teste “om” de fungerer.

 

1. Hvornår har du brug for ikke-funktionel testning?

 

Ikke-funktionel testning udføres i systemtestfasen af softwaretestning, efter at enhedstest og integrationstest har fundet sted.

Under systemtestningen udfører testerne både funktionel og ikke-funktionel testning, og de starter med funktionel testning.

Når testerne har fastslået, at softwaren fungerer som forventet, udfører de ikke-funktionelle test for at vurdere, om den også opfylder de ikke-funktionelle parametre.

Det er normalt nødvendigt at udføre funktionel testning før ikke-funktionel testning, fordi det er umuligt at teste pålideligheden eller ydeevnen af funktioner, der slet ikke fungerer. Ikke-funktionel testning er en af de sidste faser af softwaretestning før brugeraccepteringstest og den endelige produktfrigivelse.

 

2. Når du ikke har brug for ikke-funktionel testning

 

Det er altid vigtigt at teste ikke-funktionelle aspekter af software, medmindre de allerede er blevet testet og fundet tilstrækkelige.

Selv om du har udført ikke-funktionel testning af software før, kan det være nødvendigt at teste ikke-funktionelle parametre igen, f.eks. hvis der er blevet tilføjet nye funktioner til softwaren, eller hvis der er foretaget ændringer i koden, som kan påvirke ydeevne og pålidelighed.

 

Målene med ikke-funktionel testning

opklaring af en del forvirring i forbindelse med automatisering af softwaretestning

Formålet med ikke-funktionel testning er at kontrollere, at produktet opfylder brugernes forventninger, og at optimere produktet inden frigivelse.

Det kan også hjælpe udviklere og testere med at forstå softwaren bedre og bruge denne viden i fremtidige optimeringer.

 

1. Kvalitetskontrol

 

Ikke-funktionel testning har til formål at teste faktorer, der påvirker produktets anvendelighed, pålidelighed, vedligeholdelsesvenlighed, portabilitet og effektivitet.

Test af disse elementer sikrer, at det produkt, der frigives på markedet, er af tilstrækkelig høj kvalitet og opfylder brugernes forventninger med hensyn til ydeevne, indlæsningstider og brugerkapacitet.

 

2. Risikostyring

 

Ikke-funktionel testning reducerer også risikoen og omkostningerne forbundet med at frigive et produkt til markedet ved at maksimere chancerne for, at teamet frigiver et tilfredsstillende produkt.

Ved at kontrollere de ikke-funktionelle parametre i softwareopbygningen er det muligt at reducere omkostningerne ved at frigive produktet, fordi behovet for yderligere udvikling og senere ændringer af softwaren reduceres.

 

3. Optimering

 

Ikke-funktionel testning hjælper testere og udviklere med at optimere softwareopbygningen og optimere ydeevnen under installation, opsætning, udførelse og brug.

Du kan også bruge ikke-funktionel testning til at optimere den måde, du styrer og overvåger softwareopbygningen på.

 

4. Indsamling af data

 

Ikke-funktionel testning giver testerne mulighed for at indsamle og producere målinger og metrikker, som kan bruges af testteams til intern forskning og udvikling.

Du kan bruge de data, du indsamler fra ikke-funktionelle test, til at forstå, hvordan dit produkt fungerer, og hvordan du kan optimere det mere effektivt for brugerne.

 

5. Forbedring af viden

 

Ikke-funktionel testning forbedrer og øger testteamets viden om produktets adfærd og de teknologier, som det anvender.

Det hjælper ikke kun testteams med at forstå den software, de arbejder på, bedre, men det kan også give nyttig viden, som hjælper testerne med at forstå fremtidige builds bedre.

 

Hvem er involveret i ikke-funktionel testning?

der er involveret i softwaretestning

Ikke-funktionel testning udføres normalt af testere i QA-miljøet, men nogle gange kan udviklere udføre ikke-funktionel testning under udviklingen.

Systemtestning udføres næsten altid af testere, og det er i denne fase af testningen, at de fleste ikke-funktionelle test finder sted.

Hvis de ikke-funktionelle test ikke slår fejl, sender testerne softwaren tilbage til udviklerne for at rette fejlene i ydelsen, før de tester igen.

 

Fordelene ved ikke-funktionel testning

brugeraccepteringstest (UAT)

Der er mange fordele ved at udføre ikke-funktionel testning, og ikke-funktionel testning er et vigtigt skridt i systemtestning.

Uden ikke-funktionel testning ville testteams ikke være i stand til at verificere, at softwaren faktisk opfylder kundens krav, eller at den opfylder de krav, der er fastsat i softwareudviklingsplanen.

 

1. Forbedre softwarens ydeevne

 

Ikke-funktionel testning kan hjælpe testere og udviklere med at forbedre softwareapplikationernes generelle ydeevne. Ikke-funktionelle test identificerer områder, hvor softwarens ydeevne er utilstrækkelig, f.eks. med hensyn til indlæsningshastighed eller behandlingskapacitet, og opfordrer softwareteams til at foretage ændringer for at rette op på disse fejl.

Dette sikrer, at softwareteams kun frigiver software til offentligheden, når den er klar, og når dens ydeevne er god nok.

 

2. Hold softwaren sikker

 

Ikke-funktionel testning omfatter sikkerhedstest, som er afgørende for at sikre, at en softwareopbygning er sikker og beskyttet mod eksterne trusler og angreb.

Sikkerhedstest giver testere og udviklere mulighed for at kontrollere, at software beskytter fortrolige data tilstrækkeligt og har tilstrækkelig sikkerhed til at beskytte mod moderne cyberangreb.

 

3. Forbedre softwarens brugervenlighed

 

Ikke-funktionel testning er den bedste måde at gøre din software mere brugervenlig på, især ved at udføre brugervenlighedstest, der vurderer, hvor let det er for brugerne at lære at bruge og betjene din software.

Brugervenlighed er meget vigtig, fordi den er afgørende for, hvor tilfredse brugerne er med din software, og sikrer, at brugerne er i stand til at udnytte alt det, din software tilbyder, fuldt ud.

 

4. Sikre, at softwaren opfylder brugernes behov

 

At sikre, at software opfylder brugernes behov, bør være en af de vigtigste prioriteter for alle softwareudviklings- og testteams. Ud over at forvente, at softwaren er funktionel, forventer brugerne også, at softwaren fungerer godt, kører problemfrit og beskytter fortrolige data.

Ikke-funktionel testning er en af de eneste måder at sikre, at din software opfylder disse krav.

 

Udfordringerne ved ikke-funktionel testning

Der er nogle ulemper ved at udføre ikke-funktionel testning. Mens ikke-funktionel testning er afgørende i systemtestfasen af softwaretestning, kan processen med ikke-funktionel testning udgøre en udfordring for softwareteams, der ikke har tilstrækkelige ressourcer og værktøjer.

 

1. Gentagelse

 

Ikke-funktionel testning i softwaretestning skal udføres hver gang, softwaren opdateres af udviklerne, eller hver gang koden ændres. Det betyder, at ikke-funktionel testning kan være meget gentagende, hvilket ikke blot tager tid, men også trætter testerne.

Trætte testere, der udfører meget gentagne opgaver, er også mere tilbøjelige til at blive distraheret og begå fejl.

 

2. Omkostninger

 

Fordi ikke-funktionel testning er så gentagende, kan det også være ret dyrt, især for testteams, der er afhængige af manuel ikke-funktionel testning.

Softwareteams skal afsætte tid og budget til hyppig ikke-funktionel testning, og softwareudviklere skal betale ekstra for denne ekstra testning.

 

Hvad tester vi ved ikke-funktionel testning?

 

Ikke-funktionel testning kan bruges til at teste mange forskellige ikke-funktionelle parametre, som hver især påvirker systemets kvalitet og brugervenlighed. Hver af disse parametre testes under systemtestningen i forhold til kriterier, der er fastsat i testplanen.

 

1. Sikkerhed

 

Sikkerhedstestning er en type ikke-funktionel testning, der måler, hvor godt et system er beskyttet mod eksterne trusler og angreb. Det drejer sig bl.a. om forsætlige sikkerhedsbrud samt datalækager og andre almindelige brud.

Sikkerhedstestning er et vigtigt skridt i ikke-funktionel testning, fordi det giver slutbrugere og kunder sikkerhed for, at deres data er sikre.

 

2. Pålidelighed

 

Testere bruger ikke-funktionel testning til at vurdere softwares pålidelighed og til at sikre, at softwaren til stadighed kan udføre sine specificerede funktioner uden fejl.

Mens funktionel testning sikrer, at softwaren udfører sine nøglefunktioner, er det kun ikke-funktionel testning, der reelt tester pålideligheden og gentageligheden af disse resultater.

 

3. Overlevelsesevne

 

Overlevelsesevne beskriver, hvordan et softwaresystem reagerer i tilfælde af funktionsfejl, og test af overlevelsesevne sikrer, at systemet kan genoprette sig selv, hvis der opstår fejl og svigt.

Ved test af overlevelsesevne kan det f.eks. kontrolleres, om softwaren er i stand til at gemme data for at minimere tab af data i tilfælde af pludselige fejl.

 

4. Tilgængelighed

 

Softwarens tilgængelighed henviser til den grad, i hvilken brugeren kan stole på systemet under driften. Dette kaldes også stabilitet, og det testes ved hjælp af stabilitetstest.

Stabilitetsprøvning har en vis lighed med pålidelighedsprøvning, fordi det kontrolleres, om systemet kan fungere efter de forventede standarder på en ensartet måde.

 

5. Brugervenlighed

 

Brugervenlighedstest er en anden vigtig type ikke-funktionel test i softwaretestning. Denne type test vurderer, hvor godt brugeren kan lære, betjene og bruge softwaresystemet ved at følge instruktionerne på skærmen og andre grundlæggende vejledninger.

Brugervenlighedstestning er vigtig, for hvis softwaren ikke er meget brugervenlig, vil de fleste brugere simpelthen opgive den eller vælge at bruge noget andet.

 

6. Skalerbarhed

 

Ved test af skalerbarhed testes det, i hvilken grad en softwareapplikation kan udvide sin behandlingskapacitet for at imødekomme en stigende efterspørgsel.

Hvis softwaren f.eks. er designet til at blive brugt af flere brugere på et enkelt netværk på en gang, hvordan fungerer den så, når ti brugere logger på samtidig? Har et højere antal brugere en væsentlig indvirkning på ydeevnen eller indlæsningstiden?

 

7. Interoperabilitet

 

Interoperabilitetstestning er en type ikke-funktionel testning, der kontrollerer, hvor godt et softwaresystem er forbundet med andre softwaresystemer.

Dette er især vigtigt, når softwaren er udviklet som en del af en pakke af produkter, der alle kan integreres med hinanden.

 

8. Effektivitet

 

Effektivitet i softwaretestning henviser til, i hvilket omfang et softwaresystem kan håndtere kapacitet, mængde og svartid.

Testerne kan f.eks. vurdere, hvor mange brugere der kan logge på systemet på én gang, hvor lang tid det tager at hente data fra databasen, eller hvor hurtigt softwaren kan udføre grundlæggende opgaver.

 

9. Fleksibilitet

 

Fleksibilitet er et mål for den grad, i hvilken et softwaresystem kan fungere med forskellige typer hardware og periferiudstyr.

F.eks. hvor meget RAM softwaren kræver, eller om den kræver en bestemt mængde CPU. Jo lavere kravene til softwareapplikationen er, jo mere fleksibel er softwaren.

 

10. Overførbarhed

 

Test af overførbarhed bruges til at teste, hvor fleksibelt softwaren kan overføres fra det nuværende hardware- eller softwaremiljø, og hvor let det er at gøre det.

Overførbarhed er vigtig, fordi det har betydning for, hvor nemt slutbrugerne kan administrere software og flytte den mellem forskellige systemer.

 

11. Genanvendelighed

 

Test af genanvendelighed er en type ikke-funktionel test, der tester, om dele af softwaresystemet kan konverteres med henblik på genbrug i en anden applikation.

Selvom test af genanvendelighed normalt ikke påvirker kunder og slutbrugere, er det en god afspejling af, hvor effektivt udviklerne skaber komponenter, der kan genbruges i fremtiden.

 

Karakteristika for ikke-funktionelle test

For at forstå, hvad ikke-funktionelle tests er, skal man forstå karakteristika for ikke-funktionelle tests. Disse karakteristika definerer ikke-funktionel testning i softwaretestning.

 

1. Målbar

 

Ikke-funktionel testning er altid kvantitativ og målbar, hvilket betyder, at testerne ikke bruger subjektive udtryk som “flot” eller “godt”, men i stedet bruger tal og fakta til at beskrive resultaterne af ikke-funktionel testning.

I stedet for at beskrive indlæsningstider som “hurtige” eller “langsomme” bør ikke-funktionel testning f.eks. resultere i specifikke tal, der viser antallet af gange.

 

2. Specifikke

 

Når der udføres ikke-funktionel testning, skal testens formål være specifikt i forhold til softwarens designspecifikationer.

Hvis softwareprojektplanen f.eks. henviser til antallet af brugere, der skal kunne logge ind på én gang, skal dette prioriteres i forbindelse med ikke-funktionel testning.

 

3. Ukendt

 

Mens ikke-funktionel testning kan være specifikt designet til at måle attributter, der er fastsat i projektplaner, vil disse attributter i mange tilfælde ikke være specificeret på forhånd.

I dette tilfælde skal testerne blot udføre ikke-funktionel testning for at vurdere softwaren ud fra hver enkelt parameter og senere sammenligne disse med forventningerne.

 

Livscyklus for ikke-funktionelle test

Da ikke-funktionel testning ikke henviser til en bestemt fase i softwaretestings livscyklus, men blot til en type testning, der normalt finder sted i løbet af systemtestfasen af softwaretestning, kan livscyklussen for ikke-funktionel testning variere meget fra projekt til projekt.

Generelt følger den en lignende livscyklus som andre typer af softwaretest, der starter med analyse af projektkrav og slutter med testudførelse og opfyldelse af cyklusen.

 

1. Analyse af softwarekrav

 

Den første fase i livscyklussen for ikke-funktionel testning er analysen af softwarekrav. Softwareteams arbejder efter specifikke kriterier, når de udvikler og tester applikationer, og disse kriterier bør diktere, hvilken type test der skal udføres.

 

2. Planlægning af test

 

Den næste fase i livscyklussen er testplanlægning. I testplanlægningsfasen udarbejder QA-chefen en detaljeret testplan, der beskriver, hvad der skal testes, hvem der skal udføre testen, og hvilke testtilgange, metoder og værktøjer der skal anvendes.

Testplanen skal indeholde alle de nødvendige detaljer, som testerne har brug for til at oprette og udføre testcases.

 

3. Oprettelse af testcases

 

Oprettelse af testcases er den næste fase i den ikke-funktionelle testning. Denne fase omfatter udvikling af ikke-funktionelle testcases, som testerne vil udføre på et senere tidspunkt for at teste systemets ikke-funktionelle krav.

Testcases beskriver, hvad der skal testes, hvordan det skal testes, og hvad det forventede resultat af testen er.

 

4. Opsætning af testmiljø

 

Den næste fase i livscyklussen for ikke-funktionel testning er at opstille testmiljøet, før testen begynder.

Testmiljøet er det sted, hvor alle tests finder sted, og det er hjemsted for de ressourcer og værktøjer, som du bruger til at udføre ikke-funktionelle tests.

Testteamet forbereder testmiljøet før testudførelsen.

 

5. Udførelse af test

 

Testudførelse er den næste fase i den ikke-funktionelle testlivscyklus. Det indebærer udførelse af de testcases, der tidligere er oprettet for at teste forskellige aspekter af softwareapplikationer, herunder sikkerhed, indlæsningstider, kapacitet og portabilitet.

Testteamet udfører hver enkelt case individuelt og kontrollerer resultatet af hver test i forhold til det forventede resultat.

 

6. Gentag cyklus

 

Den sidste fase i den ikke-funktionelle testcyklus er opfyldelse af cyklusen og gentagelse. Når alle testcases er udført, kontrollerer testerne, hvilke test der bestod, og hvilke test der ikke bestod.

Tests, der ikke slår fejl, indikerer normalt, at der er en fejl, som skal rettes af udviklerne. Når udviklerne har rettet eller redigeret koden, gentages softwaretestcyklussen igen, indtil der ikke længere findes nogen fejl.

 

Jeg rydder lidt op i forvirringen:

Ikke-funktionel test vs. funktionel test

UAT-testning sammenlignet med regressionstest og andre

Funktionel testning og ikke-funktionel testning er to forskellige, men lige vigtige typer af softwaretestning, som sammen bruges til at vurdere, om en softwareapplikation opfylder brugernes krav som fastsat i projektbeskrivelsen.

Selv om de begge er nødvendige testtyper, der gør det muligt for softwareteams at identificere fejl i software builds, er funktionel og ikke-funktionel test helt forskellige fra hinanden.

 

1. Hvad er forskellen mellem funktionel og ikke-funktionel testning?

 

Forskellen mellem funktionel og ikke-funktionel testning ligger i, hvad de tester. Ved funktionel test testes applikationens funktioner og kontrolleres det, om de fungerer som forventet. Ved ikke-funktionel testning testes andre aspekter af applikationen, der påvirker brugertilfredsheden og applikationens kvalitet.

Funktionel og ikke-funktionel testning finder sted i forskellige faser af softwaretestning, men begge typer testning udføres normalt i systemtestfasen.

Både funktionel og ikke-funktionel testning kan hjælpe os med at forstå, hvor godt et program fungerer, og om det udfører sit arbejde korrekt.

Hvis du f.eks. tester en mobilapp, der giver brugerne mulighed for at gemme to-do-lister og indkøbslister, kan funktionel testning teste funktioner som at oprette en ny liste, gemme en liste og foretage ændringer i eksisterende lister.

Ved ikke-funktionel testning kan det vurderes, hvor godt applikationen fungerer på forskellige mobile enheder, hvor hurtigt listerne indlæses, og hvor meget appens ydeevne påvirkes, når andre apps kører i baggrunden.

 

2. Konklusion: ikke-funktionel test vs. funktionel test

 

Både funktionel og ikke-funktionel testning er vigtige typer af softwaretestning, som kan hjælpe testere og QA-teams med at vurdere, om en applikation opfylder de aktuelle krav.

Mens funktionel testning tester softwarens funktioner, tester ikke-funktionel testning andre aspekter, der kan påvirke ydeevne, effektivitet og sikkerhed.

Test af enheder, integrationstest og API-test er alle former for funktionel test. I hver af disse faser af softwaretestning vurderer testerne, hvor godt funktioner og features fungerer enten individuelt eller sammen, og identificerer fejl og mangler, der forhindrer funktionerne i at fungere som forventet.

Sikkerhedstest, brugervenlighedstest, portabilitetstest og belastningstest er alle former for ikke-funktionel test, som giver testerne mulighed for at vurdere, hvor godt en app udfører sine funktioner og understøtter brugernes behov.

 

Typer af ikke-funktionel testning

Ikke-funktionel testning: hvad er det, forskellige typer, tilgange og værktøjer

Der findes mange forskellige typer af ikke-funktionel testning, som hver især tester et andet ikke-funktionelt aspekt af en softwareapplikations ydeevne eller effektivitet.

Hver af disse testtyper tester forskellige parametre, og nogle test kan teste de samme parametre på forskellige måder.

 

1. Prøvning af ydeevne

 

Ydelsestest er en type ikke-funktionel test, der tjekker, hvor godt forskellige softwarekomponenter fungerer. I stedet for at teste deres funktionalitet, som er det, funktionel testning gør, kan præstationstestene teste svartider, flaskehalse og fejlpunkter. Ydelsestestning hjælper testerne med at sikre, at softwaren er af høj kvalitet, og at den er hurtig, stabil og pålidelig.

 

2. Stresstest

 

Stresstest er en type ikke-funktionel test, der tester, hvor godt softwaren fungerer, når den udsættes for unormalt store belastninger. Det kan betyde at teste, hvordan softwaren fungerer, når en person forsøger at bruge mange forskellige funktioner på én gang, eller når der kører mange andre programmer på samme tid.

Ved stresstestning forsøger man at identificere den grænse, hvor softwaren holder op med at fungere korrekt, og hvad der sker, når systemet er under stress. Det giver testerne mulighed for at forstå, om systemet kan genoprette sig selv, og om det giver brugerne besked med passende fejlmeddelelser.

 

3. Belastningsprøver

 

Belastningstestning er en type test, der vurderer, hvor godt software opfører sig under både normale forhold og ved større belastninger. Det bruges til at bestemme, hvor meget softwaren kan håndtere samtidig, uden at ydeevnen påvirkes negativt.

Belastningstest kan bruges til at teste, hvordan applikationer fungerer, når mange brugere bruger dem på én gang, eller når brugere forsøger at downloade mange data på samme tid.

Belastningstestning er vigtig, hvis du vil kontrollere, om din software er skalerbar.

 

4. Sikkerhedstest

 

Sikkerhedstest evaluerer softwareapplikationer og leder efter sårbarheder i softwarens sikkerhed. Disse omfatter potentielle sikkerhedsrisici, der kan resultere i tab af data eller brud, der afslører fortrolige data.

Sikkerhedstestning er vigtig, fordi den sikrer, at produktet er tilstrækkeligt beskyttet mod hacking, databrud og andre eksterne sikkerhedstrusler.

Nogle eksempler på sikkerhedstests, som testere kan udføre, omfatter sikkerhedsrevisioner, etisk hacking, penetrationstest, sikkerhedsscanninger og vurderinger af holdninger.

 

5. Test af opgradering og installation

 

Test af opgraderinger og installationer er en type ikke-funktionel softwaretest, der verificerer, hvor godt softwaren fungerer på forskellige maskiner.

Formålet med denne type test er at sikre, at nye brugere nemt kan installere softwaren på deres maskiner, og at eksisterende brugere kan opgradere den, når der frigives nye opgraderinger.

Test af opgradering og installation er vigtig, fordi slutbrugerne skal kunne installere dit produkt nemt, forudsat at de arbejder på en maskine, der er kompatibel med det.

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

6. Mængdeprøver

 

Volumentestning er en type test, der er beregnet til at verificere, hvad der sker, når store datamængder tilføjes til databasen på én gang. Dette identificerer, om applikationen kan håndtere store datamængder, og hvad der sker med systemet, hvis den ikke kan det.

Volumentestning er også kendt som oversvømmelsestestning, og du kan bruge den til at vurdere tab af data og fejlmeddelelser, der opstår, når der tilføjes store mængder data til systemet.

Mængdetestning er den eneste måde at sikre, at softwaren kan håndtere de datamængder, som brugerne forventer, at den skal håndtere.

 

7. Genoprettelsesprøver

 

Genoprettelsestests indebærer, at softwaresystemet tvinges til at fejle for at teste, hvor godt systemet genopretter sig selv efter et nedbrud.

Genoprettelsestest kan hjælpe testerne med at forstå, hvordan software genopretter data og forhindrer tab, hvis hardwaren bliver taget ud af stikket under brug, hvis softwaren bliver afbrudt fra netværket under en dataoverførsel, eller hvis du genstarter systemet uventet.

Denne type test er vigtig, fordi systemer uden ordentlige genoprettelsesprotokoller kan lide alvorlige datatab, når der sker ulykker som denne.

 

Det skal du bruge for at starte ikke-funktionel testning

Hvad er belastningstestning?

Før du begynder at lave ikke-funktionel testning, skal du sikre dig, at du har forberedt testmiljøet og samlet de værktøjer og data, du har brug for.

 

1. Testplan

 

Før du begynder på ikke-funktionel testning, skal du sikre dig, at du har en færdig testplan, som er underskrevet af de relevante personer.

Din testplan skal indeholde alle relevante detaljer om, hvad du vil teste og hvordan. Den skal forklare, hvornår du vil bruge manuel testning, og hvornår du vil bruge automatiseret testning, samt skitsere roller og ansvarsområder for alle, der er involveret i testprocessen.

 

2. Testcases

 

Før du kan udføre ikke-funktionelle tests, skal du oprette testcases. Hver testcase beskriver en specifik ting, som du vil teste, forklarer, hvordan du vil teste den, og beskriver det forventede resultat af testen.

Hvis du f.eks. udfører belastningstestning, kan en testcase f.eks. være at teste, hvordan softwaren opfører sig, når ti brugere bruger det samme modul på samme tid.

 

3. Funktionel verifikation

 

Du kan ikke udføre ikke-funktionel testning af softwarekomponenter, hvis de ikke er funktionelle.

Hvis du f.eks. ønsker at teste, hvor mange brugere softwaren kan håndtere at være logget ind på samme tid, er det først vigtigt at kontrollere, at de enkelte brugere rent faktisk kan logge ind på softwaren.

Før du begynder at lave ikke-funktionelle test, skal du sikre dig, at alle dine funktionelle test er bestået, og at din software fungerer, som du forventer, at den skal.

Det betyder normalt, at der allerede er udført røgtest, sanity testing, enhedstest, integrationstest og funktionel systemtest.

 

4. Testværktøjer

 

Før du går i gang med ikke-funktionel testning, skal du samle alle de testværktøjer, du ønsker at bruge til at udføre dine test.

Uanset om du bruger automatiseringsværktøjer til delvist at automatisere nogle af dine tests eller dokumentationsværktøjer til at hjælpe dig med at administrere og gemme testrapporter til senere brug, skal du sikre dig, at de værktøjer, du ønsker at bruge, er tilgængelige og klar til brug, og at alle i testteamet ved, hvordan de skal bruge hvert enkelt værktøj korrekt.

 

5. Testmiljø

 

Opsæt testmiljøet, før du begynder ikke-funktionel testning. Du har måske allerede et passende testmiljø, især hvis du kan bruge det samme miljø til ikke-funktionel systemtest og funktionel systemtest.

Det ideelle testmiljø giver dig mulighed for at teste alle de elementer, som du har brug for, på de rigtige enheder.

Hvis du f.eks. tester volumenhåndtering på smartphone-enheder, er det bedre at teste det på en rigtig smartphone-enhed end at forsøge at emulere et mobilt miljø på en stationær computer.

 

Den ikke-funktionelle testproces

Hvad er enhedsafprøvning

Test af ikke-funktionelle aspekter af en softwareopbygning er en proces i flere trin, der omfatter klargøring af testmiljøet, oprettelse af testcases, indsamling af testdata og udførelse af ikke-funktionelle test.

Det er muligt at opdele testprocessen i små bidder for at gøre den lettere at følge for begyndere i ikke-funktionel testning.

 

1. Ikke-funktionelle testprøvninger af parathed

 

Før du kan begynde at lave ikke-funktionel testning, er det vigtigt at kontrollere, at du er klar til denne fase af testningen.

Dette kan betyde at vurdere udgangskriterierne for den sidste testfase for at sikre, at softwaren har bestået den, og at sikre, at softwaren har bestået alle de funktionelle tests, der kræves, før den ikke-funktionelle testning finder sted.

Nogle teams kan oprette adgangskriterier for ikke-funktionel testning, som omfatter alle de betingelser, der skal være opfyldt, før den ikke-funktionelle testning kan begynde.

 

2. Udarbejd en testplan

 

Du har måske allerede udført dette trin tidligere, hvis du udfører ikke-funktionel testning som en del af systemtestning og følger din systemtestplan. En testplan beskriver alle de tests, du skal udføre, og hvordan du har til hensigt at udføre dem.

Uden en klar testplan er det let at miste overblikket over omfanget og målene for de tests, du udfører.

 

3. Opret testcases

 

Den næste fase af den ikke-funktionelle testning er at oprette testcases, der er designet til at teste hver enkelt ikke-funktionel parameter i softwaren.

Hver testcase skal have et testcase-ID, et testcase-navn, en beskrivelse og oplysninger om det forventede resultat af testen samt eventuelle kriterier for at bestå eller mislykkes, som er fastlagt på forhånd. Det hjælper testerne med at forstå, hvordan de skal udføre hver enkelt test, og hvilke resultater de skal kigge efter.

 

4. Indsamling af testdata

 

Før du kan udføre hver testcase, skal du indsamle de testdata, som du skal bruge til hver testcase.

Det betyder normalt, at du skal indsamle kode og data fra forskellige moduler og komponenter, der udgør de funktioner og områder, som du vil teste. Hvis du maksimerer testdækningen, bør du have mange testdata at arbejde med.

 

5. Klargør testmiljøet

 

Den næste fase af den ikke-funktionelle testning er klargøring af testmiljøet. Testmiljøet er en testserver, som du bruger til at udføre mange forskellige typer af softwaretest.

Det giver dig mulighed for at skabe identiske betingelser for at teste din software og for at konfigurere din software med forskellige konfigurationer til konfigurationstest, sikkerhedstest og andre typer ikke-funktionelle test.

 

6. Udføre ikke-funktionelle test

 

Når testmiljøet er klar, er det tid til at udføre ikke-funktionelle tests. Du kan beslutte at udføre testene i rækkefølge efter type, f.eks. ved at starte med test af ydeevne, før du går videre til sikkerhedstest og andre typer ikke-funktionelle test.

Når du udfører hver test, skal du notere resultaterne i din testrapport. Hvis du automatiserer testning, skal dit automatiseringsværktøj også have en standardiseret måde at rapportere resultaterne klart og utvetydigt på.

 

7. Rapportere testresultater

 

Når du har udført hver testcase, skal du samle resultaterne af dine ikke-funktionelle test i en enkelt rapport.

Rapporten skal indeholde klare oplysninger om resultaterne af hver enkelt test og være utvetydig med hensyn til, om hver test er bestået eller ikke bestået.

Følg en standardiseret struktur for din testrapport for at sikre, at alle de oplysninger, som du skal videregive, er med.

 

8. Udbedre fejl og mangler

 

Når testresultaterne foreligger, skal du give softwaren tilbage til udviklerne, hvis testene ikke lykkedes, eller hvis du har fundet nogle ikke-funktionelle fejl, der skal rettes.

Hvis softwaren f.eks. ikke kan håndtere et passende antal brugere på én gang, eller hvis ydelsen bliver for langsom, når flere programmer kører på samme tid, skal disse problemer sandsynligvis løses i koden for at sikre, at brugerne er tilfredse med produktet.

 

9. Gentag testcyklus

 

Når udviklerne har udbedret eventuelle fejl, der er fundet i den indledende fase af den ikke-funktionelle test, kan testcyklussen begynde igen.

Udviklerne tester de ændringer, de foretager, og sender det nye build tilbage til QA-testerne, som derefter udfører hele testpakken, der starter med røgtest, enhedstest, integrationstest og endelig systemtest.

Testcyklussen gentages, indtil der ikke forekommer fejl eller mangler på noget tidspunkt, hvorefter buildet kan gå ind i den sidste testfase: brugeraccepteringstest.

 

Testcases til ikke-funktionel testning

grey box testing artikel - værktøjer, tilgange, sammenligning med white box og black box testing, grey box gratis og enterprise værktøjer.

Testcases er et vigtigt aspekt af al softwaretestning, og når du udfører både funktionel og ikke-funktionel testning, skal du bruge testcases til at definere, hvad du vil teste, og hvordan du vil teste det.

Hver testcase kan ses som en minitest, og hver testcase har sine egne definerede output og resultater.

 

1. Hvad er testcases til ikke-funktionel testning?

 

En testcase er et sæt handlinger, der udføres på en softwareopbygning for at teste, om den opfylder de betingelser, der er defineret i softwareplanen. Hver testcase fortæller effektivt testerne, hvad de skal teste og hvordan, og er designet til at teste en specifik funktion eller ikke-funktionel funktion i softwareapplikationen.

Ikke-funktionelle testcases kan omfatte test af, hvad der sker, når nogen forsøger at få adgang til sikre data i systemet, eller test af, hvor hurtigt softwaren indlæses ved opstart.

 

2. Hvordan udformes ikke-funktionelle testcases?

 

Når du designer testcases til ikke-funktionel testning, er det vigtigt at følge standardpraksis for testcases og samtidig holde målene for dine ikke-funktionelle test i tankerne.

Følg nedenstående trin for at skrive testcases til ikke-funktionel testning, der klart beskriver, hvad dine testere skal gøre for at udføre hver test.

 

1. Afgræns det område, du vil dække

 

For hver testcase skal du overveje, hvilket område af din software denne testcase skal dække.

Hvis du f.eks. skriver testcases til test af installation og opgradering, kan du inkludere testcases, der vurderer, hvor let programmet er at installere på forskellige enheder, og hvor lang tid det tager at opgradere softwaren med en ny patch.

 

2. Opret et unikt test case ID

 

Hver testcase skal have et unikt testcase-ID. Det gør det nemt at finde beskrivelsen og resultaterne af testcasen senere og rydder op i forvirringen om, hvilken testcase du henviser til, hvis to testcases har samme navn eller beskrivelse.

 

3. Navngiv og beskriv hver enkelt test

 

Mens testcase-ID’et identificerer testen, skal du også angive et navn og en beskrivelse for hver testcase, du skriver.

Det skal være et simpelt navn, der opsummerer, hvad du tester, mens beskrivelsen er en enkelt sætning, der uddyber dette lidt mere detaljeret.

Beskrivelsen skal være så klar, at testerne ved, hvad der skal testes, hvordan det skal testes og hvilke særlige betingelser der skal være opfyldt i testen.

 

4. Angiv det forventede resultat

 

For hvert testtilfælde skal du beskrive det resultat, der skal opnås, hvis softwaren fungerer som forventet.

I ikke-funktionelle test som f.eks. ydelses- og belastningstest kan dette i mange tilfælde betyde, at softwaren fortsætter med at fungere normalt uden at blive langsommere, forsinket eller gå ned.

I andre tilfælde kan det betyde, at bestemte fejlmeddelelser vises for at informere brugeren om problemet og anbefale en løsning.

 

5. Anbefale testmetoder

 

For hver testcase skal du anbefale den type testteknikker og ikke-funktionelle testværktøjer, som du mener, at testeren bør anvende under testningen.

Ved ikke-funktionel testning kan testerne anvende meget forskellige metoder til forskellige typer testning.

For eksempel kan belastningstest og stresstest kræve automatisering, fordi det er upraktisk at simulere ekstremt tung trafik manuelt, mens andre testtyper kan være lettere at udføre uden specifikke værktøjer eller teknologier.

 

6. Få hver testcase peer reviewet

 

Før du underskriver hver testcase, skal du få hver case peer-reviewet af en person, du arbejder sammen med. Det kan være en anden tester eller en QA-chef.

Peer-reviewing af testcases sikrer, at de er klare nok til at kunne følges af en tredjepartstester, og at de ikke indeholder tvetydigheder eller fejl, der kan føre til ukorrekt testning.

 

3. Eksempler på ikke-funktionelle testcases

 

Hvis du skriver testcases til ikke-funktionel testning, kan de se nogenlunde ud som nedenstående eksempler på ikke-funktionel testning.

 

Eksempel på test af skalerbarhed

Test case ID: 6671
Navn på testcase: Test af login med flere brugere
Beskrivelse: Emulér 20+ brugere, der logger ind på softwaren på samme tid ved hjælp af automatiseringsværktøjer.
Forventede resultater: Softwaren bør køre som normalt for hver bruger, så hver bruger kan logge ind på under 5 sekunder.

 

Eksempel på kompatibilitetstest

Test case ID: 5214
Navn på testcase: Indlæsning af programmet i Opera-browseren
Beskrivelse: Indlæs programmet i Opera-webbrowseren.
Forventede resultater: Programmet indlæses som normalt i Opera-webbrowseren med standardopløsning og -layout.

 

Manuelle eller automatiserede ikke-funktionelle test?

computer vision til softwaretestning

Når du skal vælge mellem forskellige ikke-funktionelle testteknikker, skal du beslutte, om du vil udføre manuelle eller automatiserede ikke-funktionelle test.

Manuelle test udføres af menneskelige testere, hvilket betyder, at de normalt er mere tidskrævende at udføre, men de giver også mulighed for udforskende testning.

Automatiserede ikke-funktionelle tests er hurtigere og på nogle måder mere pålidelige, men de kræver også flere ressourcer eller værktøjer. Automatisering og hyperautomatisering bliver mere og mere populært inden for testning, især når det drejer sig om ikke-funktionel testning.

 

Manuel ikke-funktionel test: Fordele, udfordringer og processer

 

Manuel ikke-funktionel testning udføres udelukkende af testere, som tester hvert enkelt ikke-funktionelt element uafhængigt af hinanden.

Når testere udfører manuelle ikke-funktionelle tests, skal de indsamle oplysninger om softwaren, oprette individuelle testcases, der passer til testplanen, og udføre disse testcases manuelt.

Det tager lang tid, men det betyder også, at QA-testerne har frihed til at bestemme, hvad der skal testes og hvordan.

 

1. Nogle af fordelene ved manuel testning er bl.a.:

 

● Manuel testning kan være billigere end automatiseret testning, fordi det ikke kræver specifikke teknologier eller teknisk viden.

● Manuel testning giver testerne mulighed for at give menneskelig indsigt og subjektivitet i, hvordan softwaren fungerer, og om den fungerer tilfredsstillende.

● Manuel testning kan bruges til at udføre systemtest i scenarier, hvor det er umuligt at automatisere.

● Manuel testning giver testerne mulighed for at vurdere systemets visuelle aspekter såsom den grafiske grænseflade og andre faktorer, der kan påvirke brugervenligheden.

● Manuel test giver testerne et bredere perspektiv på systemet som helhed og på, hvordan forskellige moduler og komponenter fungerer sammen

 

Der er dog også ulemper ved manuel testning.

 

2. Nogle af udfordringerne ved manuel testning omfatter:

 

● Nogle typer af ikke-funktionelle test, herunder belastningstest og præstationstest, er upraktisk at udføre manuelt

● Manuel testning tager betydeligt mere tid end automatiseret ikke-funktionel testning

● Manuelle testere kan blive distraheret, miste fokus og begå fejl, især når de udfører meget gentagne testopgaver.

 

Automatiseret ikke-funktionel testning: Fordele, udfordringer og processer

Automatiseret ikke-funktionel testning udføres ved hjælp af automatiserede scripts og testværktøjer. Når man bruger automatiserede testmetoder, kan testerne udføre testene i baggrunden, mens de fortsætter med andre opgaver, når de automatiserede test er blevet igangsat.

 

1. Nogle af fordelene ved at automatisere ikke-funktionelle tests er:

 

1. Spar tid og ressourcer ved at reducere den tid, du bruger på langvarige, tidskrævende opgaver

2. Automatisering gør det muligt at øge testdækningen ved at dække en bredere vifte af komponenter og funktioner

3. Det er lettere at udføre automatiserede tests ofte, fordi det tager mindre tid at udføre dem

4. Automatiseret testning er ideel til tidskrævende testopgaver som belastningstestning, volumetestning og stresstestning, som er meget svære at udføre manuelt

5. Der er mindre risiko for, at der opstår fejl, når der udføres automatiseret testning

 

Der er dog også nogle ulemper ved automatiseret testning, hvilket betyder, at det ikke altid er den rigtige tilgang til alle typer ikke-funktionel testning.

 

2. Nogle af udfordringerne ved automatiseret ikke-funktionel testning omfatter:

 

1. Automatiseret testning er dyrere at etablere end manuel testning

2. Det kan tage tid og tekniske ressourcer at etablere testautomatisering

3. Testautomatisering giver ikke plads til udforskende testning

4. Automatisering af test kræver stadig tid til at oprette testcases

 

Konklusion: Manuel eller automatiseret

ikke-funktionel testning?

Fordele ved at oprette et ekspertisecenter for testning. Er performance test anderledes end funktionel test?

I de fleste typer af softwaretestning giver en kombination af manuel og automatiseret testning normalt de bedste resultater. Dette giver testteams mulighed for at drage fordel af effektiviteten, pålideligheden og nøjagtigheden af automatiseret testning og samtidig udføre udforskende testning, der giver testerne mulighed for at vurdere software ud fra et mere subjektivt perspektiv.

I forbindelse med ikke-funktionel testning er både manuel og automatiseret testning praktisk talt nødvendig for de fleste testteams.

Manuel testning bruges bedst til at udføre ikke-funktionelle testopgaver som f.eks. brugervenlighedstest, mens automatiseret testning oftest bruges til at udføre test, der ville være for tidskrævende og vanskelige at udføre manuelt, f.eks. stresstestning eller volumetertestning.

Ikke-funktionel testning er et af de mest oplagte områder at bruge testautomatiseringsteknikker på, fordi det er en kvantitativ, målbar type testning, som ikke kræver subjektive resultater.

Som med andre typer af testning udføres ikke-funktionel testning normalt ved hjælp af en blanding af manuel testning og automatiseret testning.

Automatiseret testning er imidlertid praktisk talt nødvendig for mange typer ikke-funktionel testning, og parametrene og målingerne for ikke-funktionel testning betyder, at automatisering er mere egnet til denne type testning end til funktionel testning.

Bedste praksis for ikke-funktionel testning

Hvad er softwaretestning?

Når du gennemfører ikke-funktionel testning for første gang, kan du ved at følge bedste praksis for testning få hjælp til at standardisere din testproces og optimere effektiviteten af dine test.

Best practices tjener som retningslinjer for softwaretestteams, der ønsker at forbedre testprocesser og tilpasse sig branchestandarder.

 

1. Brug automatiseringsværktøjer

 

I forbindelse med ikke-funktionel testning er det vigtigere end andre typer testning at bruge automatiseringsværktøjer til at automatisere visse typer testning, især test af volumen, stresstest og belastningstestning.

Disse typer af test tjekker normalt, hvor godt software fungerer under et stort pres fra brugere, data og trafik, hvilket kan være meget vanskeligt at efterligne manuelt.

Automatisering af disse typer af ikke-funktionelle test vil ikke kun være mere effektive, men også mere præcise og give testerne mulighed for nemt at reproducere større belastninger og stress.

 

2. Peer review af al dokumentation

 

Ud over at bede kolleger om at gennemgå testcases, som du opretter, skal du også bede kolleger i dit testteam om at gennemgå fejlrapporter, testrapporter, testplaner og andre former for formel dokumentation, der oprettes i løbet af testprocessen.

Det mindsker risikoen for små fejl, som kan medføre alvorlige forsinkelser i test- og udviklingsprocessen.

 

3. Definer målbare krav

 

Når du definerer kravene til din software, før du begynder at lave ikke-funktionel test, skal du sikre dig, at hvert krav er objektivt og målbart.

Dette gør det lettere for testerne at fastslå, om softwaren opfylder disse krav under testen, og giver ikke plads til fortolkning.

Hvad tæller som “hurtigt” eller “effektivt”? Brug tal og kvantitative værdier til at definere, hvad du leder efter.

 

4. Overvej omhyggeligt testmetrikker

 

Før du beslutter, hvilke målinger du vil bruge til at måle softwarens ydeevne, skal du overveje, hvad softwarens brugere vil ønske, og hvilke målinger der rent faktisk stemmer overens med softwareplanen og -kravene.

De fleste programmer skal være hurtige og pålidelige, men hvilke andre parametre kan dine brugere kigge efter? Er der nogle softwarespecifikke målinger, som du bør overveje under testprocessen?

 

Typer af output fra en ikke-funktionel test

hvordan fungerer automatiseringstest i brancher som f.eks. banksektoren?

Når du udfører ikke-funktionel testning, får du forskellige typer output fra de test, du udfører.

Disse er normalt helt forskellige fra funktionelle testresultater, som ofte er mere klare, fordi funktionelle tests blot tester, om en funktion fungerer som den skal eller ej.

Ligesom ved funktionel testning bør testerne opstille klare forventninger til hver testcase, så det er let at afgøre, om hver test er bestået eller ikke bestået.

 

1. Absolutte tal

 

Når du udfører test af ydeevne, stresstest og andre typer ikke-funktionelle test, er de output, som du oftest kigger på, hastigheder og andre absolutte tal.

Ved test af ydeevne kontrolleres det, hvor hurtigt systemet kan udføre visse opgaver, og dette måles i sekunder eller millisekunder.

Hvis du udfører belastningstest, kan du vurdere, hvor mange data softwaren kan håndtere på én gang uden at gå ned eller blive forsinket.

 

2. Meddelelser om fejl

 

Ved ikke-funktionel testning kontrolleres det også, hvordan systemet fungerer, når der opstår fejl, f.eks. sikkerhedsfejl, valideringsfejl og konfigurationsfejl.

Det er vigtigt, at systemerne viser præcise og klare fejlmeddelelser, når der opstår fejl, så brugerne kan tage skridt til at rette problemet og fortsætte med at bruge softwaren.

Fejlmeddelelser bør også forekomme under sikkerhedstest, når systemet forhindrer brugerne i at bryde softwarens indbyggede sikkerhedsfunktioner.

 

3. Nedbrud

 

Nedbrud er et tegn på systemfejl, og det indikerer normalt, at systemet ikke er i stand til at yde det niveau, du tester, og det kan betyde, at testen er bestået.

I nogle tilfælde kan systemet gå ned og alligevel bestå den testcase, du arbejder på, f.eks. hvis systemet kan modstå den nødvendige mængde stress eller trafik, før det går ned.

Når testere udfører ikke-funktionel testning, bør de forvente, at systemet går ned med jævne mellemrum, især når de presser det til det yderste i forbindelse med stresstest og andre præstationstest.

 

Eksempler på ikke-funktionelle test

End to end test - Hvad er E2E-test, værktøjer, typer og mere

Eksemplerne for ikke-funktionelle testprocedurer svarer til eksemplerne ovenfor for ikke-funktionelle testprocedurer.

Du kan se på eksempler på ikke-funktionelle tests for bedre at forstå, hvad ikke-funktionel testning er, og hvad den tester i en softwareapplikation.

 

1. Eksempel på præstationstest

 

Hvis du arbejder på en mobilapplikation, der forbinder brugerne med en onlinedatabase, er det vigtigt, at et stort antal brugere kan få adgang til og downloade data fra denne database på samme tid.

Dette er også en vigtig del af test af skalerbarhed, især hvis du ønsker at øge antallet af brugere på appen i fremtiden.

Derefter skal du teste, hvordan systemet reagerer, når f.eks. 1000 brugere forsøger at få adgang til den samme database på samme tid, og du skal fastsætte krav til, hvor hurtigt applikationen skal indlæses under disse forhold.

 

2. Test af kompatibilitet

 

Hvis du tester et nyt dokumenthåndteringsprogram, skal du teste, at det fungerer på alle de enheder, som det er beregnet til.

Det betyder, at du kan teste, at du kan installere og indlæse programmet på alle de nyeste versioner af Windows, Mac og andre operativsystemer (f.eks. Linux), som du ønsker, at softwaren skal være kompatibel med.

 

3. Sikkerhedsafprøvning

 

Når du udfører sikkerhedstest, tester du nogle af de måder, hvorpå folk kan forsøge at få adgang til fortrolige data eller bryde softwarens sikkerhedsforanstaltninger for at kontrollere, at systemet opfører sig, som du forventer, at det gør i disse situationer.

Du kan f.eks. logge ind som bruger og forsøge at få adgang til filer, som du ikke har sikkerhedsgodkendelse til, for at sikre dig, at systemet ikke giver dig adgang til disse filer.

 

Typer af fejl og fejl, der er opdaget

gennem ikke-funktionel afprøvning

zaptest-runtime-error.png

Ikke-funktionel testning kan afsløre en masse fejl og mangler, som ikke er lige så lette at finde som dem, der identificeres ved funktionel testning. Det skyldes, at ikke-funktionel test ofte kræver, at testerne verificerer forskellige konfigurationer, opsætninger og kombinationer af forhold for at vurdere, hvor godt systemet fungerer i et utal af forskellige indstillinger.

 

1. Fejl i ydeevnen

 

Ydelsesfejl opstår, når systemet fungerer, men ikke fungerer så hurtigt eller effektivt, som du forventer det.

Du kan f.eks. opleve, at systemet ikke indlæses hurtigt nok under visse betingelser eller endda går ned, hvis for mange brugere logger ind på samme tid.

Fejl i ydeevnen forhindrer ikke helt folk i at bruge din software, men de kan gøre din software mindre anvendelig og mindre tilbøjelig til at opfylde brugernes krav.

 

2. Sikkerhedsbrister

 

Sikkerhedsfejl er de fejl, der påvirker sikkerheden i dit softwaresystem og de data, der er gemt i det.

Sikkerhedsbrister kan f.eks. opstå, hvis brugere kan få adgang til fortrolige data, som de ikke burde have adgang til, hvis visse dele af applikationen ikke er beskyttet korrekt med adgangskode, eller hvis krypteringen svigter.

Det kan resultere i sikkerhedsbrud, som kan have alvorlige konsekvenser for en softwareudgivers omdømme.

 

3. Funktionelle fejl og mangler

 

Mens ikke-funktionel testning ikke er designet til at teste funktionerne i en softwareapplikation, kan ikke-funktionel testning i nogle tilfælde identificere funktionelle fejl i softwaren.

Formålet med pålidelighedstestning er f.eks. ikke at teste, om appen fungerer, men at teste, om appen fungerer pålideligt ved gentagne forsøg.

Dette kan afsløre, at nogle funktioner ikke fungerer korrekt, når en handling gentages, og disse kan klassificeres som funktionelle fejl.

 

Fælles målinger af ikke-funktionel testning

fordele ved at oprette et ekspertisecenter for test (TCoE)

Ikke-funktionelle testmetrikker beskriver de metrikker, som systemets ydeevne og effektivitet måles ud fra.

Forskellige typer af ikke-funktionel testning er afhængige af forskellige målinger, og du kan vælge at bruge en række forskellige målinger afhængigt af projektets endelige mål.

 

1. Tid

 

Tidsmålinger måler, hvor lang tid det tager at udføre bestemte opgaver, eller hvor længe brugerne skal vente på, at funktioner indlæses.

Nogle eksempler på tidsmålinger er antallet af transaktioner eller downloads, som et program kan foretage inden for en given tidsramme, svartiderne for forskellige funktioner og den tid, det tager programmet at gennemføre en bestemt operation.

Forskellige testtyper måler resultaterne i sekunder eller som en præsentation af hvor mange operationer pr. sekund.

 

2. Rummet

 

Plads er en anden vigtig målestok i ikke-funktionel testning. Pladsmålinger kan teste, hvor meget CPU-plads systemet kræver, eller hvor meget plads på harddisken softwaren optager, når den er fuldt installeret.

Nogle eksempler på rummetrikker omfatter cachehukommelse, hovedhukommelse og ekstrahukommelse.

Software, der kræver en stor mængde plads for at fungere problemfrit, kan være egnet til et mindre antal kunder.

 

3. Brugervenlighed

 

Nogle målinger i ikke-funktionel testning tager hensyn til systemets brugervenlighed, f.eks. hvor lang tid det tager at oplære brugerne i at bruge systemet korrekt, hvor mange valgmuligheder brugerne skal navigere igennem for at udføre vigtige funktioner, eller hvor mange museklik det tager at udføre visse opgaver.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Ikke-funktionelle tests kan måle hver af disse målinger kvantitativt, og lavere tal er generelt ensbetydende med højere grad af brugervenlighed.

 

4. Pålidelighed

 

En anden vigtig måleenhed i ikke-funktionel testning er pålidelighed. Pålidelighed afspejler sandsynligheden for, at systemet opfører sig på samme måde igen og igen eller fungerer, som det skal, i en lang periode.

Nogle eksempler på målinger, der bruges til at måle pålidelighed, er middeltid til fejl, fejlfrekvens, tilgængelighed og sandsynlighed for nedetid.

Hver af disse målinger hjælper testerne med at verificere, at systemet kan køre i lang tid uden at opleve fejl eller nedbrud.

 

5. Robusthed

 

Robusthed er et mål for, hvor godt systemet håndterer fejl, og hvor godt systemet kan genoprette sig selv i tilfælde af fejl.

Nogle eksempler på målinger, der måler robusthed, omfatter den tid, det tager systemet at genoprette sig selv efter en fejl, procentdelen af hændelser, der fører til katastrofale fejl, og sandsynligheden for, at datafiler beskadiges, når systemet fejler.

Det er vigtige målinger, fordi brugerne forventer, at systemerne nogle gange kan fejle uden at miste alle data eller ødelægge filer.

 

6. Overførbarhed

 

Portabilitet måler, hvor let softwaren kan overføres til forskellige systemer eller flyttes til en ny placering i et netværk.

Nogle eksempler på målinger, der måler portabilitet, er procentdelen af ikke-portabel kode og antallet af systemer, som softwaren kan køre på.

Ideelt set er software, der kan køre på mange forskellige systemer, mere bærbar og derfor mere praktisk til brug i miljøer, der kræver hyppige flytninger eller flytninger.

 

Strategier for gennemførelse af ikke-funktionelle test

Hvad er enhedstest?

Når du begynder på ikke-funktionel testning, er det vigtigt at gå til denne testfase med en strategi i baghovedet. QA-ledere og ledere af softwaretestning bør overveje risiciene ved testning, de ressourcer, de har til rådighed, og formålet med testning, før ikke-funktionel testning påbegyndes.

Hvis du udvikler en strategi, kan du optimere dine ikke-funktionelle tests fra starten af.

 

1. Tildeling af roller og ansvar

 

Inden du begynder ikke-funktionel testning, skal du tildele roller og ansvarsområder til de vigtigste medlemmer af testteamet. Det gør det lettere at administrere arbejdsbyrden i forbindelse med ikke-funktionel testning og at sikre, at erfarne testere er ansvarlige for at opretholde kvaliteten og effektiviteten af de test, du udfører.

Sørg for, at de personer, du vælger til at påtage dig disse roller, har den viden og erfaring, de har brug for til at udføre de opgaver, du forventer af dem, især hvis disse opgaver kræver tekniske færdigheder.

 

2. Indsamling af relevante testværktøjer

 

Saml alle de teknologier og værktøjer, som du ønsker at bruge til at udføre ikke-funktionel testning. Sørg for, at alle i dit team ved, hvordan du bruger dem effektivt, og hold kurser for at udfylde manglende færdigheder, hvor det er nødvendigt.

Ved at sikre, at alle ved, hvilke testværktøjer der skal bruges, og hvordan de skal bruges, før den ikke-funktionelle testning begynder, reduceres risikoen for at skulle afbryde testningen eller lave testene om på grund af utilstrækkelig viden.

 

3. Prioritere testning

 

Før du begynder ikke-funktionel testning, skal du lave en liste over alle de aspekter af systemet, som du skal teste, og prioritere dem ud fra vigtighed og vigtighed.

Du kan prioritere ikke-funktionel testning baseret på risikoniveauet for hvert enkelt aspekt af det system, du tester.

Der kan f.eks. finde grundlæggende sikkerhedstest sted, fordi tilstrækkelig sikkerhed anses for at være yderst vigtig i moderne software. Jo tidligere du identificerer fejl med høj risiko, jo mindre kan disse fejl få indflydelse på andre aspekter af systemet.

 

7 bedste værktøjer til ikke-funktionel testning

de bedste værktøjer til gratis og virksomhedssoftware test + RPA automatisering

Værktøjer til ikke-funktionel testning kan strømline testprocessen, gøre det lettere og mere omkostningseffektivt at automatisere testning og hjælpe QA-ledere med at styre test- og dokumentationsprocessen.

Der findes mange gratis værktøjer til ikke-funktionel testning online, og der findes også nogle værktøjer, som du kan betale et månedligt gebyr for at opgradere.

 

1. ZAPTEST GRATIS udgave

 

ZAPTEST er et populært værktøj til softwaretestning, der gør det muligt for brugerne at udføre både funktionelle og ikke-funktionelle softwaretests hurtigt og nemt. Du kan bruge ZAPTEST til at automatisere softwaretests og bruge RPA-teknologi til at emulere forskellige funktioner og betingelser i ikke-funktionelle tests.

ZAPTEST FREE-udgaven er blot en reduceret version af enterprise-udgaven, som tilbyder mange af de samme funktioner i mindre skala. Du kan søge support i ZAPTEST-forummet og udføre præstationstest med et ubegrænset antal virtuelle brugere.

 

2. Appium

 

Appium er et gratis værktøj til softwaretestning, der er bedst egnet til test af mobilapplikationer på en række forskellige platforme, herunder både iOS- og Android-enheder. Appium giver brugerne stor fleksibilitet til at udforme deres egne testrammer og -strategier og samtidig drage fordel af de automatiseringsmuligheder, som Appium tilbyder.

 

3. Loadium

 

Loadium er et værktøj til ikke-funktionel testning, der bedst bruges til at udføre ydelses- og belastningstestning, to typer ikke-funktionel testning, som er meget nemmere at udføre ved hjælp af automatiseringsværktøjer.

Loadium giver brugerne mulighed for at køre belastningstests i stor skala og tilbyder tilpassede løsninger, så du kan skræddersy dine tests til dine softwaremål.

Du kan prøve Loadium gratis eller betale for at downloade den fulde version af programmet.

 

4. Obkio

 

Obkio er et værktøj til softwaretestning, der hjælper QA-ledere og testledere med at prioritere og kategorisere problemer baseret på, hvor alvorlige de er. Obkio kan opdage problemer før brugerne, giver brugerne smarte meddelelser og kan hjælpe med at finde ud af, hvor problemet er.

Obkio er ikke kun beregnet til ikke-funktionel testning, men er et meget nyttigt gratis testværktøj, der kan bruges i alle faser af testens livscyklus.

 

5. SonarQube

 

SonarQube er et open source-værktøj til sikkerhedstest, der automatisk kan analysere kode for at opdage fejl og sårbarheder. SonarQube er skrevet i Java, og du kan bruge SonarQube til at analysere kode i over tyve forskellige programmeringssprog, og systemets rene grænseflade gør det nemt at opdage problemer, der kan forårsage sikkerhedssårbarheder i fremtiden.

 

6. Tsung

 

Tsung er et andet værktøj til ikke-funktionel testning, som er ideelt, hvis du ønsker at automatisere belastnings- og stresstest, men ikke kan lide den gratis version af Loadium.

Tsung er et open source-værktøj, der giver brugerne mulighed for at udføre belastningstestning af store mængder på tværs af flere protokoller og servere, herunder HTTP og SOAP.

Tsung er helt gratis, og det kan hjælpe testere med at sikre, at den software, de arbejder på, har en høj ydeevne under en række forskellige udfordrende forhold.

 

7. Sikuli

 

Sikuli er et andet program, der bruger automatisering af robotprocesser til at automatisere testprocessen. Programmet kan automatisere alt, hvad der kan ses på skærmen. Du kan bruge Sikuli til at teste ikke-webbaserede applikationer og til hurtigt at reproducere fejl.

 

Tjekliste, tips og tricks til ikke-funktionel testning

Tjekliste for softwaretestning

Før du går i gang med ikke-funktionel testning, skal du kontrollere, at du har alt det, du har brug for til at udføre grundige ikke-funktionelle test i et forberedt miljø.

Følg tjeklisten nedenfor for at få tips og tricks, før du går i gang med ikke-funktionel testning.

 

1. Arbejd efter en tidsplan

 

Uanset om du inkluderer det i din testplan eller opretter et separat dokument til det, skal du strukturere dine softwaretests omkring en testplan.

Hvis du finder flere fejl og mangler, end du forventer, vil du måske af og til afvige fra planen, men hvis du har en plan til at starte med, kan det være med til at vejlede testerne og motivere dem til at arbejde effektivt, især når du udfører tidskrævende manuelle tests.

 

2. Identificer dit testteam

 

Ved at uddelegere ansvar og tildele medlemmer af testteamet officielle roller og titler kan du sikre, at testprocessen forløber gnidningsløst.

Kommunikér klart roller og ansvarsområder i dit team, før testningen starter, og tildel forskellige testere ansvaret for forskellige aspekter af ikke-funktionel testning, så alle holdes ansvarlige for deres egne opgaver.

 

3. Vælg værktøjer og teknologier før afprøvning

 

Hvis du først beslutter dig for at arbejde med bestemte værktøjer og teknologier, efter du er begyndt på ikke-funktionel testning, kan det forsinke testprocessen og skabe forvirring blandt testerne.

I stedet skal du undersøge det på forhånd og beslutte, om der er nogle værktøjer, du vil bruge, før du begynder at teste. Det gør det nemt at indarbejde disse værktøjer i testplanen og at uddanne dine testere i at bruge dem, før testningen starter.

 

4. Få altid en formel godkendelse af test og dokumentation

 

Testning er en kvalitetssikringsproces, og den bedste måde at maksimere værdien af de test, du udfører, er at udføre grundlæggende kvalitetssikring af de test, du planlægger og udfører.

Indfør enkle protokoller, der kræver, at testerne beder QA-ledere og ledere om at gennemgå og underskrive testplaner og testrapporter, før de går videre til næste fase.

Det øger chancen for, at testfejl bliver opdaget og rettet tidligt.

 

7 fejl og faldgruber, der skal undgås, når du implementerer ikke-funktionelle tests

UAT-testning sammenlignet med regressionstest og andre

Hvis du er nybegynder inden for ikke-funktionel testning, kan det være let at begå nogle almindelige fejl, som testere og QA-fagfolk ofte begår.

Ikke-funktionel testning er et komplekst job, der indebærer, at man skal betragte en softwareopbygning fra alle vinkler og perspektiver.

Nedenfor er en liste over nogle af de mest almindelige faldgruber, som testere laver, når de udfører ikke-funktionel testning.

 

1. Ikke planlægning

 

Hvis du er nybegynder inden for ikke-funktionel testning, tror du måske, at du bare kan kaste dig ud i testfasen uden at udarbejde en grundig testplan på forhånd.

Nogle testteams udarbejder ufuldstændige testdokumenter eller overfladiske resuméer af testplanen, som ikke i tilstrækkelig grad beskriver de handlinger, som testerne skal udføre under den ikke-funktionelle testning.

 

2. Forkert forvaltning af testning

 

Der kan opstå problemer, hvis testene forvaltes forkert på et hvilket som helst tidspunkt i testprocessen. Utilstrækkelig ledelse kan betyde, at testerne ikke har de rette ressourcer til at udføre grundige test, eller at testerne ikke får tilstrækkelig tid til at teste alle aspekter af buildet.

Testledere skal være i stand til at lære af de fejl, de begår, og udvikle mere effektive testplaner fremadrettet.

 

3. Dårlig kommunikation

 

Dårlig kommunikation kan forårsage mange problemer under testprocessen, især i forbindelse med ikke-funktionel testning.

Det kan betyde dårlig kommunikation inden for testteamet eller dårlig kommunikation mellem testere, udviklere og interessenter.

Dette sker ofte, når testerne ikke vedligeholder testdokumenterne tilstrækkeligt eller ikke kommunikerer regelmæssigt med andre afdelinger under testprocessen.

 

4. Ignorering af udviklere

 

Testere og udviklere arbejder normalt ret adskilt fra hinanden, men testteams, der arbejder tæt sammen med udviklere, kan drage fordel af yderligere viden om, hvordan softwaren fungerer, og hvordan forskellige moduler interagerer med hinanden.

Ved at inddrage udviklerne i testprocessen eller anmode om feedback fra udviklerne på vigtige tidspunkter kan testteams hjælpe med at udarbejde mere effektive og grundige testplaner.

 

5. Formålet med afprøvningen

 

Mange testere tror stadig, at formålet med testning er at kontrollere, at softwaren fungerer, eller at demonstrere over for interessenter og investorer, at softwaren fungerer.

I stedet bør testere gå til testning med den holdning, at formålet med testning er at lede efter defekter.

Testere, der ikke finder fejl, kan kun være tilfredse med, at den software, de tester, er fri for fejl, hvis de er sikre på, at de har kigget alle steder, hvor der kan findes fejl.

 

6. Manuelle vs. automatiserede fejl

 

Det er vigtigt at bruge tid på at overveje, om manuel testning eller automatiseret testning er bedre for hver enkelt type test, du udfører.

Automatiserede testmetoder er yderst velegnede til næsten alle former for ikke-funktionel testning, og testteams, der er vant til funktionel testning, begår måske den fejl at antage, at de kan teste ikke-funktionelle funktioner lige så let manuelt.

 

7. Brug af de forkerte testværktøjer

 

Det er let at vælge de forkerte testværktøjer og teknologier, før man går i gang med ikke-funktionel testning, især hvis testteams er vant til at udføre manuel testning og ikke er vant til at bruge testværktøjer.

Undersøg på forhånd de metoder til ikke-funktionel testning, som du ønsker at bruge, og vælg softwareværktøjer og automatiseringsværktøjer, der opfylder de specifikke krav til dit projekt.

 

Konklusion

Ikke-funktionel testning er et vigtigt skridt i testprocessen, som gør det muligt for testerne at kontrollere, hvor godt et system fungerer, og i hvilket omfang det opfylder ikke-funktionelle krav som f.eks. indlæsningstider, kapacitet og sikkerhedsbeskyttelse.

Der er mange forskellige måder at udføre ikke-funktionel testning på, men moderne automatiseringsværktøjer gør det lettere at maksimere testdækningen og nøjagtigheden uden at gå på kompromis med kvaliteten af dine resultater.

 

Ofte stillede spørgsmål og ressourcer

Hvis du vil vide mere om ikke-funktionel testning, er der masser af FAQ’er og ressourcer tilgængelige online.

Gennemse vores foretrukne online ressourcer til ikke-funktionel testning nedenfor, eller læs svarene på nogle af de mest stillede spørgsmål om ikke-funktionel testning.

 

1. De bedste kurser om ikke-funktionel testning

 

Der er masser af kurser tilgængelige online, som kan hjælpe dig med at udvide din viden om metoder og tilgange til ikke-funktionel testning.

Nogle af disse kurser er gratis, og andre kan give et certifikat eller en kvalifikation mod betaling. Hvis du ønsker at tage et akkrediteret kursus, kan du spørge din arbejdsgiver, om de vil sponsorere dig og dække undervisningsudgifterne.

 

Nogle af de bedste kurser om ikke-funktionel testning omfatter:

 

  • TSG: Ikke-funktionel træning 2-dages kursus

 

  • Udemy: Den komplette 2023 Software Testing Bootcamp

 

  • Edx: Software Testing Professional Certificate

 

  • Uddannende: Automatisering af præstationstest 101

 

2. Hvad er de 5 vigtigste interviewspørgsmål om ikke-funktionel testning?

 

Hvis du forbereder dig til en jobsamtale om at arbejde med softwaretestning, vil din interviewer måske stille dig spørgsmål om ikke-funktionel testning for at sikre, at du forstår, hvordan denne vigtige fase af softwaretestning fungerer. Forbered dig på dit interview ved at forberede effektive svar på almindelige interviewspørgsmål på forhånd.

● Hvordan kan de tilgange og metoder, som du bruger til ikke-funktionel testning, adskille sig fra de tilgange, du bruger til funktionel testning?

● Hvordan adskiller ikke-funktionel testning sig fra funktionel testning?

● Hvilke forskellige typer af ikke-funktionel test findes der?

● Hvordan prioriterer du funktionelle test og testcases?

● På hvilken fase af softwaretesten udføres funktionel test normalt?

 

3. De bedste YouTube-tutorials om ikke-funktionel testning

 

Hvis du foretrækker at lære ved at se videoer, kan du finde YouTube-tutorials om ikke-funktionel testning nyttige til at lære mere om denne type softwaretestning.

Herunder finder du nogle af de bedste YouTube-tutorials om softwaretest, der findes i dag.

Hvad er ikke-funktionel softwaretestning? En vejledning i softwaretestning
Hjælp til softwaretestning: Ikke-funktionel testning
Ikke-funktionel testning i softwaretestning
Besøg W3Schools
Funktionel og ikke-funktionel testning

 

4. Hvordan man vedligeholder ikke-funktionelle test

 

Korrekt testvedligeholdelse sikrer, at softwaretests kan gentages uden at gå på kompromis med kvaliteten af testresultaterne.

Ved at vedligeholde ikke-funktionelle tests kan du sikre, at testningen på hvert trin i udviklingsprocessen er tilstrækkelig, og at dine tests altid opdateres i takt med den konstant skiftende kode.

 

Du kan vedligeholde ikke-funktionelle tests ved at følge vores tips nedenfor.

 

● Kommunikere klart på tværs af testteamet, når der oprettes testcases og skrives dokumentation

● Følg altid bedste praksis for testdesign

● Revurdering af testprotokoller på forskellige stadier af testprocessen

● Opdater ændringer i din test undervejs

Overvej fremtidige projekter, når der foretages ændringer i de nuværende test

 

5. Er ikke-funktionel testning black box eller white box testning?

 

Ikke-funktionel testning er en form for black box-testning, hvilket betyder, at testerne ikke beskæftiger sig med systemets interne funktioner, men kun med dets eksterne output.

Dette står i kontrast til white box-testning, som tester den måde, systemet fungerer internt på. Eksempler på white box-testning omfatter enhedstestning og integrationstestning.

Testning af funktionelle og ikke-funktionelle krav er eksempler på black box-testning. Det betyder, at testere ikke behøver avancerede tekniske færdigheder eller viden om computerprogrammering for at udføre black box-testning, og de behøver heller ikke at lære at implementere de systemer, de tester.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo