logo
Разработка и стандартизация ПС и ИТ

21. Эмпирические модели надежности по. Определение оптимальной продолжительности тестирования.

Эмпирические модели основаны на анализе накопленной информации о функционировании ранее разработанных программ.

Наиболее простая эмпирическая модель связывает число ошибок в ПО с объемом ПО. Опытные данные свидетельствуют, что к началу системного тестирования в ПО на каждые 1000 операторов приходится примерно 10 ошибок. Уровень надежности ПО считается приемлемым для начала эксплуатации, если тому же объему операторов будет соответствовать одна ошибка.

Фирма IBM использует эмпирическую модель, которая оценивает число ошибок в различных редакциях операционной системы:

,

где M10- число модулей, потребовавших 10 и более исправлений;

M1 - число модулей, в которых обнаружено меньше 10 ошибок.

Применяется также эмпирическая формула для оценки средней наработки ПО:

где τ - средняя наработка ПО в часах;

Voп - объем программы в операторах;

N - число ошибок в ПО, оцененное по одной из приведенных выше моделей;

α - коэффициент, лежащий в диапазоне от 100 до 1000.

Определение оптимальной продолжительности тестирования

На практике модели надежности ПО могут применятся для оценки соответствия ПО системным требованиям, оценки надежности ПО заказчиком и т.д. Наиболее распространенная сфера применения моделей - определение оптимальной продолжительности тестирования.

Пусть С1 - полная стоимость тестирования (сюда входят стоимость обнаружения и устранения ошибок и стоимость выполнения тестовых прогонов), С2 - стоимость устранения ошибок, возникающих на этапе сопровождения. Тогда суммарная стоимость равна С = С1+ С2.

Пусть каждая ошибка ПО может проявится (привести к программному отказу) с интенсивностью λ. Тогда за время t она проявится с вероятностью . Следовательно, среднее за период t количество отказов равно , где N - первоначальное число ошибок.

Стоимости С1 и С2 можно выразить следующим образом :

где k1 - стоимость обнаружения и устранения одной ошибки на этапе тестирования ПО,

k2 - стоимость обнаружения и устранения ошибки на этапе сопровождения ПО,

k3 - стоимость тестирования ПО в единицу времени,

Т0 - длительность жизненного цикла ПО,

Т - суммарное время тестирования.

Обычно k2 > k1. Тогда суммарная стоимость равна

Выберем время тестирования так, чтобы минимизировать суммарную стоимость С. Для этого нужно найти минимум функции

Возьмем производную функции g(Т):. Оптимальное значение Т* зависит от соотношения величин N и S.

Если N S, то g`(T) 0 для всех T, т.е. g(T) возрастает, и следовательно, T*=0. В этом случае тестирование проводить нецелесообразно.

Если N>S, то g(T) достигает минимума при . Так как время тестирования не может превышать длительность жизненного цикла Т0, то Т*= min(Т0, Tl).