Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Статистическая модель Миллса




 

Модель совершенно другого типа разработал Миллс [13]. В ней не используется никаких предположений о поведении интенсивности отказов λ(t), эта модель строится на твердом статистическом фунда­менте. Сначала программа «засоряется» некоторым количеством известных ошибок. Эти ошибки вносятся в программу случайным образом, а затем делается пред­положение, что для исходных и внесенных в программу ошибок вероят­ность обнаружения при последующем тестировании одинакова и зависит только от их количества. Тести­руя программу в течение некоторого вре­мени и сравнивая количество обнаруженных исходных и внесенных в про­грамму ошибок, можно оценить N – первона­чальное число ошибок в про­грамме.

Предположим, что в программу было внесено s ошибок, после чего решено начать тестирование. Пусть при тестировании об­наружено n+v ошибок, причем п – число найденных исходных ошибок, a v – число най­денных внесенных ошибок. Тогда оценка для N по методу максимального правдоподобия будет следующей:

 

(3.4)

 

Например, если в программу внесено 20 ошибок и к некоторому мо­менту тестирования обнаружено 15 исходных и 5 внесенных ошибок, зна­чение N можно оценить в 60. В действительности N можно оценивать по­сле обнаружения каждой ошибки; Миллс [13] предлагает во время всего периода тестирования отмечать на гра­фике число найденных ошибок и те­кущие оценки для N.

Вторая часть модели связана с выдвижением и проверкой ги­потез об N. Примем, что в программе имеется не более k исходных ошибок, и вне­сем в нее еще s ошибок. Теперь программа тести­руется, пока не будут об­наружены все внесенные ошибки, причем в этот момент подсчитывается число обнаруженных исходных ошибок (обозначим его п).Уровень значи­мости С вычисляется по следующей формуле:

 

(3.5)

 

Величина С является мерой доверия к модели; это вероятность того, что число исходных ошибок будет не больше k. Например, если мы утвер­ждаем, что в программе нет ошибок (k = 0), и, внеся в программу 4 ошибки, все их обнаруживаем, не встретив ни одной исходной ошибки, то С = 0,80. Чтобы достичь уровня 95 %, нам надо было бы внести в про­грамму 19 ошибок. Если мы утверждаем, что в программе не более трех исходных ошибок, и, внеся шесть ошибок, обнаруживаем их все и не более трех ис­ходных, уровень значимости равен 60 %. Формула для С имеет под собой прочные статистические основания; выведена она Миллсом [13].

Эти две формулы для N и С образуют полезную модель ошибок; первая предсказывает число ошибок, а вторая может использо­ваться для установления доверительного уровня прогноза. Сла­бость этой формулы в том, что С нельзя предсказать до тех пор, пока не будут обнаружены все внесенные ошибки (а это, конечно, может не произойти до самого конца этапа тестирования). Чтобы справиться с этой трудностью, можно моди­фицировать формулу для С так, чтобы С можно было оценить после того, как найдено j внесенных ошибок (j £ s)[14]:

 

(3.6)

 

В предыдущем примере, где k = 3, a s = 6, если найдены 5 из 6 вне­сен­ных ошибок, С опускается с 60 до 33 %. Еще один график, ко­торый по­лезно строить во время тестирования, – текущее значение верхней границы k для некоторого фиксированного доверительного уровня, например 90 %.

Модель Миллса одновременно математически проста и интуитивно понятна. Легко представить себе программу внесения ошибок, которая случайным образом выбирает модуль, вносит логическую ошибку, изменяя или убирая операторы, и затем заново его компилирует. Природа внесен­ной ошибки должна сохраняться в тайне, но все их следует регистриро­вать, чтобы впоследствии можно было разделять ошибки на исходные и внесенные.

Процесс внесения ошибок в настоящее время является самым сла­бым местом модели, поскольку предполагается, что для исходных и вне­сенных ошибок вероятность обнаружения одинакова (но неизвестна). Из этого следует, что внесенные ошибки должны быть «типичными» образ­цами ошибок, но мы еще недостаточно хо­рошо понимаем программирова­ние, чтобы сказать, какими именно должны быть типичные ошибки. Од­нако по сравнению с пробле­мами, стоящими перед другими моделями на­дежности, эта проблема кажется относительно несложной и вполне разре­шимой.

Наконец, отметим еще одно достоинство внесения ошибок: оно мо­жет оказывать положительное психологическое влияние на группу тести­рования. У программистов возникают затрудне­ния при отладке своих про­грамм, например, потому, что они склон­ны считать каждую обнаруженную ошибку последней. Внесение ошибок может помочь в этом деле, по­скольку теперь программист знает, что в его программе есть еще не обна­руженные ошибки.

 





Поделиться с друзьями:


Дата добавления: 2015-05-08; Мы поможем в написании ваших работ!; просмотров: 1982 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Человек, которым вам суждено стать – это только тот человек, которым вы сами решите стать. © Ральф Уолдо Эмерсон
==> читать все изречения...

2685 - | 2522 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.