- •Нижегородский государственный университет им. Н.И. Лобачевского
- •Методы проектирования надежного программного обеспечения
- •Краткое содержание
- •Надежность программного обеспечения
- •Часть I. Надежность ПО
- •Понятие ошибки ПО
- •Понятие надежности
- •Методы оценки надежности
- •Причины и источники ошибок ПО
- •Методы проектирования надежного программного обеспечения
- •Методы проектирования надежного программного обеспечения
- •Методы проектирования надежного программного обеспечения
- •Методы предупреждения ошибок
- •Обнаружение ошибок
- •Обеспечение устойчивости к ошибкам
- •Тестирование
- •Часть II. Тестирование ПО
- •Понятие тестирования
- •Принципы тестирования…
- •Принципы тестирования
- •Порядок процесса тестирования
- •Тестирование программы как "черного ящика"
- •Тестирование программы как "черного ящика"
- •Метод эквивалентного разбиения
- •Метод эквивалентного разбиения
- •Метод эквивалентного разбиения
- •Метод эквивалентного разбиения
- •Метод анализа граничных условий
- •Тестирование программы как "белого ящика"
- •Тестирование программы как "белого ящика"
- •Критерии покрытия логики
- •Критерии покрытия логики
- •Критерии покрытия логики
- •Критерии покрытия логики
- •Критерии покрытия логики
- •Какого "цвета" тестирование выбрать?
- •Спектр подходов к проектированию тестов
- •Этапы тестирования
- •Два подхода к тестированию модулей
- •Восходящее тестирование
- •Нисходящее тестирование
- •Тестирование функций
- •Комплексное тестирование
- •Alpha- и beta- тестирование
- •Статистическая надежность
- •Комбинаторная надежность
- •Расчет величины риска, вызванного возможностью ошибок в ПО
Критерии покрытия логики
программы
Необходимо выбрать такие критерии, которые допускали бы простую проверку и облегчали бы целенаправленный подбор тестов.
покрытие операторов;
покрытие всех ветвей алгоритма;
покрытие всех условий.
ИТЛаб ВМК НН |
Надежность и тестиро |
32-<N> |
ГУ, 15 |
вание ПО |
|
Критерии покрытия логики
программы
Необходимо выбрать такие критерии, которые допускали бы простую проверку и облегчали бы целенаправленный подбор тестов.
|
покрытие операторов; |
|
|
Требование: каждый |
|||
|
|
||
|
покрытие всех ветвей |
оператор программы |
|
|
|
должен быть выполнен |
|
|
алгоритма; |
хотя бы один раз |
|
|
покрытие всех условий. |
|
ИТЛаб ВМК НН |
Надежность и тестиро |
33-<N> |
ГУ, 15 |
вание ПО |
|
Критерии покрытия логики
программы
Необходимо выбрать такие критерии, которые допускали бы простую проверку и облегчали бы целенаправленный подбор тестов.
покрытие операторов;
покрытие всех ветвей Требование: каждая ветвь
алгоритма; |
алгоритма (каждый |
|
переход) должна быть |
покрытие всех условий. |
пройдена (выполнена) |
|
хотя бы один раз |
ИТЛаб ВМК НН |
Надежность и тестиро |
34-<N> |
ГУ, 15 |
вание ПО |
|
Критерии покрытия логики
программы
Необходимо выбрать такие критерии, которые допускали бы простую проверку и облегчали бы целенаправленный подбор тестов.
покрытие операторов;
покрытие всех ветвей
алгоритма; |
|
Требование: |
должен |
|
|
быть проверен каждый |
|
покрытие всех условий. |
возможный |
выход из |
|
|
|
любого |
составного |
|
|
условия |
|
|
|
|
|
ИТЛаб ВМК НН Надежность и тестиро |
35-<N> |
||
ГУ, 15 |
вание ПО |
|
|
Критерии покрытия логики
программы
Необходимо выбрать такие критерии, которые допускали бы простую проверку и облегчали бы целенаправленный подбор тестов.
покрытие операторов;
покрытие всех ветвей алгоритма;
покрытие всех условий.
ИТЛаб ВМК НН |
Надежность и тестиро |
36-<N> |
ГУ, 15 |
вание ПО |
|
Какого "цвета" тестирование выбрать?
Недостаток использования тестирования программы как «черного ящика»:
невозможно найти взаимно уничтожающихся ошибок.
Недостаток использования тестирования программы как «белого ящика»:
-тестирование не обнаруживает несоответствий программы внешним спецификациям;
- не обнаруживает ошибки, появление которых зависит от обрабатываемых данных.
ИТЛаб ВМК НН |
Надежность и тестиро |
37-<N> |
ГУ, 15 |
вание ПО |
|
Спектр подходов к проектированию тестов
Тестирование |
|
Тестирование |
по отношению |
|
по отношению |
к спецификациям |
|
к текстам программ |
|
|
|
|
Оптимальная стратегия |
|
ИТЛаб ВМК НН |
Надежность и тестиро |
38-<N> |
ГУ, 15 |
вание ПО |
|
Этапы тестирования
Тестирование
Тестирование
отдельных
отдельных
модулей
модулей
Совместное
тестирование
модулей
Тестирование
функций
Комплексное
тестирование
ИТЛаб ВМК НН |
Надежность и тестиро |
39-<N> |
ГУ, 15 |
вание ПО |
|
Два подхода к тестированию модулей
Известны два подхода к совместному тестированию модулей:
пошаговое тестирование - каждый модуль
для своего тестирования подключается к набору уже проверенных модулей
монолитное тестирование –тестируются
по отдельности все модули программного комплекса. Все модули объединяются в рабочую программу для комплексного тестирования.
ИТЛаб ВМК НН |
Надежность и тестиро |
40-<N> |
ГУ, 15 |
вание ПО |
|
Восходящее тестирование
Уровень N |
|
Уровень N |
|
Уровень N |
|
Уровень N |
|
Уровень N |
|
|
|
|
|
|
|
|
|
Уровень N-1 |
Уровень N-1 |
Уровень N-1 |
Достоинства восходящего тестирования:
-нет возможности совмещения проектирования с тестированием;
-нет трудностей, вызывающих желание перейти к тестированию следующего модуля, не завершив проверки предыдущего.
ИТЛаб ВМК НН |
Надежность и тестиро |
41-<N> |
ГУ, 15 |
вание ПО |
|
