Doordrenktesten
Soak Testing is een soort niet-functionele test die wordt gebruikt om de prestaties van een softwareapplicatie onder een enorm belastingvolume gedurende een langere periode te meten. Het doel van Soak-tests is om ervoor te zorgen dat de softwareapplicatie een hoog gebruiksvolume ondersteunt en om te controleren wat er buiten de ontwerpverwachtingen zou gebeuren.
De onderstaande afbeelding toont een testcyclus die laat zien in welke fase de Soak Testing ( Type of Performance Test ) wordt uitgevoerd op een applicatie.
Bij dit type testen wordt in feite het geheugengebruik door een toepassing in een systeem gecontroleerd. Het is testen op systeemniveau om erachter te komen of het systeem bestand is tegen een zeer hoog gebruik en om te zien wat er buiten de ontwerpverwachtingen zou gebeuren.
In deze tutorial leer je-
- Waarom Soak Testing uitvoeren?
- Wanneer Soak Testing doen?
- Soak-teststrategie
- Kenmerken van Soak-testen
- VOORBEELDEN van Soak Testing
- Veelvoorkomende problemen die worden waargenomen tijdens Soak-tests
Waarom Soak Testing uitvoeren?
Een systeem kan zich normaal gedragen als het gedurende 2 uur wordt gebruikt, maar als hetzelfde systeem 10 uur of langer continu wordt gebruikt, kan het defect raken of zich abnormaal / willekeurig gedragen / kan het crashen. Om een dergelijk falen te voorspellen, wordt Soak Testing uitgevoerd.
Wanneer Soak Testing doen?
Soak-tests moeten worden uitgevoerd in de volgende scenario's: -
- Voordat de build wordt geïmplementeerd bij de klant, dwz voorafgaand aan de release van een applicatie op een specifiek platform, moet het een succesvolle reeks belastingtests doorlopen bij hoge of gelijkwaardige verkeersniveaus. Daarna worden de inweektesten uitgevoerd . Het helpt ons om te bepalen hoe een bepaalde applicatie gedurende een langere periode moet worden uitgevoerd. Als er problemen zoals geheugenlekken / geheugenbeschadiging worden gevonden tijdens de periode, dwz wanneer het Soak is ingeschakeld, moet dit onmiddellijk worden gemeld.
- De beste tijd om een inweektest uit te voeren, is in de weekenden, aangezien een toepassing gedurende een dag of nacht actief moet zijn. Het hangt volledig af van de beperkingen van de testsituatie. Soak-tests zijn een van de belangrijkste nalevingsvereisten die door elk bedrijf zeer strikt moeten worden nageleefd.
Soak-teststrategie
Long Session Soak Testing is een strategie waarbij een systeem langere tijd onder belasting staat.
Een eenvoudig voorbeeld is waar de gebruiker urenlang ingelogd blijft op een systeem om een aantal zakelijke transacties uit te voeren. Op deze manier worden veel gegevens gecreëerd. Het systeem / de databaseserver kan zwaar worden belast, wat kan resulteren in het vastlopen / crashen van de systeem- / databaseserver.
Bij Long Session Soak Testing worden activiteiten van meerdere dagen (bijvoorbeeld 30 dagen) uitgevoerd in een beperkt tijdsbestek (bijvoorbeeld 2 dagen). Het aantal transacties in dit beperkte tijdsbestek moet overeenkomen met of groter zijn dan de transacties van meerdere dagen. De focus moet liggen op het aantal verwerkte transacties. Het belangrijkste onderdeel van Soak Testing is het controleren van het beschikbare geheugen in de CPU en de hoeveelheid geheugen die in gebruik zal zijn. We moeten het geheugengebruik aan het begin en het einde van een soak-test registreren. Indien nodig is ook het geheugengebruik van faciliteiten zoals Java Virtual Machines van belang en dient deze te worden gemonitord.
Hieronder staan nog enkele controles die door elke gebruiker / tester moeten worden uitgevoerd voordat ze met Soak Testing beginnen:
a) Bewaak het verbruik van databasebronnen.
b) Bewaak het verbruik van de serverbronnen (ex-CPU-gebruik).
c) De Soak-test moet worden uitgevoerd met realistische gelijktijdigheid van de gebruiker.
Kenmerken van Soak-testen
Een standaard Soak-testmethode moet de volgende kenmerken hebben: -
- De duur van de meeste Soak Test wordt vaak bepaald door de beschikbare tijd.
- Elke toepassing moet zonder enige onderbreking worden uitgevoerd als het een langere periode vereist.
- Het moet alle scenario's omvatten die door de belanghebbenden zijn overeengekomen.
- Vrijwel elk systeem heeft een reguliere onderhoudsperiode en de tijd tussen dergelijke raamperiodes is een belangrijke drijfveer voor het bepalen van de reikwijdte van een Soak Test.
VOORBEELDEN van Soak Testing
- In het geval van een bankdomein wanneer er een grote hoeveelheid gegevens van handelaren is, zal de tester het systeem 70 uur tot 150 uur continu belasten om te controleren hoe de applicatie zich gedraagt tijdens deze laadperiode.
- Stel dat er 33.000 aanmeldingen zijn, die door het systeem moeten worden gehaald, dit vertegenwoordigt zeven en een halve dag activiteit. In dit geval kan een Soak Test van 60-70 uur worden gestart op vrijdagavond rond 18.00 uur, die kan worden afgerond op maandagochtend om 06.00 uur. Alleen met een dergelijke test is het mogelijk om een verslechtering van de prestaties onder de gecontroleerde omstandigheden waar te nemen.
- In het geval van videogames, mobiele applicaties, enz., Moet u de game of applicatie gedurende een langere tijd in een actieve staat laten, in verschillende bedieningsmodi, zoals inactief, gepauzeerd bij het titelscherm enzovoort om erachter te komen of een applicatie kan de continu verwachte belasting aan.
Veelvoorkomende problemen die worden waargenomen tijdens Soak-tests
- Geheugentoewijzing (geheugenlekken die uiteindelijk zouden resulteren in een geheugencrisis of afrondingsfouten die zich pas na verloop van tijd manifesteren).
- Gebruik van databasebronnen (het niet sluiten van databasecursors onder bepaalde omstandigheden, wat uiteindelijk zou resulteren in het vastlopen van het hele systeem).
- Het kan ook leiden tot verminderde prestaties, dwz om ervoor te zorgen dat de responstijd na een lange periode van aanhoudende activiteit net zo goed is als aan het begin van de test.
- Het niet sluiten van verbindingen tussen lagen van een meerlagig systeem onder bepaalde omstandigheden, waardoor sommige of alle modules van het systeem kunnen vastlopen.
- De geleidelijke verslechtering van de responstijd van sommige functies als interne datastructuren worden minder efficiënt tijdens een lange test.
Overzicht
- In Software Engineering worden Soak-tests uitgevoerd om te bepalen of de te testen applicatie de continue belasting kan verdragen.
- Het is een soort prestatietest.
- Het helpt het systeem om te bepalen of het bestand is tegen een zeer hoog gebruik
- Bij dit type testen wordt in feite het geheugengebruik door een toepassing in een systeem gecontroleerd
- Controles die door elke gebruiker / tester moeten worden uitgevoerd voordat ze met Soak Testing beginnen, zijn onder meer
- Bewaak het verbruik van databasebronnen.
- Bewaak het verbruik van de serverbronnen (exclusief CPU-gebruik).
- De Soak-test moet worden uitgevoerd met realistische gebruikersconcurrency.
Dit artikel is bijgedragen door Pallavi De