- •Основные требования к методологии проектирования программного обеспечения
- •Основные требования к методикам и методам проектирования ПО
- •Сложная система.
- •Разработка технического задания.
- •Диаграмма Use-Case (диаграмма прецедентов)
- •Методология быстрой разработки приложений – RAD.
- •Структурный подход в проектировании.
- •Методология Гейна/Сарсона.
- •Нотация Йордена/Де Марка
- •Синтаксис графического языка IDEF0.
- •Модель IDF3
- •Типы отношений.
- •Диаграмма атрибутов
- •Диаграмма потоков данных (ДПД, DFD)
- •Методология RUP и пример ее использования на простом примере о торговой фирме.
- •Спецификации прецедента «обновить данные из внешней системы».
- •Возможные отношения между сценариями.
- •UML, разновидности предметов, существующих в UML.
- •Операции
- •Группировка
- •Множественность. Как ее обозначить?
- •Реализация
- •Деревья наследования
- •Автомат
- •Диаграмма деятельности.
- •Зацикливание, выбор вариантов и циклы.
- •Оценка производительности распределенных информационных систем на этапе проектирования
- •Модели реализации.
- •Компонентная диаграмма
- •Computer-Aided Software/System Engineering (CASE)
- •Критерии классификации CASE-систем.
- •Тестирование ПО
- •Этапы тестирования.
- •Нагрузочное и предельное тестирование
- •Интеграционное тестирование при структурном подходе к программированию.
- •Тестирование при объектно-ориентированном подходе.
- •Сложность тестирования интеграционного класса.
- •Структурное тестирование программного обеспечения
- •Способ тестирования базового пути.
- •Потоковый граф
- •Графы и отношения
- •Отношения (симметричность, транзитивность)
- •Тестирование циклов
- •Тестирование очередей и потоков данных.
- •Как тестировать очереди.
- •Тестирование потока транзакций.
- •Тестируем декларацию.
- •Лекция 03.05.2011
- •Международные стандарты на разработку ПО
- •Стандарты, регламентирующие документирование программных средств и баз данных.
- •Профиль стандартов документирования объектов
- •Эксплуатационная документация
- •Исследовательская документация
- •Пользовательская документация
- •Лекция 10.05.2011
- •Характеристики качества программных средств
- •Модель качества ПП
- •Основные количественные характеристики программных средств и их атрибуты
- •Основные качественные характеристики программных средств и их аттрибутов.
- •Пример требований к количественным характеристикам качества программного средства.
- •Характеристики качества баз данных.
- •Жизненный цикл профилей стандартов
19.04.2011
Структурное тестирование программного обеспечения
Всегда надо описывать цель тестирования, аппаратура, ПО и т.п. и только после этого следует приводить сами тесты.
Тестирование – это процесс выполнения программы с целью обнаружения ошибок. Тестирование считается успешным, если было найдено много ошибок.
Текст программы |
|
|
|
|
|
|
|
|
|
|
Результаты |
|
|
Ошибки |
|
|
Исправление |
|
тестирование |
оценивание |
|
отладка |
||||
|
тестов |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Исходные данные |
|
Ожидаемые |
Интенсивность |
|
|
|
||
|
ошибок |
|
|
|
||||
|
результаты |
|
|
|
||||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Модель |
прогноз |
|
||
надежности
Что дает тестирование?
1.Обнаружение ошибок.
2.Демонстрация соответствия функций программы ее назначению.
3.Демонстрацию реализации требований (записанных в ТЗ) к характеристикам программы. Например, заявлено время реактивности – 3 секунды.
4.Отображение надежности как индикатор качества разработанного ПО.
Тестирование не может продемонстрировать отсутствие ошибок. Эксплуатируют неделю программу на полной нагрузке, вывелось 2 сбоя – вот и вероятность.
Цели:
1.Проверить, на сколько заявленные функции заявленным требованиям.
2.В режиме нагрузочного и предельного тестирования цель тестирования: определить реактивность системы. Напр., в ТЗ заявлена реактивность 3 секунды. Цель – определить,
так ли это. «Нагрузочные и предельное тестирование показало, что система укладывается в заданные временные рамки».
Программное и техническое кружение в режиме тестирования. Это ОС, библиотеки, технические платформы и т.п. –все, что используется при тестировании. Это обязательно, т.к. тестируется не только программа, но и оценивается возможность перехода из одной ОС в другую.
Способ тестирования базового пути.
Все это в рамках тестирования белого ящика. Мы говорим о структуре программы. Этот способ предложил Том МакКейб в 1976 году.
Способ тестирования базового пути дает возможность:
1.Получить комплексную оценку сложности программы
2.Использовать эту оценку для определения необходимого количества тестовых вариантов.
Романова Т.Н. – Технология программирования [2011]by Melvin |
Страница 46 |
Потоковый граф
В качестве узлов графа будем использовать один или несколько линейных операторов программы. Узел или вершина – это линейные участки программы.
Дуги отображают поток управления в программе. Дуги ориентированы.
Узлы бывают операторные. В качестве отдельного оператора используются скобки. Концы цикла (end loop) и конец условия (end if) нумеруются как отдельные операторы.
If a or b then X else Y end if |
|
|
|
|
|
НЕПРАВИЛЬНО: |
Правильно: |
|
|
|
|
A or B |
|
|
|
a |
|
Да |
Нет |
|
Л |
|
И |
|
|
|
|
||
|
|
|
|
R2 |
|
x |
y |
x |
|
|
y |
|
|
Л |
И |
|
|
|
|
|
|
|
|
End if |
Y |
R1 |
|
X |
R3 |
|
|
|
|
|
|
R1,R2,R3 – регионы. R3 – глобальный. |
End if |
|
|
||
|
|
|
|
||
Процедура сжатия файла: |
|
|
|
|
Потоковый |
|
|
|
|
|
граф G |
1. Выполнять пока нет OEF, читать запись из файла |
|
|
1 |
||
2.Если запись не пуста
3.То запись удалить
4.Иначе если поле а>поле b
5. |
То удалить поле b |
|
|
2 |
|
6. |
Иначе удалить поле a. |
|
|
|
|
7. |
|
|
4 |
|
3 |
|
a. End if, End if |
8 |
|
R1 |
|
|
b. Конец выполнить |
|
|
|
|
8. |
Конец сжатия |
5 |
R2 |
6 |
R3 |
|
|
||||
Потоковый граф для процедуры сжатия. |
|
|
|
|
|
|
|
R4 |
7a |
|
7b |
|
|
|
|
||
Цикломатическая сложность – количественная метрика, обеспечивающая логическую метрику сложности программы. Она определяет:
1.количество независимых путей в базовом множестве
2.Верхнюю оценку количества тестов, которая гарантирует однократное выполнение всех операторов. Критерий C0 – самый мощный критерий, когда каждый оператор выполним только один раз. Для мощных программ это недостижимо.
Независимые пути в потоковом графе G:
Путь1: 1—8
Путь2: 1—2—3—7а—7b—1—8
Путь3: 1—2—4—5—7а—7b—1—8
Романова Т.Н. – Технология программирования [2011]by Melvin |
Страница 47 |
Путь4: 1—2—4—6—7a—7b—1—8
Независимым называется любой путь на графе G, который вводит новый оператор обработки или новое условие. Т.е. не проходим по одной и той же ветке 2 раза.
Как определить цикломатическую сложность?
1. ; E – количество дуг
N – количество узлов (вершин).
В графе G:
2.
P – количество предикатных узлов.
Графы и отношения
Графы – основопологающий инструмент в тестировании. В тестировании исользуются различные
модели на основе графов:
1.Граф потоков управления
2.Граф потоков данных
3.Дерево вызовов
4.Граф конечного автомата
5.Граф потока транзакций.
Основные нотации при создании графов.
Граф представляется в ООП как набор объектов и отношений между ними. Как обозначаются
отношения между ними?: |
̌ , где ̌ – отношение. |
Друзья |
|
A |
B |
Дети одних |
|
родителей |
|
Отношения:
1.Объект «А» вызывает объект «B»
2.Объект «А»
3. Данные объекта «А» используются для вычисления объекта «B»
4.Объект «Б» включается в объект «А»
5.Симметричные (А является братом Б, Б является братом А)
6.Несимметричные (А является другом Б, а Б не считает А своим другом)
Романова Т.Н. – Технология программирования [2011]by Melvin |
Страница 48 |
