Пусть в процессе тестирования обнаружено n исходных ошибок и v из S рассеянных ошибок. Тогда оценка N - первоначальное число ошибок в программе - составит
. (16)
Вторая часть модели связана с проверкой гипотезы выражения и тестирования N.
Рассмотрим случай, когда программа содержит К собственных ошибок и S рассеянных ошибок. Будем тестировать программу до тех пор, пока не обнаружим все рассеянные ошибки. В то же время количество обнаруженных исходных ошибок накапливается и запоминается. Далее вычисляется оценка надежности модели:
(17)
как вероятность того, что в программе содержится K ошибок.
Величина С является мерой доверия к модели и показывает вероятность того, насколько правильно найдено значение N. Эти два связанных между собой по смыслу соотношения образуют полезную модель ошибок: первое предсказывает возможное число первоначально имевшихся в программе ошибок, а второе используется для установления доверительного уровня прогноза.
Формула для расчета С в случае, когда обнаружены не все искусственно рассеянные ошибки, модифицирована таким образом, что оценка может быть выполнена после обнаружения v (v£S) рассеянных ошибок:
(18)
где числитель и знаменатель формулы при n £ К являются биноминальными коэффициентами.
Пример 3.
Предположим, что в программе имеется 3 собственных ошибки. Внесём ещё 6 ошибок случайным образом. В процессе тестирования было найдено:
1) 6 ошибок из рассеянных и 2 собственных;
2) 5 ошибок из рассеянных и 2 собственных;
3) 5 ошибок из рассеянных и 4 собственных.
Найти надёжность по модели Миллса - С.
K=3, S=6.
1) n=2, v=6, C=(6!/(6-1)!)/((6+3+1)!/(3+6)!)=0,6.
2) n=2, v=5, C=(6!/(5-1)!)/((6+3+1)!/(3+5)!)=0,333333, 2!=2, 4!=24, 6!=720, 8!=40320, 10!=3628800.
3) n=4, v=5, C=1 (по формуле (18)).