Подбор параметров S-образной модели роста надежности программного обеспечения на основе статистики об отказах в прошлых релизах

УДК 004.052

ПОДБОР ПАРАМЕТРОВ S-ОБРАЗНОЙ МОДЕЛИ РОСТА НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОСНОВЕ СТАТИСТИКИ ОБ ОТКАЗАХ В ПРОШЛЫХ РЕЛИЗАХ

В.А. Герасимов

Данная статья посвящена проблеме подбора параметров при моделировании надежности программного обеспечения. В статье рассматривается процесс подбора параметров S-образной модели роста надежности ПО на основе данных об отказах в предыдущих релизах, проводится сравнение точности модели при разных способах подбора параметров. В качестве базовой модели, описанной в данной статье, используется модель Goel-Okumoto. Данная модель строится на основе данных об отказах в программе за определенный промежуток времени. Для того, чтобы получить адекватные оценки при помощи данной модели требуется определенное количество данных об отказах, которые недоступны до тех пор, пока система не была протестирована в течение достаточно долгого периода времени. В качестве экспериментальных данных используются статистические данные, собранные в течение трех последовательных релизов программного продукта промышленного масштаба. Оценка параметров модели была выполнена при помощи функции максимального правдоподобия.

Ключевые слова: надежность программного обеспечения, моделирование надежности программного обеспечения, S-образные модели роста надежности ПО, модель Goel-Okumoto.

Введение

Для оценки надежности программного обеспечения на практике на этапе тестирования используются различные модели надежности [1, 2]. Однако, для того, чтобы получить адекватные оценки требуется определенное количество данных об отказах, которые недоступны до тех пор, пока система не была протестирована в течение достаточно долгого периода времени [3]. Это не всегда возможно, в связи с чем возникает необходимость найти решение, позволяющее обойти данное ограничение при моделировании. Так, например, в работе Вохлина [3] на примере модели роста надежности Goel-Okumoto [4] выдвигается гипотеза о возможности использования значения частоты обнаружения дефектов (fault detection rate), рассчитанной в ходе предыдущего релиза программного продукта. Для того, чтобы это было возможно, предполагается, что процесс тестирования стабилен: условия, методы и инструменты тестирования неизменны. В статье Вохлина рассматривается только один класс моделей роста надежности: выпуклые модели.

В данной статье делается попытка подтвердить гипотезу, изложенную в [3], но для S-образной модели роста надежности Goel-Okumoto [5]. Для подтверждения гипотезы были использованы статистические данные об обнаруженных в процессе тестирования дефектах, собранные на протяжении трех релизов одного и того же программного продукта промышленного масштаба.

1. Характеристика релизов

В таблицах 1, 2 и 3 представлены данные об обнаруженных дефектах в каждом из релизов.

Таблица 1

Статистика найденных дефектов

Номер дня 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Число дефектов 0 0 2 1 1 1 2 1 1 0 1 3 1 1 2

Номер дня 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Число дефектов 2 0 5 2 1 1 0 1 5 1 2 0 5 0 3

Номер дня 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

Число дефектов 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0

Номер дня 46 47 48 49 50 51 52 53 54 55 56

Число дефектов 0 0 0 0 0 0 3 0 0 0 0

Таблица 2

Статистика найденных дефектов

Номер дня 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Число дефектов 3 1 6 21 4 12 13 11 12 6 11 12 3 11 19

Номер дня 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Число дефектов 21 16 13 4 17 13 16 5 14 11 9 2 5 4 3

Номер дня 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

Число дефектов 4 2 3 2 1 4 3 3 0 0 0 0 0 1 1

Номер дня 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

Число дефектов 1 0 0 2 1 0 4 1 2 2 0 3 0 0 0

Номер дня 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75

Число дефектов 1 2 1 1 0 1 0 3 4 1 0 0 0 0 1

Таблица 3

Статистика найденных дефектов

Номер дня 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Число дефектов 8 5 6 1 3 1 2 4 3 7 5 3 6 4 6

Номер дня 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Число дефектов 9 5 2 6 4 5 8 6 2 5 5 3 3 3 1

Номер дня 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

Число дефектов 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0

Номер дня 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

Число дефектов 2 0 0 0 0 2 0 0 0 0 0 1 0 2 1

Номер дня 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75

Число дефектов 2 1 1 0 0 0 1 0 0 0 0 0 0 3 0

2. Описание модели

В качестве модели надежности программного обеспечения предлагается рассмотреть S-образную модель роста надежности Goel-Okumoto [5]. Именно эта модель использовалась при моделировании надежности данного программного продукта. Данная модель представляет собой модель негомогенного процесса Пуассона со следующей функцией среднего значения:

^(t) = а(1 — (1 + bt)e-bt), где a - это ожидаемое число дефектов в программе, b - частота обнаружения дефектов, характеризующая скорость роста надежности в процессе тестирования. Функция интенсивности отказов (failure intensity function) для данной модели имеет следующий вид:

Л (t) = abe-bt(a + b2 — t).

3. Оценка параметров модели

Оценка параметров модели может быть сделана с помощью метода максимального правдоподобия, на основе количества обнаруженных дефектов на интервале. Допустим, что интервал, на котором были обнаружены дефекты, разбит на подинтервалы (0; ¿1], (¿1; ¿г],---, (¿»^¿к ] , иг(г = 1, 2,...,к) - число дефектов на интервале (¿г-1,-*г]. В этом случае функция максимального правдоподобия будет иметь вид:

Ь

. иг-

г=1

Возьмем натуральный логарифм от обеих частей уравнения (1):

1п

. иг*

г=1

к

1п

г=1

Производные логарифма функции максимального правдоподобия по параметрам а и Ь будут иметь следующий вид:

= ^к=1 (и - е-“‘-‘(1 + ь*г-1) + е"“‘С1 + Ыг)) = 0,

Э1п

дЬ ¿^г=1 е-&‘,-1

Решение системы уравнений (4) имеет следующий вид:

Ек ^

_ г=1 иг

1 - е-6‘к (1 + ык) ’

у» "-г^-11“- е-М'-1 “2-1>________________Е!=1 иг______( И, Ь(2_ Ь(2 )=0

¿-г=1 е-6‘,-1 (1 + Ь*г-1) - е-6‘, (1 + Ь*г) 1 - е-6‘* (1 + Ы»)( г г-1) '

Система уравнений (4) нелинейная и решение может быть найдено только численными методами. Рассчитаем параметры модели надежности для каждого из релизов на основе системы уравнений (4). Результаты вычислений, представлены в таблице 4.

Таблица 4

Оценка параметров модели

Номер релиза a b

1 53,10 0,0898

2 353,93 0,1088

3 150,20 0,1202

Построим и сравним модели надежности для релиза 2. Для первой модели используем параметр b = bi, т.е. значение, вычисленное на основе данных о предыдущем релизе. Для второй модели используем параметр b = b2, т.е. значение, вычисленное на конец релиза 2. Аналогичным образом построим и сравним модели надежности для релиза 3. Результаты приведены на рисунке 2.

Для оценки точности полученных моделей вычислим следнеабсолютную процентную ошибку (mean value percentage error) [7]:

1

t=i

At- Ft

At

• 100%

где А - это реальное значение, ^ - значение прогноза. При значении М < 10% принято говорить о высокой точности прогнозов, при 10% < М < 20% - хорошей.

В результате вычислений получены следующие значения, представленные в таблице 5.

Таблица 5

Среднеабсолютная процентная ошибка

Номер релиза -о M

1 8% - -

2 8% 7% -

3 11% 9% 12%

Полученные результаты позволяют говорить о том, что использование параметра Ь, рассчитанного в ходе предыдущих релизов, не оказывает существенного влияния на точность прогнозов с позиции среднеабсолютной процентной ошибки. Визуально использование параметра Ь, рассчитанного на основе данных предыдущего релиза, также выглядит допустимым (см. рисунок 1 и 2).

Заключение

На основе приведенных в данной статье результатов можно сделать вывод о том, что гипотеза о возможности применения информации с предыдущих релизов, приведенная в [3], верна и для Я-образной модели Сое1-Окишо1;о. Полученные результаты показывают, что использование параметра Ь, рассчитанного в ходе предыдущего релиза, при моделировании надежности текущего релиза не оказывает существенного влияния на точность модели. Тем не менее, открытым остается вопрос оценки числа дефектов. Существующие на сегодняшний день методы оценки числа дефектов не являются достаточно точными [6], и обычно с этой целью используются различные метрики. Использование данных предыдущих релизов при оценке числа дефектов может быть направлением дальнейших исследований.

Рис. 1. Модель роста надежности для релиза 2

160

13 5 7 9 111315171921232527293133353739414345474951535557596163656769717375

| | Кол-во найденных дефектов Модель b = ЬЗ

~ — Модель b = Ь2 “ * Модель I: = 1:1

Рис. 2. Модель роста надежности для релиза 3

Литература

1. Musa, J. D. Software reliability measurement, prediction, application / J. D. Musa, A. Iannino, K. Okumoto. - N.Y. : McGraw-Hill Book Company, 1987. - 621 p.

2. Lyu, M. Handbook of software reliability engineering / M. Lyu. - N.Y. : McGraw-Hill Book Company, 1996.

3. Xie, M. Software reliability prediction incorporating information from a similar project / M. Xie, G.Y. Hong, C. Wohlin // J. of Software and Systems. - 1999. - V. 49, №. 1. -P. 43-48.

4. Goel, A.L. A Time Dependent Error Detection Model for Software Reliability and Other Performance Measures / A.L. Goel, K. Okumoto // IEEE Trans. Reliability. - 1979. - V. R-28. - P. 206-211.

5. Wood, A. Software Reliability Growth Models [электронный ресурс] / Технический отчет

- Режим доступа : http://www.hpl.hp.com/techreports/tandem/TR-96.1.pdf, свободный.

- Яз. анг.

6. Morgan, J.A. Residual fault density prediction using regression methods / J.A. Morgan, G.J. Knafl // Proc. of the 7th Int. Symp. on Software Reliabilty Engineering. - N.Y.: IEEE Computer Press, 1996. - P. 87-92.

7. Wikipedia: The Free Encyclopedia [электронный ресурс] / Mean Absolute Percentage Error

- Режим доступа : http://en.wikipedia.org/wiki/Mean_absolute_percentage_error, свободный. - Загл. с экрана. - Яз. анг.

Владимир Александрович Герасимов, аспирант, кафедра «Прикладная математика и фундаментальная информатика>, Омский государственный технический университет; Software Development Engineer in Test, корпорация Microsoft, Redmond, USA, v.a.gerasimov@gmail.com.

MSC 68N30

Estimation of Parameters for S-shaped Software Reliability Growth Models According to Data Collected During Previous Releases

V.A. Gerasimov, Omsk State Technical University

This article is devoted to the selection of parameters for modeling software reliability. This article discusses the process of selecting the parameters S-shaped growth model of software reliability based on data on failures in previous releases, compares the accuracy of the model at different ways of selection parameters. Goel-Okumoto model is used as the base model. This model is based on data about failures in the program’s over a certain period of time. In order to obtain appropriate estimates using this model requires a certain amount of failure data, which are not available until the system has not been tested for a long enough period of time. As the experimental data using statistical data collected for three consecutive releases of the software industry scale. Evaluation of model parameters was performed by using the maximum likelihood function.

Keywords: software reliability, software reliability growth models, Goel-Okumoto S-shaped model.

References

1. Musa J.D., Iannino A., Okumoto K. Software Reliability Measurement, Prediction, Application. New York, McGraw-Hill Book Company, 1987. 621 p.

2. Lyu M. Handbook of Software Reliability Engineering. New York, McGraw-Hill Book Company, 1996

3. Xie M., Hong G.Y., Wohlin C. Software Reliability Prediction Incorporating Information from a Similar Project. Journal of Software and Systems, 1999, vol. 49,no. 1, pp. 43-48.

4. Goel A.L., Okumoto K. A Time Dependent Error Detection Model for Software Reliability and Other Performance Measures. IEEE Trans. Reliability, 1979,vol. R-28, pp. 206-211.

5. Wood A. Software Reliability Growth Models.

Avialable at: http://www.hpLhp.com/techreports/tandem/TR-96d.pdf.

6. Morgan J.A., Knafl G.J. Residual Fault Density Prediction Using Regression Methods. Proc. of the 7th Int. Symp. on Software Reliabilty Engineering. New York, IEEE Computer Press, 1996, pp. 87-92.

7. Wikipedia: The Free Encyclopedia / Mean Absolute Percentage Error. Avialable at:

http://en.wikipedia.org/wiki/Mean_absolute_percentage_error.

Поступила в редакцию 9 апреля 2012 г.