what is scalability testing
Inleiding tot schaalbaarheidstests:
Schaalbaarheidstesten is een niet-functionele testmethodologie waarbij de prestaties van een applicatie worden gemeten in termen van het vermogen om het aantal gebruikersverzoeken of andere dergelijke prestatiemaatstaven op te schalen of te verkleinen.
Schaalbaarheidstests kunnen worden uitgevoerd op hardware-, software- of databaseniveau.
De parameters die voor deze test worden gebruikt, verschillen van de ene toepassing tot de andere, voor een webpagina kan dit het aantal gebruikers, het CPU-gebruik en het netwerkgebruik zijn, terwijl dit voor een webserver het aantal verwerkte verzoeken is.
Deze tutorial geeft je een compleet overzicht van Scalability Testing samen met zijn attributen en de verschillende stappen die betrokken zijn bij het uitvoeren van de test met praktische voorbeelden om u in staat te stellen het concept op een betere manier te begrijpen.
Wat je leert:
- Schaalbaarheidstests versus belastingtests
- Schaalbaarheidstestattributen
- Stappen om de schaalbaarheid van een applicatie te testen
- Gevolgtrekking
- Aanbevolen literatuur
Schaalbaarheidstests versus belastingtests
Load Testing meet de applicatie die wordt getest onder maximale belasting waarbij het systeem zou crashen. Het belangrijkste doel van belastingtests is om het piekpunt te identificeren waarna de gebruikers het systeem niet zouden kunnen gebruiken.
interviewvragen voor bedrijfsanalist verzekeringsdomein
Zowel belasting als schaalbaarheid vallen onder de methodologie voor prestatietests.
Schaalbaarheid verschilt van Load Testing doordat de schaalbaarheidstest het systeem meet bij de minimale en maximale belasting op alle niveaus, inclusief de software, hardware en database niveaus. Zodra de maximale belasting is vastgesteld, moeten ontwikkelaars op de juiste manier reageren om ervoor te zorgen dat het systeem schaalbaar is na een bepaalde belasting.
Voorbeeld: Als schaalbaarheidstests bepalen dat de maximale belasting 10.000 gebruikers is, moeten ontwikkelaars maatregelen nemen om het systeem schaalbaar te maken, zoals het verminderen van de responstijd nadat de limiet van 10.000 gebruikers is bereikt of het vergroten van de RAM-grootte om de groeiende gebruikersgegevens op te vangen.
Load Testing houdt in dat de ontwikkelde applicaties in één keer maximaal worden belast, terwijl bij het testen van schaalbaarheid de belasting geleidelijk wordt verhoogd over een bepaalde periode.
Load-tests bepalen het punt waarop de applicatie crasht, terwijl schaalbaarheid probeert de reden voor het crashen van de applicatie te achterhalen en stappen te ondernemen om het probleem op te lossen.
Kortom, Load Testing helpt bij het identificeren van prestatieproblemen, terwijl schaalbaarheidstests helpen om te bepalen of het systeem kan opschalen naar het groeiende aantal gebruikers.
Schaalbaarheidstestattributen
Schaalbaarheidstestattributen definiëren de prestatiemaatstaven op basis waarvan deze test zal worden uitgevoerd.
Hieronder volgen enkele van de algemene kenmerken:
1) Reactietijd:
- Reactietijd is de tijd tussen het gebruikersverzoek en de toepassingsreactie. Deze test wordt gedaan om de responstijd van de server te identificeren onder minimale belasting, drempelbelasting en maximale belasting om het punt te identificeren waarop de applicatie zou breken.
- De reactietijd kan toenemen of afnemen, afhankelijk van de verschillende gebruikersbelasting van de applicatie. Idealiter zou de responstijd van een applicatie afnemen naarmate de gebruikersbelasting blijft toenemen.
- Een applicatie kan als schaalbaar worden beschouwd als deze dezelfde responstijd kan leveren voor verschillende niveaus van gebruikersbelasting.
- In het geval van geclusterde omgevingen waar de applicatiebelasting wordt verdeeld over meerdere servercomponenten, moeten schaalbaarheidstests meten in hoeverre de load-balancer de belasting over meerdere servers verdeelt. Dit zorgt ervoor dat de ene server niet wordt overladen met verzoeken terwijl de andere server inactief is en wacht tot er een verzoek binnenkomt.
- De responstijd van elk serveronderdeel moet zorgvuldig worden gemeten als de toepassing wordt gehost in een clusteromgeving en schaalbaarheidstests moeten ervoor zorgen dat de responstijd van elk serveronderdeel hetzelfde moet zijn, ongeacht de hoeveelheid belasting die op elke server wordt uitgeoefend.
- Voorbeeld: Reactietijd kan worden gemeten als de tijd waarop de gebruiker de URL in een webbrowser invoert tot de tijd tot het moment waarop de webpagina de inhoud laadt. Hoe korter de reactietijd, hoe hoger de prestatie van een applicatie.
2) Doorvoer:
- Doorvoer is de maat voor een aantal verzoeken dat door de applicatie in een tijdseenheid wordt verwerkt.
- De uitkomst van de doorvoer kan van applicatie tot applicatie verschillen. Of het om een webapplicatie gaat, wordt gemeten in termen van het aantal verwerkte gebruikersverzoeken per tijdseenheid en of het een database is. de verwerkingscapaciteit wordt gemeten in termen van een aantal zoekopdrachten dat in tijdseenheid wordt verwerkt.
- Een applicatie wordt als schaalbaar beschouwd als deze dezelfde doorvoersnelheid kan leveren voor verschillende niveaus van belasting van de interne applicaties, hardware en database.
3) CPU-gebruik:
- CPU-gebruik is een maatstaf voor het CPU-gebruik voor het uitvoeren van een taak door een toepassing. CPU-gebruik wordt meestal gemeten in termen van de eenheid MegaHertz.
- In het ideale geval geldt dat hoe beter de toepassingscode is geoptimaliseerd, des te minder het waargenomen CPU-gebruik zal zijn.
- Om dit te bereiken, gebruiken veel organisaties standaard programmeerpraktijken om het CPU-gebruik te minimaliseren.
- Voorbeeld: Het verwijderen van dode code in de applicatie en het minimaliseren van het gebruik van Thread. Slaapmethoden zijn een van de beste programmeermethoden om CPU-gebruik te minimaliseren.
4) Geheugengebruik:
- Geheugengebruik is een maatstaf voor het geheugen dat wordt verbruikt voor het uitvoeren van een taak door een toepassing.
- Idealiter wordt geheugen gemeten in termen van bytes (MegaBytes, GigaBytes of Tera Bytes) die de ontwikkelde applicatie gebruikt om toegang te krijgen tot Random Access Memory (RAM).
- Het geheugengebruik van een applicatie kan worden geminimaliseerd door de beste programmeerpraktijken te volgen.
- Voorbeelden van de beste programmeerpraktijken zijn het niet gebruiken van redundante lussen, het verminderen van het aantal hits naar de database, het gebruik van de cache, het optimaliseren van het gebruik van SQL-queries, enz. Een applicatie wordt als schaalbaar beschouwd als het het gebruik van het geheugen minimaliseert de maximale mate mogelijk.
- Voorbeeld: Als de beschikbare opslagruimte voor een bepaald aantal gebruikers onvoldoende geheugen heeft, zal de ontwikkelaar worden gedwongen om extra databaseopslag toe te voegen om het verlies van gegevens te compenseren.
5) Netwerkgebruik:
- Netwerkgebruik is de hoeveelheid bandbreedte die wordt verbruikt door een applicatie die wordt getest.
- Het doel van netwerkgebruik is om netwerkcongestie te verminderen. Het netwerkgebruik wordt gemeten in termen van ontvangen bytes per seconde, ontvangen frames per seconde, ontvangen en verzonden segmenten per seconde, enz.
- Programmeertechnieken zoals het gebruik van compressietechnieken kunnen helpen om congestie te verminderen en het netwerkgebruik te minimaliseren. Een applicatie wordt als schaalbaar beschouwd als deze kan presteren met minimale netwerkcongestie en hoge applicatieprestaties kan leveren.
- Voorbeeld: In plaats van een wachtrijmechanisme te volgen voor het verwerken van de gebruikersverzoeken, kan een ontwikkelaar de code schrijven om de gebruikersverzoeken te verwerken zodra het verzoek in een database binnenkomt.
Afgezien van deze parameters zijn er enkele andere minder gebruikte parameters, zoals reactietijd serververzoek, uitvoeringstijd taak, transactietijd, laadtijd webpagina, tijd om het antwoord op te halen uit de database, herstarttijd, afdruktijd, sessietijd, schermovergang , transacties per seconde, hits per seconde, verzoeken per seconde etc.
De kenmerken voor het testen van schaalbaarheid kunnen van applicatie tot applicatie verschillen, aangezien de prestatiemaatstaf voor webapplicaties mogelijk niet dezelfde is als die van een desktop- of client-servertoepassing.
Stappen om de schaalbaarheid van een applicatie te testen
Het belangrijkste voordeel van het uitvoeren van deze tests op een applicatie is inzicht in het gebruikersgedrag wanneer de maximale belasting is bereikt en de manieren om dit op te lossen.
Deze tests stellen de testers ook in staat om de degradatie aan de serverzijde en de responstijd te identificeren met betrekking tot de gebruikersbelasting van de applicatie. Als gevolg hiervan heeft deze test bij verschillende organisaties wereldwijd de voorkeur.
Hieronder vindt u de lijst met stappen om de schaalbaarheid van een applicatie te testen:
datastage interviewvragen en antwoorden pdf
- Maak herhaalbare testscenario's voor elk van de schaalbaarheidstestattributen.
- Test de applicatie op verschillende niveaus van belasting, zoals lage, gemiddelde en hoge belastingen, en verifieer het gedrag van een applicatie.
- Creëer een testomgeving die stabiel genoeg is om de volledige schaalbaarheidstestcyclus te doorstaan.
- Configureer de hardware die nodig is om deze test uit te voeren.
- Definieer een set virtuele gebruikers voor het verifiëren van het gedrag van een applicatie onder verschillende gebruikersbelasting.
- Herhaal de testscenario's voor meerdere gebruikers onder verschillende omstandigheden van interne applicaties, hardware en databasewijzigingen.
- Controleer in het geval van een clusteromgeving of de load balancer de gebruikersverzoeken naar meerdere servers stuurt om ervoor te zorgen dat geen enkele server wordt overbelast door een reeks verzoeken.
- Voer de testscenario's uit in de testomgeving.
- Analyseer de gegenereerde rapporten en verifieer de verbeterpunten, indien aanwezig.
Gevolgtrekking
In een notendop,
=> Schaalbaarheidstesten is een niet-functionele testmethodologie om te verifiëren of een applicatie kan opschalen of verkleinen naar de verschillende attributen. Attributen die voor deze test worden gebruikt, variëren van de ene toepassing tot de andere.
=> Het belangrijkste doel van deze test is om te bepalen wanneer een applicatie begint te degraderen bij een maximale belasting en de juiste stappen te ondernemen om ervoor te zorgen dat de ontwikkelde applicatie voldoende schaalbaar is om de veranderingen in de interne applicaties, software, hardware en ook de database op te vangen veranderingen in de toekomst.
=> Als deze test correct wordt uitgevoerd, kunnen grote fouten met betrekking tot de prestaties van de software, hardware en database worden ontdekt in de ontwikkelde applicaties.
=> Een groot nadeel van deze test zou de beperking van de gegevensopslag zijn, met beperkingen voor de databasegrootte en de bufferruimte. Ook kunnen de beperkingen van de netwerkbandbreedte een belemmering vormen voor het testen van schaalbaarheid.
=> Het proces van schaalbaarheidstesten verschilt van organisatie tot organisatie, aangezien de schaalbaarheidstestattributen van de ene applicatie anders zullen zijn dan die van de andere applicaties.
Aanbevolen literatuur
- Laadtests met HP LoadRunner-zelfstudies
- Prestatietests versus belastingtests versus stresstests (verschil)
- Verschil tussen Desktop, Client Server Testing en Web Testing
- Webapplicatie laden, stress en prestatie testen met behulp van WAPT
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- Handleiding voor het testen van webapplicaties
- Applicatie testen - In de basis van softwaretesten!
- Installeer uw applicatie op het apparaat en begin met testen vanuit Eclipse