I mjukvarutestning , är det viktigt att avgöra om systemet korrekt accepterar lämpliga ingångar och endast de lämpliga ingångar . För detta ändamål är likvärdighet partitionering och gräns - värde analys användes . Vissa programvara ingenjörer kommer även gå utöver kraven i någon av dessa , testa tre fall runt en gräns : en på gränsen , och en direkt på vardera sidan om det . Boundary Fall
Tanken bakom både likvärdighet partitionering och gräns - värde analys vilar på en förståelse av boundary fall . Den " gräns " i fråga är mellan giltiga och ogiltiga indata , plus värdena närheten . Till exempel , om du hade ett system som var tänkt att acceptera en månad som en ingång , skulle 1-12 vara giltiga ingångar . Något noll eller negativ , eller 13 eller högre , inte skulle vara giltigt . Så gränsen fallen är 0 , 1 , 12 , och 13 .
Boundary - Value Analysis
För ett gräns - värde analys , i exemplet i månader som indata , skulle du testa 0,1,12 och 13 . Du kan förvänta dig ett felmeddelande för värdena 0 och 13 . Du kan förvänta dig att systemet ska fungera normalt under 1 och 12 . Om det inte skedde , skulle du veta att det var något fel med programmeringen .
Likvärdighet partitionering
Likvärdighet partitionering syftar till att eliminera redundans av gränsen - värde tester för att testa mer effektivt . På ett antal linje av heltal , för månader exempel , skulle du visa utrymmet mellan 0 och 1 som en partition , och även utrymmet mellan 12 och 13 . Ditt nummer linje skulle därmed delas in i tre delar , och du skulle se till att varje sektion testades en gång . Detta betyder att du skulle testa tre siffror totalt , inte fyra , som i gräns - värde analys .
Andra skillnader
Likvärdighet partitionering kan du också testa något värde mellan partitionerna , snarare än endast värden nära gränsen . Så , i månader exempel kan du testa -3 , 5 och 1,000,000 . Men de flesta testare använder vanligtvis båda strategierna eftersom , även om likvärdighet partitionering är effektiv , om du inte vet exakt vilken typ av program , kanske du missar subtiliteter . Ett exempel skulle kunna vara ett system som hanterar månader 1-6 olika från månad 7-12 .