- •Основные задачи проектирования
- •2. Стратегии конструирования по: «водопад» и инкрементная стратегия.
- •Каскадная модель или «водопад»
- •1. Стратегии конструирования по: эволюционные модели.
- •Компонентно-ориентированная модель
- •Информационные потоки процесса тестирования
- •Тестирование «черного ящика»
- •Тестирование «белого ящика»
- •15. Способ тестирования потоков данных
- •Разбиение по эквивалентности
- •18. Ооап. Унифицированный процесс. Этапы разработки. Модели.
- •19. Ооап. Унифицированный процесс. Этап начало (планирование): основные задачи, артефакты uml.
- •20. Ооап. Анализ: разработка прецедентов.
- •21. Ооап. Анализ: построение концептуальной модели ис ( определение, 2 подхода к построению концептуальной модели ис).
- •22. Ооап. Анализ и проектирование: поведение системы (системные события и операции, диаграммы последовательностей).
- •Диаграммы последовательностей
- •23. Ооап. Анализ и проектирование: диаграммы кооперации.
- •24. Ооап: использование диаграмм компонентов в процессе проектирования
- •25. Ооап: использование диаграмм развёртывания в процессе проектирования ис.
- •27. Проектные решения с использованием шаблонов: шаблон Creator.
- •28. Проектные решения с использованием шаблонов: шаблон Expert
- •29. Проектные решения с использованием шаблонов: шаблон Observer (Наблюдатель).
- •35. Оо Метрики: Метрики связности по методам
- •Отношения между элементами класса Stack
- •36. Оо Метрики: объектно-ориентированные метрики сцепления
- •37. Оо Метрики: Набор метрик Чидамбера и Кемерера
15. Способ тестирования потоков данных
В предыдущих способах тесты строились на основе анализа управляющей структуры программы. В данном способе анализу подвергается информационная структура программы.
Работу любой программы можно рассматривать как обработку потока данных, передаваемых от входа в программу к ее выходу.
Рассмотрим пример.
Пусть потоковый граф программы имеет вид, представленный на рис. 6.8. В нем сплошные дуги — это связи по управлению между операторами в программе. Пунктирные дуги отмечают информационные связи (связи по потокам данных). Обозначенные здесь информационные связи соответствуют следующим допущениям:
в вершине 1 определяются значения переменных а, b;
значение переменной а используется в вершине 4;
значение переменной b используется в вершинах 3, 6;
в вершине 4 определяется значение переменной с, которая используется в вершине 6.
Граф программы с управляющими и информационными связями
В общем случае для каждой вершины графа можно записать:
множество определений данных
DEF(i) = { х | i -я вершина содержит определение х};
множество использований данных:
USE (i) = { х | i -я вершина использует х}.
Под определением данных понимают действия, изменяющие элемент данных. Признак определения — имя элемента стоит в левой части оператора присваивания:
x:=f(…).
Использование данных — это применение элемента в выражении, где происходит обращение к элементу данных, но не изменение элемента. Признак использования — имя элемента стоит в правой части оператора присваивания:
:=f(x).
Здесь место подстановки другого имени отмечено прямоугольником (прямоугольник играет роль метки-заполнителя).
Назовём DU-цепочкой
(цепочкой
определения-использования) конструкцию [х, i,j], где i,j — имена
вершин; х определена в i-й
вершине (х
DЕF(i))
и используется в j -й
вершине (х
USE(j)).
В нашем примере существуют следующие DU-цепочки:
[а,1,4],[b, 1,3], [b, 1,6], [с, 4, 6].
Способ DU-тестирования требует охвата всех DU-цепочек программы. Таким образом, разработка тестов здесь проводится на основе анализа жизни всех данных программы.
Очевидно, что для подготовки тестов требуется выделение маршрутов — путей выполнения программы на управляющем графе. Критерий для выбора пути — покрытие максимального количества DU-цепочек.
Шаги способа DU-тестирования:
1) построение управляющего графа (УГ) программы;
2) построение информационного графа (ИГ);
3) формирование полного набора DU-цепочек;
4) формирование полного набора отрезков путей в управляющем графе (отображением набора DU-цепочек информационного графа, рис. 6.9);
Отображение DU-цепочки в отрезок пути
5) построение маршрутов — полных путей на управляющем графе, покрывающих набор отрезков путей управляющего графа;
6) подготовка тестовых вариантов.
Достоинства DU-тестирования:
простота необходимого анализа операционно-управляющей структуры программы;
простота автоматизации.
Недостаток DU-тестирования: трудности в выборе минимального количества максимально эффективных тестов.
Область использования DU-тестирования: программы с вложенными условными операторами и операторами цикла.
16. Функциональное тестирование: способ разбиения по эквивалентности, анализ граничных условий.
Способ разбиения по эквивалентности
Разбиение по эквивалентности — самый популярный способ тестирования «черного ящика» [3], [14].
В этом способе входная область данных программы делится на классы эквивалентности. Для каждого класса эквивалентности разрабатывается один тестовый вариант.
Класс эквивалентности — набор данных с общими свойствами. Обрабатывая разные элементы класса, программа должна вести себя одинаково. Иначе говоря, при обработке любого набора из класса эквивалентности в программе задействуется один и тот же набор операторов (и связей между ними).
каждый класс эквивалентности показан эллипсом. Здесь выделены входные классы эквивалентности допустимых и недопустимых исходных данных, а также классы результатов.
Классы эквивалентности могут быть определены по спецификации на программу.
