Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture12.doc
Скачиваний:
9
Добавлен:
27.11.2019
Размер:
72.7 Кб
Скачать

Методы оценки и измерения характеристик надежности программ

Внутренняя характеристика – число оставшихся ошибок – абсолютное или относительное. Считается, что в хорошо отлаженной программе - не более одной ошибки на 1 тысячу строк исходного кода. Для ответственных применений требуется то же на 10 тыс. строк и больше. Например, для СОИ этот показатель был задан как не более 2,5 ошибок на 105 операторов языка Ада.

Как проверить соответствие ПП таким требованиям ?

Метод Миллса (IBM, 1972) использует прием биологов - метод «меченых рыб». Группа тестирования засоряет программу искусственно ошибками и, продолжая тестирование, анализирует долю внесенных ошибок среди обнаруженных.

1) Пусть внесено s ошибок, обнаружено n собственных и v внесенных ошибок. Предполагая, что вероятность обнаружения внесенных и собственных ошибок одинакова, получим первоначальное количество оставшихся ошибок N = s * n / v

2) Проверка гипотезы: осталось < k собственных ошибок. Вносится еще s ошибок и тестирование продолжается, пока все они не обнаружены. Пусть к этому моменту найдено n собственных. Тогда уровень значимости гипотезы (т.е., вероятность того, что она истинна), = 1 при n > k и s / (s + k +1) при n  k.

(Вопросы 7, 8).

В методе Руднера (1977) тестирование осуществляется двумя независимыми группами тестеров параллельно, которые обнаруживают m1 и m2 ошибок соответственно, из которых m1,2 ошибок - общие. Используя гипергеометрическое распределение, по методу максимального правдоподобия может быть найдена оценка числа первоначально содержавшихся в программе ошибок N = m1 * m2 / m1,2 .

Фирма Моторола использует в качестве меры надежности своих ПП (управляющих программ реального времени) среднее число ошибок на 1000 строк исходного кода. Она разработала метод оценки времени тестирования без отказов (zero-failure method), подтверждающего заданную надежность. Метод основан на некоторой, принятой фирмой Моторола, зависимости T = f (N, n, t), где:

T – время окончательного тестирования – испытаний без отказов

N – допустимое число ошибок в коде

n – общее число ошибок, обнаруженных в ходе тестирования

t – время, потраченное на выявление всех n ошибок

Если за время T ни одного отказа не произошло, считается, что в программе не более N ошибок и тестирование можно закончить. Если же отказ произошел через промежуток времени tr < T, то испытание продолжается, причем функция T пересчитывается заново для n+1 и t+ tr.

Как получена функция Т ? – из одной из моделей надежности программ на основе оценок функции  ( t ) – внешней характеристики надежности. Эти оценки обычно экстраполируют динамику отладки, отраженную в базе данных отчетов об ошибках. Например, модель Джелинского – Моранды (1972), использовавшаяся в ряде ответственных проектов, в том числе Apollo NASA (пилотируемый полет на Луну). Она основана на следующих допущениях:

  1. Интенсивность обнаружения ошибок R( t ) пропорциональна текущему числу ошибок в программе, т.е. числу исходных ошибок минус обнаруженные.(Вопрос 9).

  2. Все ошибки равновероятны и их проявление не зависит друг от друга.

  3. Ошибки постоянно исправляются без внесения новых.

  4. R( t ) постоянна в промежутке между двумя смежными моментами обнаружения t i и t i+1.

Тогда R( t ) – ступенчатая монотонно убывающая функция вида:

R( t )

t

t0 t1 t2 t3 t4 t5

5. Предполагается, что динамика проявления ошибок во время эксплуатации остается такой же, как при тестировании, т.е. постулируется тождество функций R( t ) и  ( t ) с тем отличием, что значение  ( t ) "замораживается" в момент завершения тестирования - прекращается исправление ошибок.

(Вопрос 10).

Е

поскольку dN(t) / dt = R(t) (число ошибок, обнаруженных в единицу времени), получаем дифференциальное уравнение с нач. условиями:

сли N – число ошибок, обнаруженных к моменту времени t, то до следующего обнаружения справедливо R( t ) = K * (B – N), где В – неизвестное число исходных ошибок, K – неизвестный коэффициент пропорциональности. Полагая X i = t i+1 - t i ( i = 0,..., n-1 ), можно утверждать, что X i имеют экспоненциальное распределение: P (X i) = exp ( - K * ( B - i) * X i ). Имея набор Xi из базы данных ошибок, можно решать задачу нахождения значений K и B, отвечающих принципу максимального правдоподобия. Несколько проще решение для модифицированной модели, где снято допущение 4, и функция R( t ) перестает быть кусочно-постоянной: R( t ) = K ( B - N ( t ) ). Дифференцируя:

Его решение: R(t) = KB e -K t. Обозначая a = ln (KB), b = - K, получаем запись решения в виде: R (t) = exp (a + bt). Логарифмируя обе части этого равенства и переходя к дискретному времени ti,, получим систему из n уравнений:

ln R(ti) = a + bti; i = 1, ...,n

Решая эту систему относительно двух неизвестных a и b методом наименьших квадратов, можно найти оценки величин K и B в соответствии с критерием максимального правдоподобия. Этот метод был применен для ряда конкретных проектов IBM и показал хорошее соответствие реальности.

Литература

Майерс. Надежность программного обеспечения. М., Мир, 1985.

Соседние файлы в предмете Информатика