Belastningstest (computer)

En belastningstest ( lånoversættelse af belastningstest) forstås som en softwaretest, der normalt genererer en meget høj belastning på systemet, der skal testes, og undersøger dets adfærd. En simulering kan bruges til dette. målet er

  1. påvisning af fejl, der ikke findes i den funktionelt orienterede systemtest / integrationstest
  2. Opfyldelse af ikke-funktionelle krav, såsom B. krævede svartider såvel som mængdebehandling, der skal bevises for produktiv drift .
  3. Kontroller dimensioneringen af ​​hardwareudstyret.

Belastningstesten er derfor efter funktionstesten, dvs. H. (under) systemet skal være i en funktionelt stabil tilstand for overhovedet at kunne testes for lasthåndtering.

Udtryk

Byrden kan være, at funktionerne udføres meget hurtigt efter hinanden, eller at parallelle aktiviteter udføres af virtuelle brugere ( flerbruger , vUser). Arbejdet udføres som regel direkte på protokolniveau ( netværksprotokol ).

Der kan sondres grundlæggende mellem (1) præstationsmålinger og (2) belastningstest. Ydelsesmålinger gentager udvalgte testtilfælde eller individuelle processer fra systemtesten under en basisbelastning: dette betyder, at individuelle funktioner kontrolleres for deres ydeevneegenskaber, dvs. H. alle brugere udfører den samme proces, som tester skalerbarheden for de enkelte funktioner. Man taler i denne sammenhæng om transaktioner. Belastningstest i snævrere forstand tester hele proceskæder og procesmix for ydeevne, dvs. H. forbindelserne mellem de enkelte processer på denne måde simulerer de konkrete processer fra den faktiske drift og repræsenterer et skridt i retning af at opnå operationel egnethed, som ikke bør undervurderes. Også her er skalerbarhed af afgørende betydning, men nu for hele procesmixet. Blokeringer i databaseadgang, som ellers er vanskelige at teste, er en fejl, der opstår ofte .

Hvis systemet bevidst belastes ud over den definerede belastningsgrænse, kaldes det en stresstest . Belastningen (antal virtuelle brugere) skal gradvis øges ud over den definerede belastningsgrænse.

Følgende spørgsmål undersøges:

  • Hvordan ændres svartiden afhængigt af belastningen?
  • Kan systemet stadig fungere på en acceptabel måde, selv under høj belastning?
  • Viser systemet udefineret adfærd (f.eks. Nedbrud)?
  • Er der nogen data inkonsekvens ?
  • Går systemet tilbage til det normale, efter at overbelastningen er faldet?

I modsætning hertil er den anvendte test med lav belastning , som bevidst drives med en lav intensitet, undersøgelsen af ​​interaktionsadfærden for den virtuelle bruger og det signal, der produceres af dem, meddelelsestrafik på systemet.

En belastningstest over en længere periode (f.eks. 48–72 timer) kaldes en kontinuerlig belastningstest ; det bruges primært til at opdage hukommelseslækager .

Den mest destruktive form for en belastningstest er fail-over-testen . Det handler om at kontrollere systemadfærden under belastning i tilfælde af svigt af systemkomponenter. Ideelt set bruges dette til at kontrollere nødscenarier, såsom B. rettidig tilslutning af yderligere ressourcer for at forhindre en total systemfejl.

udførelse

Generering af testdata

Testadfærden defineres normalt ved hjælp af et script-sprog . Mange værktøjer tillader optagelse via en webbrowser, der ligner en makro i Excel. Dette gøres for det meste via en proxy, der oversætter anmodningerne osv. Til script-sproget. Et vigtigt kriterium her er brugervenligheden ved oprettelse af testen, men også variationen og de understøttede protokoller (HTTP, HTTPS osv.). Såkaldte testdata- generatorer bruges også, især i områder, hvor datamængden er vigtigere end dens nøjagtige indhold . Dette er programmer, der genererer en stor mængde data i henhold til et forudbestemt mønster, den nøjagtige størrelse af datamængden kan normalt konfigureres. En hyppig anvendelse her er hastighedsmåling af databaser.

Test løb

I testkørslen udføres den registrerede adfærd (muligvis suppleret med tilfældige elementer eller kontraafhængige variabler) samtidigt i et hvilket som helst antal (virtuelle brugere) ved hjælp af det oprettede script, hvorved applikationen belastes. Et vigtigt kriterium her er den maksimale belastning, der kan genereres, samt hardwarekravene, der er knyttet til den.

Det er også nyttigt at have mulighed for at distribuere belastningsgenerering over flere computere, som nogle værktøjer tilbyder. På denne måde kan indflydelsen af ​​netværkskapaciteten og hardwarebegrænsningerne på den belastningsgenererende computer minimeres. For nylig har nogle kommercielle værktøjer integreret muligheden for at integrere yderligere belastningsgeneratorer i en sky .

Værktøjet indsamler så mange data som muligt under testkørslen. Dybest set sker dette direkte på siden af ​​den belastningsgenererende applikation (responstider, fejlkoder osv.). Nogle værktøjer tilbyder også yderligere muligheder for overvågning af bestemte web- / databaseservere (f.eks. IIS, Apache, MSSQL) eller applikationsservere (Tomcat osv.) For direkte at identificere relationer (f.eks. Høj responstid vs. databaseadgang). Dataopsamlingen kan imidlertid også finde sted på en modulær måde (hjælpeprogrammer f.eks. På serveren til den applikation, der skal testes). Det er afgørende, at der tilbydes så mange muligheder som muligt for indsamling af forskellige data.

evaluering

Visse nøgletal (f.eks. Responstid vs. time, timeouts vs. antal brugere osv.) Er normalt tilgængelige til evaluering i logfiler eller tidsafhængige grafer. Gode ​​(for det meste kommercielle) værktøjer tilbyder også muligheder, f.eks. B. brug af (auto) korrelationsfunktioner til at analysere afhængighederne i adfærd (f.eks. Høj responstid vs. opkald til en bestemt side osv.).

Normer

Som en vejledning til planlægning af en belastnings- og ydelsestest er DIN 66273 et passende udgangspunkt. Dette er indeholdt i den internationale standard ISO 14756 og standardiserer vilkår samt måle- og evalueringsprocedurer for udførelsen af ​​komplekse IT-systemer.

Til instrumentering af applikationer til måling af ydeevne og responstid blev standard for applikationsresponsmåling (ARM) vedtaget i Open Group . Denne standard definerer en programmeringsgrænseflade til programmeringssprogene C og Java .

Software værktøjer

Såkaldte belastningstestværktøjer er tilgængelige til gennemførelse af belastningstest. Generelt er der installeret en belastningsserver til at generere belastningen på det testede system. Belastningstestværktøjerne kan enten produceres af dig selv, eller du kan bruge standardsoftware, der tilbyder et væld af funktioner og evalueringsmuligheder.

Weblinks

litteratur

  • Röhrle, Jörg: En regelbaseret testdatagenerator til hurtig prototyping af databaseapplikationer , Hamburg: Kovač, 1995
  • Stefan Asböck: Load Testing for eConfidence . Segue Software Deutschland GmbH, Hamborg 2001.
  • Mike Loukides, Gian-Paolo Musumeci: System Performance Tuning . 2. udgave. O'Reilly & Associates, Sebastopol 2002.
  • Harry Sneed , Manfred Baumgartner, Richard Seidl : Systemtesten - Fra krav til kvalitetssikring . 3. Udgave. Carl Hanser Verlag , 2011, ISBN 978-3-446-42692-4 .
  • Richard Seidl, Manfred Baumgartner, Thomas Bucsics: Grundlæggende viden om testautomatisering - begreber, metoder og teknikker . 1. udgave. dpunkt.verlag, 2011, ISBN 978-3-89864-724-3 .