Использование этой модели предполагает необходимость перед началом тестирования искусственно вносить в программу («засорять») некоторое количество известных ошибок [3]. Ошибки вносятся случайным образом и фиксируются в протоколе искусственных ошибок. Специалист, проводящий тестирование, не знает ни количества, ни характера внесенных ошибок до момента оценки показателей надежности по модели Миллса. Предполагается, что все ошибки (как естественные, так и искусственно внесенные) имеют равную вероятность быть найденными в процессе тестирования.
Тестируя программу в течение некоторого времени и отсортировывая собственные и внесенные ошибки, можно оценить первоначальное число cобственных ошибок S в программе.
Предположим, что в программу было внесено V ошибок, после чего разрешено начать тестирование.
Пусть при тестировании обнаружено:
oS - из числа собственных ошибок программы,
oV- из числа внесенных ошибок в программу.
Тогда в среднем справедливо равенство (см. рис.)
|
|
.
Рис. Ошибки в программе
Следовательно, оценка для S будет такой:
Например, если в программу внесено 20 ошибок (V=20) и к некоторому моменту тестирования было обнаружено 15 собственных (oS=15) и 5 внесенных ошибок (oV=5), значение S можно оценить в 60.
Вторая часть модели связана с выдвижением и проверкой гипотез об S.
Будем утверждать, что в программе имеется не более k собсвенных ошибок. Для проверки этой гипотезы внесем в программу еще V ошибок. Протестируем программу до тех пор, пока не будут обнаружены все внесенные ошибки, причем в этот момент подсчитывается число обнаруженных собственных ошибок oS.
Уровень значимости определяется по следующей формуле:
Если число обнаруженных собственных ошибок оказалось больше числа предполагаемых то С=1, т. е. гипотеза не верна.
Если число обнаруженных собственных ошибок оказалось меньше или равно числа предполагаемых ошибок то
Чем больше число предполагаемых ошибок по сравнению с числом внесенных ошибок тем степень доверия к выдвинутой гипотезе меньше.
Например, если мы утверждаем, что в программе нет ошибок (К=0), и, внеся в программу четыре ошибки (V=4), все их обнаруживаем, не встретив ни одной собственной ошибки (oS=0), то С=0.8. Чтобы достичь уровня С=0,95, нам надо было бы внести в программу 19 ошибок.