Статистическая модель Миллса
Модель Миллса — способ оценки количества ошибок в программном коде, созданный в 1972 году программистом Харланом МиллсомШаблон:Sfn. Он получил широкое распространение благодаря своей простоте и интуитивной привлекательностиШаблон:Sfn.
Методология
Допустим, имеется программный код, в котором присутствует заранее неизвестное количество ошибок (багов) , требующее максимально точной оценки. Для получения этой величины можно внести в программный код дополнительных ошибок, о наличии которых ничего не известно специалистам по тестированиюШаблон:SfnШаблон:Sfn.
Предположим, что после проведения тестирования было обнаружено естественных ошибок (где ) и искусственных (где ). Тогда, полное количество оставшихся ошибок можно оценить предположив, что вероятности обнаружить естественную и искусственную ошибку одинаковы и зависят только от их полного количества. Тогда процент естественных и внесённых ошибок должен быть одинаков и выполняется следующее соотношение Шаблон:SfnШаблон:Sfn.
Из которого следует, что оценка полного количества естественных ошибок в коде равна , а количество всё ещё не выловленных багов кода равно разности Шаблон:SfnШаблон:Sfn. Сам Миллс полагал, что процесс тестирования необходимо сопровождать постоянным обновлением графиков для оценки количества ошибокШаблон:Sfn.
Очевидно, что такой подход не лишён недостатков. Например, если найдено 100% искусственных ошибок, то значит и естественных ошибок было найдено около 100%. Причём, чем меньше было внесено искусственных ошибок, тем больше вероятность того, что все они будут обнаружены. Из чего следует заведомо абсурдное следствие: если была внесена всего одна ошибка, которая была обнаружена при тестировании, значит ошибок в коде больше нетШаблон:Sfn.
В целях количественной оценки доверия модели был введён следующий эмпирический критерий:
Уровень значимости оценивает вероятность, с которой модель будет правильно отклонять ложное предположениеШаблон:SfnШаблон:Sfn. Выражение для было сконструировано МиллсомШаблон:Sfn, но в силу своей эмпирической природы при необходимости оно допускает некоторую вариативность в разумных пределахШаблон:Sfn.
Исходя из формулы для можно получить оценку количества искусственно вносимых багов для достижения нужной меры доверия . Это количество даётся выражением вида Шаблон:Sfn.
Слабостью подхода Миллса является необходимость вести тестирование продукта до обнаружения абсолютно всех искусственно введённых багов, однако существуют обобщения этой модели, где это ограничение снятоШаблон:Sfn. Например, если порог на допустимое количество из обнаруженных внесённых ошибок равен величине (), то критерий перезаписывается следующим образом: