НиД (10) - Лекция №16 - Надёжность ПО
...начало
Надёжность программного обеспечения
Два способа анализа надёжности ПО:
- создание моделей (прогнозирование ошибок);
- на этапе проектирования.
Интенсивность отказов ПО, по сравнению в техническим (аппаратным) обеспечением, со временем только уменьшается.
Стоимость ПО складывается из:
- сопровождение - 50%;
- тестирование - 20%;
- проектирование - 15%;
- программирование - 15%.
Чем больше тестировать ПО, тем меньше в нём останется ошибок. Нужно каким-то образом определять количество ошибок, иначе тестировать можно бесконечно.
Бывают ошибки программирования, но чаще всего некорректным является само ТЗ (техническое задание). В этом случае ПО удовлетворяет своей спецификации, но не является корректным.
Модель прогнозирования числа невыявленных ошибок
Есть две группы тестировщиков:
$$E_1=\frac{N_1}{N}$$
$$E_2=\frac{N_2}{N}$$
где:
- $$Е_i$$ - эффективность группы;
- $$N_i$$ - число ошибок, найдённое группой;
- $$N$$ - общее число ошибок.
$$E=\frac{N_{12} }{E_1\cdot E_2}$$
$$E=\frac{N_1}{N} = \frac{N_{12} }{N_2}$$
Пусть группы обнаружили соответственно 20 и 25 ошибок. Из них общих 5.
$$E_1 = 0.2$$
$$E_2 = 0.25$$
$$N = 100$$
Модель Милса
Анализируемая программа "засоряется". После этого делается предположение, что обнаружение внесённых и собственных ошибок ПО одинаково.
Пусть в ПО внесено $$S$$ ошибок. В результате тестирования обнаружено $$n$$ ошибок собственных и $$r$$ ошибок внесённых.
$$N = \frac{S\cdot n}{r}$$