Ronnie Heimer

Veckans testartips #26 - Fallgrop med den booleska datatypen

2018-09-25 Blogg Test Testartips Läst 165 gånger

En trend i testvärlden är att testarrollen breddas och att man förväntas bidra med kvalitetsarbete i hela utvecklingskedjan. Som ett led i detta kommer här ett tips på något att hålla utkik efter vid en kodgranskning.

Den booleska datatypen är uppskattad och väldigt frekvent använd. Dess enkelhet tilltalar alla. Dock ligger dess begränsning också där, då den måste vara satt till sant eller falskt. Detta är ofta inget problem utan just vid initiering av en boolesk variabel då denna tilldelas ett värde. Här blir det ibland fel och är ett ställe som en testare skall hålla lite extra koll  på. Låt mig ge ett förenklat exempel: 

boolean alarmActive = false;
while(alarmActive == true && timer <Timeout)
{
   alarmActive = checkAlarm();
   sleep();
}

Utvecklaren vill köra while loopen tills alarmet är inaktivt dvs alarmActive är false. Men initial värdet är redan falskt och checkAlarm kommer aldrig att köras. För att undvika att riskera att hamna i detta scenario kan ett alternativ vara att använda en heltalsvariabel som sätts till 0 (falskt) eller 1 (sant). Fördelen med detta är att då kan man använda -1 som värde när variabeln skapas och på så sätt särskilja ut fallet där värdet ännu är okänt.

Läs fler testartips här

Dela artikeln