- •Тема 1. Введение. Основы методологии проектирования информационных систем 5
- •Жизненный цикл программного обеспечения
- •Модели жизненного цикла программного обеспечения
- •Макетирование
- •Спиральная модель жизненного цикла
- •Компонентно-ориентированная модель
- •Тема 2. Структурный анализ и проектирование Определение структурного анализа
- •Средства структурного анализа
- •Моделирование потоков данных
- •Контекстная диаграмма
- •Построение иерархии диаграмм потоков данных
- •Методология функционально стоимостного анализа
- •Методология функционального моделирования sadt (Structured Analysis and Design Technique)
- •Состав функциональной модели sadt
- •Иерархия диаграмм
- •Словарь данных
- •Тема 3. Построение информационной модели системы. Проектирование баз данных Диаграммы сущность-связь (erd)
- •Сущности, отношения и связи в нотации Чена
- •Типы связей в нотации Чена
- •Ассоциативная связь
- •Диаграммы атрибутов в классической модели Чена
- •Диаграмма категоризации
- •Нотация Баркера. Модель сущность- связь в нотации Баркера
- •Методология idef1x
- •Тема 4. Методика построения информационной модели данных (модели «сущность-связь»)
- •Идентификация отношений между сущностями
- •Разрешение неспецифических отношений
- •Использование средств и техники структурного системного анализа
- •Основные виды работ, рекомендуемые при построении логической и физической моделей программной системы
- •Подход Мартина (ie–методология)
- •Тема 5. Методология rad (Rapid Application Development)
- •Основные принципы методологии rad
- •Состав, структура и функциональные особенности case-средств
- •Поддержка графических моделей
- •Требования к современному диаграммеру
- •Тема 6. Структурное тестирование программного обеспечения Основные понятия и принципы тестирования программного обеспечения
- •Особенности тестирования белого ящика
- •Способ тестирования базового пути
- •Потоковый граф
- •Цикломатическая сложность
- •Шаги способа тестирования базового пути
- •Способы тестирования условий
- •Тестирование ветвей и операторов отношения
- •Способ тестирования потоков данных
- •Тестирование циклов
- •Тема 7. Функциональное тестирование программного обеспечения Особенности тестирования черного ящика
- •Способы разбиения на эквивалентности
- •Способ анализа граничных значений
- •Способ диаграмм причин–следствий
- •Тема 8. Организация процесса тестирования программного обеспечения
- •Методика тестирования программных систем
- •Тестирование элементов
- •Тестирование итераций
- •Восходящее тестирование интеграции
- •Тестирование правильности
- •Системное тестирование
Особенности тестирования белого ящика
Обычно тестирование белого ящика основано на анализе управляющей структуры программы. Программа считается полностью проверенной, если проведено исчерпывающее тестирование маршрутов графа управления. В этом случае формируются тестовые варианты, в которых:
гарантируется проверка всех независимых маршрутов программы;
проверяются ветви TRUE и FALSE для всех логических решений;
выполняются все циклы в пределах их границ и диапазонов;
анализируется правильность внутренних структур данных.
Недостатки тестирования белого ящика:
количество независимых маршрутов может быть очень велико. Например, если цикл в программе выполняется k раз, а внутри цикла имеется n ветвлений, то количество маршрутов вычисляется по формуле
При n=5 и k=20 . Даже если на разработку выполнения и оценку теста по одному маршруту расходуется 1мс, то на тестирование уйдет свыше 3000 лет.
исчерпывающее тестирование маршрутов не гарантирует соответствие программы исходным требованиям к ней.
в программе могут быть пропущены некоторые маршруты.
нельзя обнаружить ошибки, появление которых зависит от обрабатываемых данных.
Достоинства тестирования белого ящика позволяют учесть особенности программных ошибок.
Количество обнаруживаемых ошибок минимально в центре и максимально на периферии программы.
Предварительное предположение о вероятности потока управления или данных в программе часто бывает некорректно. В результате типовым может стать маршрут, модель вычислений по которому проработана слабо.
При записи алгоритма программного обеспечения на языке программирования возможно внесение типовых ошибок, как синтаксических, так и логических.
Некоторые результаты в программе зависят не от исходных данных, а от внутренних состояний программы.
Каждая из перечисленных причин является аргументом для проведения тестирования по принципу белого ящика, поскольку тесты черного ящика не смогут реагировать на ошибки таких типов.
Способ тестирования базового пути
Тестирование базового пути – это способ, который основан на принципах белого ящика. Автор этого способа – Т. Мак-Кейб.
Способ тестирования базового пути позволяет:
получить оценку комплексной сложности программы;
использовать эту оценку для определения необходимого количества тестовых вариантов.
Тестовые варианты разрабатываются для проверки базового множества маршрутов в программе. Они гарантируют однократное выполнение каждого оператора программы при тестировании.
Потоковый граф
Для представления программы при тестировании базового пути используется потоковый граф, имеющий следующие особенности:
Граф строится путем отображения управляющей структуры программы. В ходе отображения условные операторы и операторы циклов рассматриваются как отдельные операторы.
Узлы (вершины) потокового графа соответствуют линейным участкам программы и включают один или несколько операторов программы.
Дуги потокового графа отображают поток управления в программе, то есть передачу управления между операторами. Дуга потокового графа представляет собой ориентированное ребро.
Различают операторные и предикатные узлы. Из операторного узла выходит одна дуга, а из предикатного – две дуги.
Предикатные узлы соответствуют простым условиям в программе. Составное условие программы отображается в нескольких предикатных узлах.
Составным называется условие, в котором используется одна или несколько булевых операций, то есть OR или AND.
Замкнутые области, образованные дугами и узлами, называются регионами.
Окружающая граф среда рассматривается как дополнительный регион.