Grenswaarde-analyse

De verwachte in- en uitvoerwaarden voor de softwarecomponent moeten uit de specificatie van de component worden gehaald. De waarden worden vervolgens gegroepeerd in sets met identificeerbare grenzen. Elke set, of partitie, bevat waarden die naar verwachting door de component op dezelfde wijze zullen worden verwerkt. Partitionering van reeksen testgegevens wordt toegelicht in de ontwerptechniek voor equivalentiepartitionering van testgevallen. Het is belangrijk om bij het ontwerpen van testgevallen rekening te houden met zowel geldige als ongeldige partities.

De demonstratie kan worden gedaan met behulp van een functie die in Java is geschreven.

class Safe { static int add(int a, int b) { int c = a + b ; if (a >= 0 && b >= 0 && c < 0) { System.err.println("Overflow!"); } if (a < 0 && b < 0 && c >= 0) { System.err.println("Underflow!"); } return c; }}

Op basis van de code worden de invoervectoren van gepartitioneerd. De blokken die we moeten behandelen zijn het overflow statement en het underflow statement en geen van deze 2. Dat levert 3 equivalente klassen op, uit de code review zelf.

Demonstreren van grenswaarden (Oranje)

we merken op dat er een vaste grootte van geheel getal is vandaar:-

MIN_VALUE ≤ x + y ≤ MAX_VALUE

We merken op dat de invoerparameter a en b beide gehele getallen zijn, vandaar dat er een totale orde op bestaat.Als we de gelijkheid berekenen:-

x + y = MAX_VALUE MIN_VALUE = x + y

krijgen we de waarden terug die op de grens liggen, inclusief, d.w.z. deze paren van (a,b) zijn geldige combinaties, en er zou geen underflow of overflow optreden.

Aan de andere kant:-

x + y = MAX_VALUE + 1

krijgt men paren van (a,b) die ongeldige combinaties zijn, en er zou overflow optreden. Op dezelfde manier:-

x + y = MIN_VALUE – 1

geeft paren van (a,b) die ongeldige combinaties zijn, waarvoor Underflow zou optreden.

Grenswaarden (alleen getekend voor het overflow geval) worden getoond als de oranje lijn in de rechter figuur.

Een ander voorbeeld: als de invoer bestaat uit de maanden van het jaar, uitgedrukt als gehele getallen, zou de invoerparameter “maand” de volgende partities kunnen hebben:

 ... -2 -1 0 1 .............. 12 13 14 15 ..... --------------|-------------------|-------------------invalid partition 1 valid partition invalid partition 2

De grens tussen twee partities is de plaats waar het gedrag van de toepassing verandert en is zelf geen reëel getal. De grenswaarde is de minimale (of maximale) waarde die zich op de grens bevindt. Het getal 0 is het maximum getal in de eerste partitie, het getal 1 is de minimum waarde in de tweede partitie, beide zijn grenswaarden. Testgevallen moeten worden aangemaakt om inputs of outputs te genereren die op en aan weerszijden van elke grens vallen, hetgeen resulteert in twee gevallen per grens. De testgevallen aan elke kant van een grens moeten in de kleinst mogelijke stap voor de te testen component vallen, voor een geheel getal is dit 1, maar als de invoer een decimaal met 2 plaatsen was dan zou het .01 zijn. In het bovenstaande voorbeeld liggen de grenswaarden op 0,1 en 12,13 en elk van beide moet worden getest.

Begrenzingswaarde-analyse vereist geen ongeldige partities. Neem een voorbeeld waarbij een verwarming wordt aangezet als de temperatuur 10 graden of kouder is. Er zijn twee partities (temperatuur≤10, temperatuur>10) en twee grenswaarden die moeten worden getest (temperatuur=10, temperatuur=11).

Wanneer een grenswaarde binnen de ongeldige partitie valt, wordt de testcase ontworpen om ervoor te zorgen dat de softwarecomponent de waarde op een gecontroleerde manier verwerkt. Grenswaarde-analyse kan gedurende de gehele testcyclus worden gebruikt en is in alle testfasen even goed toepasbaar.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.