236.85K
Category: softwaresoftware

Модели, оценки надежности (практика)

1.

модели
оценки
надежности
(практика)

2.

Л2
е
к
ц
и
я
#
2
Методы оценки надежности ПО
Динамические методы – используют результаты выполнения
программы
Статические методы – основаны на анализе различных
артефактов процесса проектирования
Архитектурные методы – основаны на анализе архитектуры
системы и могут использовать как динамические так и
статические подходы
Эмпирические методы – используют информацию о процессе
проектирования

3.

Классификация
моделей надежности ПС (МНПС)
С целью управления надежностью возникает необходимость ее
измерения, оценки и прогнозирования. Основным средством
оценки и прогнозирования надежности являются модели
надежности.
Модель надежности ПО (МНПО) – математическая модель,
построенная для оценки зависимости надежности ПС от заранее
известных или оцененных в ходе тестирования параметров.
МНПО
аналитические
эмпирические
показатель надежности
определяется на
основании данных
о поведении программы
в процессе тестирования
существует возможность
предсказывать показатели
надежности на основе
данных о метрических
свойствах программы
3

4.

Общая схема классификации МНПС
МНПС
Эмпирические
Аналитические
Модель сложности
Динамические
Статические
По области
ошибок
Дискретные
Непрерывные
Модель Шумана
Модель
Джелинского-Моранды
Модель Миллса
Модифицированная
модель Шумана
Модель Муса
Модель Липова
Модель La Padula
Модель
переходных
вероятностей
Простая
интуитивная
модель
Модель
Гоэл-Окимото
Модель
Коркорэна
Модель
Шика-Волвертона
Модель, определяющая
время доводки программы
По области
данных
Модель Нельсона
4

5.

Аналитические модели
надежности ПО
Статические
модели (СМ)
Появление отказов не связано
со временем.
СМ по области ошибок –
учитывается связь количества
ошибок и числа тестовых
прогонов.
СМ по области данных –
учитывается связь количества
ошибок с характеристиками
входных данных ПС.
Динамические
модели (ДМ)
Поведение отказов зависит от
времени.
Для
использования
ДМ
необходимо иметь данные о
появлении отказов по времени.
В ДМ с непрерывным временем
(ДНМ) фиксируются интервалы
каждого отказа, т.е. получается
непрерывная картина появления
отказов по времени.
В ДМ с дискретным временем
(ДДМ)
фиксируются
число
отказов за некоторое время и
поведение
программы
представлено
в
дискретных
точках.
5

6.

СМ: модель Миллса
Модель Миллса – модель, оценивающая остаточное число ошибок в программе.
Состоит из 2 этапов:
1)
определение N, т.е. количества оставшихся ошибок
2)
проверка гипотезы об N
Условно предположим, что в программе имеется не более k собственных ошибок. Искусственно вносим
S ошибок. Программа тестируется, пока не будут обнаружены все (или почти все) внесенные
ошибки, одновременно фиксируется количество обнаруженных собственных ошибок n.
N
S n
V
(1) , где V – количество обнаруженных искусственных ошибок
при n k
1,
C S
, при n k
S k 1
(2) , где C – уровень значимости модели, так называемая «мера доверия»
По формуле (1) предсказывается возможное число оставшихся в программе ошибок. Формула (2)
служит для установления доверительного уровня прогноза.
Если не все S найдены, то C рассчитывается по формуле (3):
при n k
1,
C
S k 1 !
S!
j 1 ! S j 1 ! k j ! S 1 j ! , при n k
(3)
j – число ошибок, найденных при тестировании, принадлежащих подмножеству S j S
6

7.

Модель Миллса (задача 1)
Условие: Предположительно, перед началом тестирования в
программе было 4 ошибки, искусственно было внесено
ещё 20. В процессе тестирования выявили 20
внесённых и 2 собственные ошибки. Оценить
надёжность программы.
Дано:
k=4;
n=2;
S=20;
V=20;
Найти:
N-?
C-?
Решение.
N
C
S n
20 2
2
V
20
S
20
0 .8
S k 1 20 4 1
Ответ: с вероятностью 80% можно утверждать,
что в программе осталось 2 ошибки.
7

8.

Модель Миллса
(задача 1)
Условие: Предположительно, перед началом тестирования в
программе было 4 ошибки, искусственно было внесено
ещё 20. В процессе тестирования выявили 20
внесённых и 2 собственные ошибки. Оценить
надёжность программы.
Дано:
k=4;
n=2;
S=20;
V=20;
Найти:
N-?
C-?
8

9.

Модель Миллса (задача 2)
Условие: Предположительно, перед началом тестирования в
программе было 3 ошибки. Искусственно было внесено
ещё 6. В процессе тестирования выявили 5 внесённых
и 2 собственные ошибки. Оценить надёжность
программы.
Дано:
k=3;
n=2;
S=6;
V=j=5;
Найти:
N-?
C-?
Решение.
N
S n 6 2
2.4
V
5
S k 1 !
S!
j 1 ! S j 1 ! k j ! S 1 j !
6! 8!2!
0.33
4!2! 10!
C
Ответ: с вероятностью 33% можно утверждать,
что в программе остались от 2 до 3
ошибок.
9

10.

Модель Миллса (задача 3)
Условие: Предположительно, перед началом тестирования в программе было 100
ошибок.
Искусственно было внесено ещё 20. В процессе каждого
испытания было выявлено определённое количество ошибок (см. табл.)
Оценить количество оставшихся ошибок в программе после каждого
прогона, а также меру доверия после последнего прогона.
Дано:
k=100;
S=20;
n
25
20
20
15
10
9
1
V
5
4
2
4
2
2
1
Найти:
N-?
C-?
10

11.

Модель Миллса (задача 3)
Условие: Предположительно, перед началом тестирования в программе было 100
ошибок.
Искусственно было внесено ещё 20. В процессе каждого
испытания было выявлено определённое количество ошибок (см. табл.)
Оценить количество оставшихся ошибок в программе после каждого
прогона, а также меру доверия после последнего прогона.
Решение.
Дано:
k=100;
S=20;
n 25 20 20 15 10 9
1
V 5
1
4
2
4
S n 20 25
100
V
5
20 20
N3
36
11
20 10
N5
11
17
20 1
N7
1
20
S
20
C
0.15
S k 1 20 100 1
N1
2
Найти:
N-?
C-?
2
20 20
44
5 4
20 15
N4
20
15
20 9
N6
9
19
N2
11

12.

Модель Миллса (решение задач)
Предположим, что в программе имеется 3
собственных ошибки. Внесём ещё 6 ошибок
случайным образом.
В процессе тестирования было найдено:
1) 6 ошибок из рассеянных и 2 собственных;
2) 5 ошибок из рассеянных и 4 собственных.
Найти надёжность по модели Миллса - С
Условие:
12

13.

СМ: простая интуитивная
модель (начало)
Предполагается проводить тестирование двумя независимыми группами лиц,
использующими независимые тесты. Программа некоторое время
тестируется параллельно, затем результаты сравниваются.
N 1 - ошибки, обнаруженные первой группой
N 2 - ошибки, обнаруженные второй группой
N 12 - ошибки обнаруженные обеими группами
N - предполагаемое количество ошибок в программе
N1
N12
N2
N
13

14.

Простая интуитивная
модель (конец)
E1=N1/N
E2=N2/N
p12=N12/N
p1=N1/N
p2=N2/N
p12=p1p2
N12/N=N1/N x N2/N --- N=N1N2/N12
R=N-N1-N2+N12
E1 и E2 – эффективности тестирования групп 1 и 2 соответственно
p1 и p2 – вероятности обнаружения ошибок в программе
N – предположительное число ошибок в программе
R – остаточное число ошибок в программе
14

15.

Простая интуитивная модель
(задача)
Условие: При проведении тестирования первой группой было обнаружено
15 ошибок, второй – 25 ошибок. Общих ошибок - 5. Определить
надежность по простой интуитивной модели.
Дано:
N1=15;
N2=25;
N12=5;
Решение.
N=N1N2/N12=15x25/5=75
R=75-15-25+5=40
Найти:
N-?
R-?
15

16.

Простая интуитивная модель
(самостоятельное решение задачи)
Условие:
Программа
тестируется
двумя
независимыми группами тестировщиков,
которые силами групп выявили в программе
40 и 20 ошибок соответственно. При этом
оказалось, что 10 ошибок - общие, их нашли
обе группы. Требуется оценить общее
количество ошибок в программе до начала
тестирования
и
сделать
вывод
о
необходимости продолжения тестирования
или возможности его завершении.
.
16

17.

СМ: модель Коркорэна
Применение модели предполагает знание
следующих ее показателей:
модель содержит изменяющуюся
вероятность отказов для различных
источников ошибок и соответственно разную
вероятность их исправления;
в модели используются такие параметры,
как результат только N испытаний, в которых
наблюдается Ni ошибок i-го типа;
выявление в ходе N испытаний ошибки i-го
типа появляется с вероятностью аi.
17

18.

СМ: модель Коркорэна
N0– число безотказных испытаний
N – число испытаний
Ni– количество ошибок i-го типа
ai – вероятность появления ошибки i-го типа
Yi – вероятность появления ошибок Yi=ai, если Ni>0
k – известное число типов ошибок
R – показатель уровня надёжности
Yi=0, если Ni=0
k
N0
Yi ( N i 1)
R
N i 0
N
Преимущества: легкий расчёт и получение показателя надёжности в виде
числа.
Недостатки: необходимо знать вероятности появления ошибок в том или
ином классе задач.
18

19.

Модель Коркорэна (задача)
Условие: При тестировании программы было проведено 100 испытаний, при
которых было выявлено следующее число ошибок по типам (см. табл.). Из
100 испытаний 20 было проведено безуспешно. Необходимо определить
надёжность программы.
Тип ошибки
Вероятность появления (ai)
Количество выявленных
ошибок
1.Ошибки вычисления (A)
0.09
5
2.Логические ошибки (B)
0.26
25
3.Ошибки ввода-вывода (C,E)
0.16
3
4.Ошибки манипулирования данными (D)
0.18
-
5.Ошибки сопряжения (F)
0.17
11
6.Ошибки определения данных (G)
0.08
3
7.Ошибки в БД (H)
0.06
11
19

20.

Модель Коркорэна (задача)
Условие: При тестировании программы было проведено 100 испытаний, при
которых было выявлено следующее число ошибок по типам (см. табл.). Из
100 испытаний 20 было проведено безуспешно. Необходимо определить
надёжность программы.
Тип ошибки
Вероятность
появления
(ai)
Количество
выявленных
ошибок
1.Ошибки вычисления
(A)
0.09
5
2.Логические ошибки
(B)
0.26
25
3.Ошибки вводавывода (C,E)
0.16
3
4.Ошибки
манипулирования
данными (D)
0.18
-
5.Ошибки сопряжения
(F)
0.17
11
6.Ошибки определения
данных (G)
0.08
3
7.Ошибки в БД (H)
0.06
11
Решение
k
N0
Y ( N 1)
R
i i
N i 0
N
20 (5 1) 0.09 (25 1) 0.26
100
100
100
(3 1) 0.16
(11 1) 0.17
0
100
100
(3 1) 0.08 (11 1) 0.06
0.39
100
100
Ответ:
с уверенностью в 39% можно
утверждать, что программа будет
20
работать без сбоя.

21.

ДДМ: модель Шумана (начало)
Модель Шумана относится к аналитическим
динамическим дискретным моделям.
На модель существуют следующие ограничения:
Исходное количество ошибок в программе – постоянная
величина, которая уменьшается пропорционально тому,
как ошибки исправляются.
Общее число операторов в программе постоянно.
Скорость обнаружения ошибок пропорциональна числу
оставшихся ошибок.
21

22.

Модель Шумана
(продолжение)
1.
2.
3.
Предполагается, что до начала тестирования было Ет ошибок. В течение
машинного времени отладки устраняется с( ) ошибок в расчете на
один оператор программы. Удельное число ошибок на оператор
программы, оставшееся в программе после времени тестирования
r( ) = Ет / Iт - с( )
(1)
где Iт – известное постоянное, общее число операторов программы.
Предполагается, что частота отказов z(t) пропорциональна числу
ошибок, оставшихся в программе после отладки:
z(t) = C * r( )
(2)
где C – некоторая постоянная, а t – время работы программы без
отказов.
Функция надежности (вероятность безотказной работы программы на
интервале от 0 до t) рассчитывается по формуле
R(t, ) = exp{-C * [Eт/Iт - с( )] * t}
(3)
tcp = 1 / (С * [Eт / Iт - с( )])
(4)
где tcp – время безотказной работы программы.
22

23.

Модель Шумана
(продолжение)
4.
В процессе тестирования фиксируются данные об ошибках и времени прогона,
которые заносятся в таблицу:
№ прогона
Время прогона
Количество ошибок на прогоне



n – общее число прогонов, из них:
r – безуспешных время прогона: Т1, Т2, … , Тr
(n – r) – успешных время прогона: t1, t2, … , tn-r
Общее время прогонов H равно:
r
n r
H Ti t i
i 1
5.
(5)
i 1
Предполагая, что интенсивность появления ошибок постоянна и равна ,
n r
получаем:
Ai
(6)
i 1
H
где Ai – количество ошибок на i-ом прогоне.
H
t ср n r
Ai
i 1
(7)
23

24.

Модель Шумана (конец)
6.
Имея данные для двух различных моментов тестирования 1 и 2,
которые выбираются произвольно с учетом требования с( 2) с( 1),
сопоставляют уравнения (4) и (7).
Получаем:
1
1
1
1
2
ET
ET
C
C
2
C
C 1
IT
I
T
1
(8)
(9)
C 1 C 2
ET I T
1
C
2
1
2
1
ET
C 1
IT
1
(10)
7.
Получив неизвестные ET
программы по формуле (3).
(11)
и
C,
можно
рассчитать
надежность
24

25.

Модель Шумана (задача)
Условие: в программе имеется 4381 оператор. В процессе
последовательных тестовых прогонов были получены следующие
данные (см. таблицу).
№ прогона
1
2A
3
4
5
6
7
8B
9
10
Количество ошибок
1
2
1
1
1
1
1
2
1
1
Время (м)
5
8
2
1
5
1
1
2
5
5
Найти: вероятность безотказной работы программы в течение
времени t = 60 мин при = 35 мин.
25

26.

Модель Шумана (решение задачи)
Выберем 2 точки, исходя из требования, чтобы число ошибок, найденных на интервале A–B, было
больше, чем на интервале 0–A. За точку A возьмем 2 прогон, а за точку B – 8 прогон. Тогда ошибки,
найденные на этапах тестирования на интервалах 0–A и A–B, будут равны соответственно:
εC( A) = 3 / 4381 = 0.0007
εC( B) = 7 / 4381 = 0.0015
Время тестирования на интервалах равно:
A = 5 + 8 = 13
B = 2 + 1 + 5 + 1 + 1 + 2 = 12
Рассчитываем интенсивности появления ошибок на двух интервалах:
λA = 3 / 13 = 0.23
λB = 7 / 12 = 0.58
0.58
0.0007 0.0015
0
.
23
ET 4381
0.763 1 ошибка
0.58
1
0.23
Это число имеющихся до начала тестирования ошибок. Коэффициент пропорциональности равен:
0.23
C
460
0.76
4381 0.0007
Рассчитаем вероятность безотказной работы в течение времени t при = 35 мин:
0.763
R t ,35 exp 460
C 35 t
4381
Возьмем t = 60 мин:
R 60,35 exp 460 0.0002 0.0027 60 0.9
26

27.

ДНМ: модель Муса (начало)
Модель учитывает два вида времени функционирования:
суммарное время функционирования, которое отсчитывается в ходе разработки программы, вплоть
до того, когда происходит оценка надежности;
оперативное время, т.е. время от контрольного момента и далее при условии, что дальнейшего
исправления ошибок не будет.
Суммарное число обнаруженных и устраненных ошибок:
C
n N 0 1 exp
M 0 T0
(1)
N0 – первоначальное число ошибок
M0 – общее число отказов, которые могут произойти за все время испытания программы
T0 – средняя наработка на отказ в начале испытания
С – коэффициент сжатия тестов (для устранения избыточности при тестировании)
– суммарное время функционирования
(2)
N0 B M 0
B – коэффициент уменьшения числа ошибок
B n
n – число зарегистрированных ошибок
m – число зарегистрированных отказов
m
(3)
27

28.

Модель Муса
C
m M 0 1 exp
M
T
0
0
(4)
m – число зарегистрированных отказов
C
T T0 exp
M
T
0 0
(5)
T – текущее время средней наработки на отказ
T0 – требуемая величина наработки на отказ, задаваемая в договоре заказчиком
T0
1
f k N0
(6)
f – средняя скорость выполнения программы, отнесенная к числу операторов
k – коэффициент появления ошибок; характеризует скорость, с которой появились бы ошибки, если бы
программа выполнялась линейно; диапазон – от 1.54*10-7 до 3.99*10-7
t
R (t ) exp (7)
T
1 1
m M 0 T0
T TF
R(t) – надежность для оперативного времени
Δm – число отказов
Δ – время тестирования
(8)
M 0 T0
T
ln F
C
T
(9)
28
English     Русский Rules