Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПО-лекции3.pdf
Скачиваний:
117
Добавлен:
09.02.2015
Размер:
2 Мб
Скачать
☆

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