Связь между случайным тестированием и нечетким тестированием
Мне интересно, какова связь между случайным и нечетким тестированием. Я понимаю, что случайное тестирование было там в течение более длительного времени, но я не вижу никаких различий между ними. Кажется, что они оба используют случайный ввод, чтобы увидеть, не переходит ли программа в непредвиденное состояние (например, сбой). Разница в том, что нечеткое тестирование автоматизировано?
1 ответ
Случайное (проверенное) тестирование не предполагает сбой системы. Вы можете рандомизировать действительные значения. Цели могут состоять в том, чтобы увеличить охват или узнать новую / неожиданную информацию о системе (возможно, ошибки, но это может быть просто неизвестное поведение).
Fuzz (y) тестирование - это отправка полного мусора (например, случайных байтов вместо HTTP-запроса) в систему и проверка того, сможет ли он справиться с этим корректно (не сбой или зависание). Данные не обязательно случайны - это просто бессмысленно для программного обеспечения.