Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
85
Добавлен:
15.06.2014
Размер:
400.9 Кб
Скачать

Отладка программы. Тестирование

Этапы подготовки и решения задач на компьютере

Постановка задачи

Физический и математический анализ

Этап алгоритмизации

Выбор языка программирования

Этап программирования

Отладка программы и тестирование

Оптимизация программы

Решение задачи на компьютере

Обработка результатов решения задач

Этап документирования

Дополнительно описываются структура программы, структуры данных,

приводятся инструкции пользователя

1

Отладка программы и тестирование состоит в обнаружении, локализации и исправлении ошибок в программе.

Семантические ошибки: логические или алгоритмические. Тестирование предполагает:

1.Подготовку тестовых наборов

2.Прогон теста

Компиляция Отладка Тестирование

Подготовка

теста Прогон «Простые»

наборы «Сложные»

при открытом окне наблюдений (параметров)

Режимы

Пошаговый

По контрольным точкам

Среда Тurbo (С или Pascal): пошаговое исполнение программы (F7(с заходом в подпрограмму), F8(без захода))

наблюдение параметров в окне Watch, которое открывается через пункт меню Debug или Windows.

Выполнение начальной части программы до курсора (F4), прервать выполнение программы Ctrl-F2 (или Program Reset)

Занесение переменных в окно наблюдений - Ctrl-F7 (Add watch), для удаления выделяется DEL.

Для ускорения отладки рекомендуется в программе устанавливать точки останова (контрольные точки) (опция Breakpoints (Debug) - (Ctrl+F8)).

Первоначально после ввода исходных данных; после входа в подпрограмму и выхода из неё для передаваемых параметров; в начале и в конце крупных ветвей

Тестирование, локализация и исправление ошибок производится до тех пор, пока для всех тестовых наборов не совпадут полученные значения

с эталонными.

3

Методы тестирования

Тестирование - процесс выполнения программы на тестовых примерах с целью обнаружения ошибок. (Г.Майерс "Надежность программного обеспечения").

1.Тестирование на уровне модулей.

2.Тестирование связей между модулями для сложных программ.

Тестирование на уровне модулей

Спецификация - формализованное описание свойств, характеристик и функций объектов (другими словами: точная и

полная формулировка задачи, содержащая информацию, необходимую для построения алгоритма решения задачи).

Пути:

а) Тестирование утверждений б) Тестирование ветвлений (решений).

в) Тестирование структур управления г) Тестирование путей (всех ветвей программы).

д) Тестирование специальных значений

4

е) фиктивное выполнение

 

Предлагается комбинированный способ с применением направленного графа и эквивалентного графа.

 

 

Начало

Начало

 

 

 

 

 

 

 

 

 

M>N

6

N<=M

 

 

 

 

 

 

 

 

 

8

 

11

 

11

 

 

N<>0

 

 

 

 

 

 

N=0

 

11

 

16

 

 

 

 

 

 

 

 

 

 

11

конец

6

8 11

 

 

16

11

 

 

 

 

16

 

11

 

 

 

 

 

 

16

16

2

 

4

 

3

 

 

1

 

 

 

 

5

 

Конец

 

 

Тест

Тестовый набор

Промежуточные

Эталонные

 

значения

результаты

Входной набор 1

Результат 1

N>M; N<>0; затемN=0

 

 

 

Входной набор 2

Результат 2

N>M; N=0

 

 

 

Входной набор 3

Результат 3

N<=M; N=0

 

 

 

Входной набор 4

Результат 4

N<=M; N<>0; и N=0

 

6

Таблица покрытий вершин и путей графа тест-наборами

Заполним таблицу следующим образом:

Ставим «+» на пересечении i-ой строки и j-го столбца, если при вы- полнении i-го тестового набора проверяется j-я вершина (j-й путь)

 

 

 

 

 

J

 

 

 

 

 

 

Вершины

 

Пути

 

 

 

Метки

i

Набор

6 8 11 16

H-6 6-8 6-11 8-11 11-11 11-16 16-K

“+”

1 х

 

+ + + +

+ + -

+

+

+

+ 8

 

2

д3

+ + + +

+ + -

+

-

+

+ 7

 

3

д1

+ - + +

+ - +

-

-

+

+

5

 

4

д2

+ - + +

+ - +

-

+

+

+ 6

 

 

 

х x х х

х x -

x

х

х

х

 

Алгоритм минимизации:

1.Выбираем столбец с одной единицей. Помечаем его (или вычеркиваем в табл) и соотвествующий ТН включаем в минимальный тест.

2.Подсчитаем «+» в каждой строке. Выбираем строку с наибольшим количеством «+», включаем данный ТН в тест. Вычеркиваем

столбцы содержащие «+» для данного ТН (1). Тест: 1, 3 (или 4) 7

 

 

 

Диагностические тесты

 

ТН

Контролируемые пути, вершины, параметры

 

3

6 или 11 или 16 пути 6-11 или 11-16

 

4

6 или 11 или 16 пути 6-11 или 11-16 или11-11

 

2

6 или 11 или 16 или 8 пути 6-11 или 11-16 или 6-8 или 8-11

1

- «

-

 

 

 

или 11-

 

11

Диагностическая таблица

Пояснение

 

 

Диагнос-

3

4

 

2

 

тический

+

-

 

 

11-11

набор

 

 

 

 

+

-

 

+

 

 

 

 

 

 

 

+

+

-

 

8, 6-8, 8-11

 

 

-

-

 

-

6, 11, 16, или

 

 

 

 

 

 

6-11и 11-16

При построении диагностического теста использована методика расширяющихся областей контроля. ДТ: 3, 4, 2

Существует методика тестирования сужением области контроля (первым выбирается набор, охватывающий наибольший путь)ДТ:1,2,3

Рассмотренные подходы (г,а) не всегда гарантируют выполнение функций, заданных в программе. Они не гарантируют соответствия программы спецификациям.

Начало

1

Ввод Х

Нет 2

Допуст. Х

9

Ошибка

ввода

конец

ПРИМЕР: Построим тест (найдем совокупность тест-наборов с эталонными значениями) для

 

вычисления

 

 

 

 

 

 

 

 

y =| х2

¦ -2<=х<=0,

 

(Начальное значение вводится)

| х3 ¦ 0<х <2

 

 

 

 

 

 

 

 

3 с шагом х=0.2

 

да

х=0, х=1

 

 

 

Х<2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет

 

 

 

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

Y=X2

 

 

4X<=0

 

 

Y=X3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

Вывод x,y

8

х=х+0,2

9