fbpx

Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

Ekvivalenspartitionering inom programvarutestning är en black-box-testteknik som hjälper dig att bygga effektiva testfall utan att kompromissa med testtäckningen.

I den här artikeln tittar vi på vad ekvivalensklassindelning är, varför det är användbart och utforskar några av de processer och tillvägagångssätt som du kan använda för att låsa upp fördelarna med denna teknik.

 

Table of Contents

Vad är partitionering av ekvivalensklasser

inom programvarutestning?

QA-testning - Vad är det, typer, processer, tillvägagångssätt, verktyg och mer!

All programvara har särskilda inmatningsvillkor. I samband med programvarutestning beskriver dessa inmatningsvillkor de värden eller data som en testare måste använda för att verifiera kvaliteten och funktionaliteten hos sin programvara. Dessa inmatningar kan vara något så enkelt som ett musklick, ända upp till text och siffror.

En ekvivalent partition i programvarutestning undersöker de olika indata som krävs för att använda programvaran och grupperar dem i ekvivalensklasser, dvs. uppsättningar av indata som kommer att ha en likvärdig effekt på programvarans beteende.

Om du vet hur varje grupp av ingångar kommer att bete sig behöver du inte testa varje representant för gruppen. Därför är ekvivalensklassuppdelning ett bra sätt att hjälpa testare att minska frekvensen av överflödiga tester. I en konkurrensutsatt värld med allt snävare deadlines är det avgörande att spara tid och kraft i livscykeln för programvarutestning (STLC).

Slutligen är det värt att notera att ekvivalenstestning är en black-box-testteknik. Kort sagt innebär det att testarna inte behöver känna till programmets interna kod eller inre funktioner. Testerna baseras på input, output och externa beteenden. Därför är dessa tester mycket fokuserade på användarnas beteende när de använder programmet.

 

1. Ekvivalenspartitionering för programvarutestning i ett nötskal

Ekvivalenspartitionering delar upp indata för programvarutestning i två läger: giltiga och ogiltiga indata. Värdena inom varje partition måste få programvaran att uppvisa samma beteende. Till exempel:

  • Om villkoret för ett värde i Partition A är sant, måste även de andra värdena i Partition A vara det.
  • På samma sätt gäller att om villkoren för ett värde i Partition A är falska, måste de andra värdena i Partition A också vara falska.

I ett testsammanhang måste varje partition täckas minst en gång. Logiskt sett innebär detta att om en ingång i Partition A misslyckas, kommer alla andra ingångar också att misslyckas. Denna process bör spara tid eftersom testarna istället för att testa varje input som sitter i Partition A kan testa bara en och extrapolera resultatet baserat på dess gemensamma nämnare.

 

2. Varför är det viktigt att testa ekvivalensklasser vid programvarutestning?

Innan vi går in på de direkta fördelarna med ekvivalensklassning vid programvarutestning måste vi definiera varför metoden är viktig.

Alla testare förstår att programvarutestning kräver kompromisser. Tid och budgetar är begränsade, vilket innebär att testare måste göra det mesta av sina resurser. Ekvivalenspartitionering för programvarutestning hjälper teamen att hitta en balans mellan effektivitet och tillförlitlighet i sin testning genom att minska antalet indata.

 

Fördelar med ekvivalenspartitionering

inom testning av programvara

Användningsfall av Robotic Process Automation inom försäkring och redovisning

En motsvarande partition inom programvarutestning föredras av testteam av en rad olika skäl. Här är några av de mest övertygande.

1. Effektivitet

Den stora fördelen med testning av ekvivalenspartitioner ligger i dess effektivitet. När testare använder ekvivalenspartitionering kan de minska antalet testfall de behöver utan att kompromissa med testtäckningen. Genom att välja ett inmatningsfall från varje ekvivalensklass kan testarna känna sig trygga med att de förstår hur deras programvara fungerar med en mängd olika inmatningar.

2. Enkelhet

En annan stor fördel med ekvivalenspartitionering för programvarutestning är enkelheten. Att dela upp en mängd olika indata i både giltiga och ogiltiga data innebär att testplaneringen blir mycket enklare. Att testa varje indata individuellt kräver mycket dokumentation och samordning. Att reducera detta till ett representativt exempel effektiviserar testprocessen.

Förbättrad täckning

Genom att använda ekvivalensklasser vid testning kan du också använda din testtid mer effektivt. Genom att dela upp testdata i klasser kan du testa varje klass mer noggrant. Detta omfattande tillvägagångssätt skulle vara helt omöjligt om du testade varje ingång individuellt. Med ekvivalenspartitionering kan teamen gå grundligt tillväga och testa giltiga och ogiltiga data, edge cases, gränsvärden med mera.

3. Återanvändbarhet

Den inledande tid som du investerar i att upprätta varje ekvivalensklass i programvarutestning lönar sig i längden om du återanvänder dessa klasser för framtida input-tester. Även om inte alla partitioner kommer att vara relevanta för framtida tester, kommer de som är det att spara dig mycket tid med antingen framtida projekt eller till och med regressionstestningssituationer.

 

Nackdelar med ekvivalenspartitionering

inom testning av programvara

utmaningar-belastningsprovning

Även om ekvivalenspartitionering ger stora fördelar är det inte den perfekta lösningen för alla scenarier. Låt oss utforska några av dess begränsningar.

1. Inmatningsordning

I vissa situationer är inmatningsordningen en kritisk del av testningen av en applikations funktionalitet. Det är inte något som man kan minska med hjälp av ekvivalenspartitionering. Testare måste vara uppmärksamma på dessa situationer och använda alternativa tekniker för att ge bra täckning.

2. Komplexa inmatningsberoenden

Komplex programvara med komplexa inmatningsberoenden är ett annat område där begränsningarna med ekvivalenspartitionering avslöjas. Till exempel programvara som ger uträkningar baserade på olika indata. I detta scenario skulle testarna behöva använda en mängd olika tekniker för att minska kombinatoriska explosioner och öka sannolikheten för att isolera defekter.

 

Alternativa metoder för att komplettera

begränsningar av likvärdighetstestning

alfatestning vs betatestning

Även om ekvivalenspartitionstestning är lämpligt för många testscenarier, kan mycket komplex programvara med intrikata beroenden mellan ingångsvärden kräva ytterligare kompletterande metoder.

När det gäller att skriva testfall för komplex programvara är det en god idé att använda en kombination av dessa metoder.

1. Testning parvis

Parvis testning är en testteknik för programvara som testar alla möjliga kombinationer av varje par av ingångsparametrar. Detta tillvägagångssätt säkerställer att varje parameterpar testas tillsammans minst en gång.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

2. Test av beslutstabell

En beslutstabell hjälper testarna att metodiskt kartlägga olika inmatningskombinationer. Det är ett bra sätt att säkerställa systematisk täckning när det finns komplexa beroenden.

3. Testning av övergångstillstånd

Denna testtyp mäter hur programvaran övergår mellan olika tillstånd som svar på olika kombinationer av indata.

4. Modellbaserad testning

Detta tillvägagångssätt innebär att man skapar en modell baserad på programvarans interna logik och använder ett automatiseringsverktyg för att skapa testfall baserade på denna modell. Denna teknik är skicklig på att hantera komplexitet och säkerställa tillräcklig täckning.

 

Exempel på testning av uppdelning i ekvivalensklasser

Betatestning - Vad det är, typer, processer, tillvägagångssätt, verktyg, jämfört med alfatestning och mer!

Det bästa sättet att förstå ekvivalenspartitionering är att titta på hur och var man kan använda en ekvivalensklass i programvarutestning. Här är några exempel som hjälper dig att ytterligare visualisera konceptet.

 

1. Exempel på testning av ekvivalensklassindelning #1

Ett onlinebeställningsformulär är ett bra exempel på ekvivalensklass vid testning av programvara.

Låt oss säga att du bygger en app för en online-återförsäljare av stationär utrustning. Det finns en typisk beställningsblankett för A4-papper. Så här kan du använda ekvivalensklasser för att testa denna form.

Ekvivalensklasser:

Mängden A4-papper ligger inom ett visst intervall, t.ex. 1 till 100. De tre klasserna är alltså

  • 1 till 100
  • Siffror under 1
  • Siffror över 100.

 

Testfall:

Tre testfall ska köras, med följande förväntade resultat

  • Alla siffror mellan 1 och 100 = ordern bearbetad
  • Siffror under 1 = felmeddelande
  • Siffror över 100 = felmeddelande

 

2. Exempel på testning av ekvivalenspartitionering #2

En ekvivalensklass inom programvarutestning kan handla om mer än bara siffror. I det här exemplet ska vi undersöka hur du kan använda samma princip för att verifiera en filuppladdningsportal. Låt oss säga att du behöver testa för en webbplats som kräver att användarna laddar upp identitetshandlingar, men du kan bara acceptera vissa format.

Ekvivalensklasser:

  • Dokument som stöds är PDF och JPEG.
  • Dokument som inte stöds är alla andra dokumentformat
  • Inget dokument

 

Testfall:

  • Test genom att ladda upp PDF eller JPEG = lyckad uppladdning
  • Testa genom att ladda upp format som inte stöds = felmeddelande
  • Test utan filuppladdning = felmeddelande

 

Hur man implementerar en ekvivalenspartitionering

metod för testning av programvara

Agil DevOps testautomatisering: Förklaring av ZAPTEST:s mockup-baserade automatiseringsmetod

Om du vill använda ekvivalensklasser vid testning måste du ha ett strategiskt tillvägagångssätt. Här är en användbar steg-för-steg-guide för implementering av ekvivalenspartitionering i programvarutestning.

 

Steg 1: Identifiera ingående variabler

 

Varje programvara reagerar på en mängd olika ingångsvariabler. För komplex programvara kan dessa variabler vara enorma. Gå igenom programvarans krav och specifikationer och identifiera alla variabler som påverkar programvarans beteende.

Några av de mest uppenbara inmatningarna inkluderar formulär för användarinmatning. Du måste dock överväga ett bredare utbud av indata för din lista. Du kan också ta hänsyn till miljövariabler, API-anrop, interna beräkningar och så vidare.

Därefter bör du förstå de olika typerna av variabel data. Du kan kategorisera dessa variabler som heltal, booleska, strängar etc. för att definiera lämpliga partitioner.

Slutligen måste du undersöka begränsningar för inmatning. Det gäller t.ex. vilka tecken som är tillåtna, definierade format och minimi-/maximivärden.

 

Steg 2. Fastställa giltiga och ogiltiga partitioner

Titta på varje ingående variabel och börja dela upp dem efter giltiga och ogiltiga resultat. Dessa kommer att vara dina ekvivalensklasser i testningen.

1. Giltiga skiljeväggar

Giltiga partitioner kan delas in i två klasser.

Positiva ekvivalensklasser:

Värden som du förväntar dig att din programvara ska hantera på ett bra sätt. För programvara som registrerar procentuella betyg är t.ex. allt mellan 0 och 100 giltigt.

Negativa ekvivalensklasser:

Denna kategori är avsedd för värden som ligger utanför gränserna för förväntad inmatning men som din programvara bör hantera med ett felmeddelande. Till exempel är inmatningen 110 för ett procentuellt betyg, vilket gör att programvaran returnerar ett felmeddelande som säger “Alla värden måste vara 0 till 100”.

 

2. Ogiltiga partitioner

Dessa ekvivalensklasser kommer att innehålla indata som utlöser fel eller oväntade beteenden. I vårt exempel ovan kan det handla om försök att ange A+ eller B eller liknande i procentbetyget. Även om dessa inmatningar kan vara tekniskt korrekta, ligger de utanför de numeriska förväntningarna.

 

#3. Skriva effektiva testfall

Därefter måste du utforma testfall som täcker varje ekvivalenspartition minst en gång. Som nämnts tidigare i artikeln säkerställer detta lämplig testtäckning.

Först måste du välja representativa värden inom varje ekvivalenspartition som kan täcka både giltiga och ogiltiga data.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Tips för att skriva bra testfall

  • Tänk på gränsvärden: Se till att du testar gränserna för dina partitioner. Minimum, maximum, inclusive, exclusive, etc., eftersom dessa områden är starka kandidater för buggar. Om du t.ex. förväntar dig att inmatningen ska ligga mellan 0 och 100 ska du testa om det finns negativa värden och siffror som 101.
  • Överväg positiva och negativa testscenarier för både giltiga och ogiltiga testfall.
  • Kombinerade tester är en bra idé. Använd några olika metoder som beskrivs i våra alternativa metoder för att komplettera begränsningarna i avsnittet om ekvivalensprövning ovan.
  • Dokumentera skälen till varför ingångsvärden har delats in i specifika partitioner och beskriv tydligt det förväntade beteendet för varje test.
  • Använd om möjligt visuella verktyg för att skapa tydlighet och objektivitet i dina testfall genom att använda diagram eller tabeller för att kartlägga dina partitioner.

 

#4. Planera och genomföra dina testfall

Prioritera dina uppgifter baserat på faktorer som t.ex:

  • Vilka områden är mest sannolika att ha defekter
  • Vilka scenarier är mest sannolika att orsaka allvarliga scenarier, såsom krascher eller frysningar

Kör sedan dina tester och registrera utdata och eventuella fel som uppstår. För komplexa program med många inmatningar kan du använda RPA-verktyg för att efterlikna användarnas agerande.

 

#5. Analysera resultaten

Samla de insamlade testdata och analysera resultaten. Några metoder du behöver använda är att:

  • Titta på varje testfall och jämför de faktiska resultaten med de förväntade resultaten
  • Hitta eventuella avvikelser och undersök och rapportera eventuella buggar och defekter.

 

#6 Ytterligare tips

Även om dessa tips inte är tillämpliga i alla scenarier, kommer de att vara användbara för komplexa programvarutester.

  • Beslutstabeller är ett utmärkt sätt att visualisera dina ekvivalenspartitioner och olika indatakombinationer som du kanske vill använda
  • Du kan slå samman ekvivalensklasser om de uppvisar nästan identiskt beteende, vilket ytterligare optimerar testprocessen
  • Använd gränsvärdestestning för att förbättra detektering av defekter
  • Automatisera om möjligt dina testfall för ekvivalenspartitionering

 

Ekvivalenspartitionering och gränsvärdesanalys

reda ut en del förvirring om automatisering av programvarutestning

Ekvivalenspartitionering bygger på antagandet att varje test inom en partition kommer att ge samma resultat. Det är visserligen sant i många situationer, men det fungerar inte alltid. Till exempel kan ingångar som av misstag har lagts till i en partition förbli okontrollerade, vilket leder till minskad täckning och potentiell instabilitet i programvaran längre fram.

Lösningen på detta problem är gränsvärdestestning. Det gör det möjligt för testteam att fokusera på de områden som mest sannolikt innehåller risker och testa programvaran på grundval av detta. Kort sagt innebär det att risker mest sannolikt uppstår vid kanterna eller gränserna för dina inmatningspartitioner. Därför kan testare skriva testfall vid de övre och undre gränserna för indata, utöver de andra testfallen för ekvivalensklasser.

 

Ekvivalenspartitionering och automatisering med ZAPTEST

de bästa verktygen för gratis testning och automatisering av programvara för företag och RPA

Verktyg för testautomatisering, som ZAPTEST, kan hjälpa teamen att automatisera ekvivalenspartitionering både under skapandet och utförandet av tester.

Låt oss utforska hur ZAPTEST kan hjälpa dig att dra nytta av fördelarna med denna användbara black-box-testmetod.

 

1. Val av verktyg

Att välja rätt verktyg för jobbet är viktigt. De flesta testautomatiseringsverktyg är specialiserade på antingen webb-, mobil- eller stationär testning. ZAPTEST kan hantera testning över olika plattformar och applikationer, vilket gör det till ett bra val.

 

2. Skriva och utföra testfall

Med ZAPTEST 1Script kan du skanna användargränssnittet för att bygga testautomatisering. Dessutom kan du skanna applikationsmodeller om du befinner dig i ett tidigt utvecklingsstadium. Med hjälp av funktionen Scan GUI kommer ZAPTEST att skanna alla testobjekt och lägga till dem i objektlistan.

Härifrån kan du lägga till objekt i diagrammet och bygga upp teststegen.

Med ZAPTEST kan du automatisera skrivandet av fallen med ett enkelt dra-och-släpp-gränssnitt. Du behöver ingen kodningsexpertis för att bygga testfall med ZAPTEST. Så härifrån kan du välja relevant operation från en rullgardinsmetod och bygga ett testfall baserat på de ingångsvärden som behövs för ditt gränssnitt. Sedan kan du bygga testfall för varje ekvivalens och exekvera dina testfall. Du kan även återanvända testfall och redigera dem i Step Editor, vilket sparar massor av tid.

 

3. Rapportering och hantering av testfall

Med ZAPTEST kan du köra testfall parallellt, vilket sparar mycket tid. Detta kan hjälpa dig att köra ett stort antal olika ekvivalenspartitioner samtidigt eller köra särskilda grupper av tester.

Resultaten är lätta att samla in tack vare detaljerade rapporter om misslyckade/godkända tester, skärmdumpar, exekveringsloggar och prestandamätvärden för varje testfall.

 

4. Underhåll av testfall

Du kan också enkelt spåra och underhålla dina testfall tack vare högkvalitativa funktioner för versionshantering. Dessutom kan ZAPTEST-användare klona och återanvända tester för att uppnå en ny effektivitetsnivå.

ZAPTEST erbjuder mycket mer funktionalitet förutom automatisering av testfall. Med en uppsättning RPA-verktyg erbjuder ZAPTEST 2-i-1-funktionalitet, som överbryggar klyftan mellan DevOps och BizOps i en framtid som präglas av hyperautomation, där allt som kan automatiseras kommer att automatiseras.

 

Avslutande tankar

Ekvivalenspartitionering är en elegant lösning för situationer där testare måste hitta en balans mellan effektivitet och noggrannhet. Eftersom vissa programvaror tillåter ett nästan oändligt antal inmatningar hjälper ekvivalensklassuppdelning teamen att dela upp testdata i hanterbara, små bitar som var och en kan testas grundligt.

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