
- •Отладка программы. Тестирование
- •Отладка программы и тестирование состоит в обнаружении, локализации и исправлении ошибок в программе.
- •Среда Тurbo (С или Pascal): пошаговое исполнение программы (F7(с заходом в подпрограмму), F8(без
- •Методы тестирования
- •Предлагается комбинированный способ с применением направленного графа и эквивалентного графа.
- •Тест
- •Таблица покрытий вершин и путей графа тест-наборами
- •Рассмотренные подходы (г,а) не всегда гарантируют выполнение функций, заданных в программе. Они не

Отладка программы. Тестирование
Этапы подготовки и решения задач на компьютере
•Постановка задачи
•Физический и математический анализ
•Этап алгоритмизации
•Выбор языка программирования
•Этап программирования
• |
Отладка программы и тестирование |
•Оптимизация программы
•Решение задачи на компьютере
•Обработка результатов решения задач
•Этап документирования
Дополнительно описываются структура программы, структуры данных,
приводятся инструкции пользователя
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