- •Тема 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. Организация процесса тестирования программного обеспечения
- •Методика тестирования программных систем
- •Тестирование элементов
- •Тестирование итераций
- •Восходящее тестирование интеграции
- •Тестирование правильности
- •Системное тестирование
Тестирование циклов
При тестировании циклов по принципу белого ящика основное внимание уделяется правильности конструкции циклов. Различают четыре типа циклов:
простые циклы;
вложенные циклы;
объединенный цикл;
неструктурированный цикл.
Для проверки простых циклов с количеством повторений n могут использоваться один из следующих наборов тестов:
прогон всего цикла;
только один прогон цикла;
m–проходов цикла, m<n.
С увеличением уровня вложенности для вложенных циклов количество возможных путей резко возрастает. Это приводит к нереализуемому количеству тестов. Для сохранения количества тестов применяется специальная методика, в которой используются понятия вложенного и объемлющего циклов. Графически это можно представить следующим образом:
Шаги тестирования вложенных циклов:
выбирается самый внутренний цикл, и устанавливаются минимальные значения параметров всех остальных циклов;
для внутреннего цикла проводятся тесты простого цикла и добавляются тесты для исключенных значений и значений, выходящих за пределы рабочего диапазона;
переходят в следующий по порядку объемлющий цикл и выполняют его тестирование. При этом сохраняется минимальное значение параметров для всех объемлющих циклов и типовые значения для всех вложенных циклов;
третий шаг повторяется до тех пор, пока не будут протестированы все циклы.
Если каждый из объединенных циклов независим от других, то используется техника тестирования простых циклов. При наличии зависимости, например, если конечное значение счетчика первого цикла используется в начальном значении счетчика второго цикла, то используется методика тестирования такая же, как и для вложенных циклов.
Неструктурированные циклы тестированию не подлежат. Этот тип циклов должен быть переделан с помощью структурированных программных конструкций.
Вопросы для самоконтроля по теме 6:
Дайте определение тестирования
Опишите назначение тестирования
Перечислите и охарактеризуйте основные особенности функционального и структурного тестирования
Перечислите недостатки тестирования «белого ящика»
Опишите назначение тестирования базового пути
Перечислите шаги тестирования базового пути
Перечислите основные типы ошибок в условиях
Опишите способ тестирования потоков данных
Перечислите типы циклов и опишите особенности тестирования каждого типа циклов
Тема 7. Функциональное тестирование программного обеспечения Особенности тестирования черного ящика
Тестирование черного ящика позволяет получить сочетание входных данных, обеспечивающих полную проверку всех функциональных требований к программе. Программный продукт при функциональном тестировании рассматривается как черный ящик, поведение которого можно определить только путем исследования его входов и соответствующих выходов. При таком подходе желательно иметь:
набор, образуемый входными данными, который приводит к аномалиям поведения программы;
набор, образуемый такими входными данными, которые демонстрируют дефекты программы.
Любой способ тестирования черного ящика должен:
выявить такие входные данные, которые с высокой вероятностью приводят к аномалиям поведения программы;
сформулировать такие ожидаемые результаты, которые с высокой вероятностью выявляют наличие дефектов.
Во многих случаях определение таких тестовых вариантов основывается на предыдущем опыте тестировщиков. Они используют свои знания и понимания в области определения для идентификации тестовых вариантов, которые эффективно обнаруживают дефекты.
Принцип черного ящика не альтернативен принципу белого ящика. Скорее это дополняющий подход, который обнаруживает другой класс ошибок.
Тестирование черного ящика обеспечивает поиск следующих категорий ошибок:
некорректных или отсутствующих функций;
ошибок интерфейса;
ошибок во внешних структурах данных или в доступе к внешней базе данных;
ошибок характеристик аппаратных устройств;
ошибок инициализации и завершения.
Подобная категория ошибок не позволяет выявить тестирование белого ящика.
В отличие от тестирования белого ящика, которое выполняется на ранней стадии тестирования программного обеспечения, тестирование черного ящика применяется на поздних стадиях тестирования. При тестировании черного ящика пренебрегают управляющей структурой программы и концентрируют внимание на информационной области определения программной системы.
Технология тестирования черного ящика ориентирована на решение следующих задач:
Сокращение необходимого количества тестовых вариантов из-за проверки нестатических, а динамических аспектов системы;
Выявление классов ошибок, а не отдельных ошибок.