Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
При подобном стресс-тестировании, случайные данные обязательно нащупают определённые скрытые пограничные точки, и протестируют те ветки ваших условий, до которых ваши выдуманные тесты при обычных обстоятельствах не доходили.
if ([std count] != [sd wordsCount])
{
NSLog(@"Words count mismatch %u vs %u",(unsigned)[std count],[sd wordsCount]);
status = 4;
}
else
{
for (NSString * w in [std allKeys])
{
NSString * entry = [sd lookupWord:w];
NSString * stdEntry = [std objectForKey:w];
if (![entry isEqualToString:stdEntry])
{
NSLog(@"Entry mismatch for word '%@', expected '%@'",w,stdEntry);
status = 5;
break;
}
unsigned wi = [sd indexForWord:w];
if (wi == TIDNotFound)
{
NSLog(@"Index-word error '%@'",w);
status = 6;
break;
}
NSString * iw = [sd wordByIndex:wi];
if (!iw)
{
NSLog(@"Word-index error for index %u",wi);
status = 7;
break;
}
if (![iw isEqualToString:w])
{
NSLog(@"Mismatch '%@' vs '%@' at index %u",w,iw,wi);
status = 8;
break;
}
}
}
Вероятностное Unit-тестирование. (Chaos driven Unit Testing.)