- •Д.Г. Хохлов
- •Оглавление
- •Предисловие
- •1. Основные понятия
- •2. Проектирование программы
- •2.1. Постановка и анализ задачи
- •2.2. Внешнее проектирование
- •2.2.1. Методика внешнего проектирования
- •2.2.2. Внешнее представление данных
- •2.3. Проектирование структуры программы
- •2.4. Проектирование модуля
- •2.4.1. Этапы проектирования модуля
- •2.4.2. Стиль программирования
- •2.4.3. Пример проектирования модуля
- •3. Отладка программы
- •3.1. Планирование отладки
- •3.2. Проектирование тестов
- •3.3. Отладочные средства
- •5.1.2. Файл проекта
- •6.2. Выполнение и оформление работы
- •6.2.1. Задание
- •6.2.2. Описание применения
- •6.2.3. Описание программы
- •6.2.3. Подготовка к отладке программы
- •6.2.4. Отладка программы
- •6.2.5. Заключение
- •6.2.6. Общие правила оформления
- •Список литературы
- •Приложение. Пример выполнения курсовой работы
- •1. Задание
- •2. Описание применения
- •2.1. Постановка задачи
- •2.2. Обращение к программе
- •2.3. Входные данные
- •2.4. Выходные данные
- •2.5. Сообщения
- •2.5.1. Информационные сообщения
- •2.5.2. Сообщения об ошибках
- •3. Описание программы
- •3.1. Метод решения задачи
- •3.2. Структура программы
- •3.3. Описание модулей
- •3.3.1. Main - главный модуль
- •3.3.2. Pminc - поиск минимального цикла
- •3.3.3. Vvodg - ввод графа
- •3.3.4. Vyvodp - вывод пути
- •4. Подготовка к отладке программы
- •4.1. План отладки
- •4.2. Проектирование тестов
- •4.2.1. Тесты черного ящика
- •4.2.2. Тесты белого ящика
- •4.3. Отладочные средства
- •1. Отладка программы
- •3. Заключение
- •Список литературы
- •Приложение 1. Системные файлы проекта
- •Приложение 2. Текст программы модуля main
- •Приложение 3. Текст программы модуля pminc
- •Приложение 4. Текст программы модуля vvodg
- •Приложение 5. Текст программы модуля vyvmsm
- •Приложение 6. Текст программы модуля vyvodp
- •Приложение 7. Текст программы модуля vyvsoob
- •Приложение 8. Текст отладочной программы драйвера dvvodg
- •Приложение 9. Результаты тестирования программы
- •Приложение 10. Трудоемкость курсовой работы
- •Приложение 11. Дневник выполнения курсовой работы
4.2.2. Тесты белого ящика
Разработанные тесты проверены методами белого ящика [3, 4] по критериям охвата основных путей выполнения алгоритмов модулей. В программе имеются составные условия. Поэтому использован критерий комбинаторного покрытия условий (см. табл. 4.3).
Таблица 4.3
Комбинаторное покрытие условий тестами черного ящика
--------T----------------------------T-----------------------¬
¦ ¦ ¦ Номера тестов ¦
¦ Модуль¦ Элементарное условие +-----------T-----------+
¦ ¦ ¦ Истина ¦ Ложь ¦
+-------+----------------------------+-----------+-----------+
¦main ¦ kz > 2 ¦2,3,5 и др. ¦1,4 и др. ¦
¦main ¦ kz == 3 ¦2,3 ¦1,4,5 и др.¦
¦main ¦ kz == 4 ¦7,8 ¦2,3,5 ¦
¦main ¦ kz == 1 ¦1,4 ¦12 ¦
¦main ¦ i < n ¦1,4,12 ¦1,4,12 ¦
¦main ¦ kp ¦4 ¦1,12 ¦
¦main ¦ pminc (n, g, &dcmin, cmin) ¦4,11 ¦1,12 ¦
¦pminc ¦ v[0]<n ¦1,4,11,12 ¦4,11 ¦
¦pminc ¦ *dcmin>3 ¦1,12 ¦1,4,11,12 ¦
¦pminc ¦ vn<n ¦1,12 ¦1,12 ¦
¦pminc ¦ g[j][vn]==0 ¦1,12 ¦1 ¦
¦pminc ¦ k>1 ¦1,12 ¦1,12 ¦
¦pminc ¦ vn==v[k-2] ¦1,12 ¦1,12 ¦
¦pminc ¦ vn<n ¦1,12 ¦1,12 ¦
¦pminc ¦ k<*dcmin ¦1,12 ¦1 ¦
¦pminc ¦ v[0]==v[k] ¦1,12 ¦1,12 ¦
¦pminc ¦ k>0 ¦1,12 ¦1,12 ¦
¦pminc ¦ j<=k ¦1,12 ¦1,12 ¦
¦pminc ¦ k > 0 ¦1,12 ¦1 ¦
¦pminc ¦ *dcmin>3 ¦1,12 ¦1,12 ¦
¦pminc ¦ *dcmin > n ¦1,12 ¦4,11 ¦
¦vvodg ¦ feof(stdin) ¦10 остальные ¦
¦vvodg ¦ *n<1 ¦2 ¦1,3,4 и др.¦
¦vvodg ¦ *n>NMAX ¦3 ¦1,2,4 и др.¦
¦vvodg ¦ i<*n ¦1,4,5 и др. ¦1,4,5 и др.¦
¦vvodg ¦ j<*n ¦1,4,5 и др. ¦1,4,5 и др.¦
¦vvodg ¦ ! feof(stdin) ¦1,4,5 и др. ¦1,4,11,12 ¦
¦vvodg ¦ i<0 ¦7 ¦1,4,5 и др.¦
¦vvodg ¦ i>=*n ¦8 ¦1,4,5 и др.¦
¦vvodg ¦ feof(stdin) ¦5,6 ¦1,4,5 и др.¦
¦vvodg ¦ j<0 ¦ ¦1,4,5 и др.¦
¦vvodg ¦ j>=*n ¦ ¦1,4,5 и др.¦
¦vvodg ¦ g[i][j] ¦1 ¦1,4,5 и др.¦
¦vyvodp ¦ i<kvp ¦1,12 ¦1,12 ¦
L-------+----------------------------+-----------+------------
Из табл. 4.3 видно, что тесты черного ящика не обеспечивают истинное значение условий j<0 и j>=*n в модуле vvodg, т.е. выход за допустимые пределы второго номера вершины вводимого ребра. Для покрытия истинного значения этих условий дополнительно разработаны тесты, представленные в табл. 4.4.
Таблица 4.4
Тесты белого ящика для отладки программы
----T------------------------T-------------------T-----------¬
¦ N ¦ Вход ¦ Выход ¦ Основные ¦
¦ ¦ ¦ ¦ ситуации ¦
+---+------------------------+-------------------+-----------+
¦13 ¦ n=4 ¦ Сообщения: 3,6,8 ¦1,4,6,9,10,¦
¦ ¦ ребра: 3--1 2-0 ¦ ¦19,22,24 ¦
¦ ¦ ¦ ¦ ¦
¦14 ¦ n=4 ¦ Сообщения: 3,6,8 ¦1,4,6,9,11,¦
¦ ¦ ребра: 1-4 2-0 ¦ ¦19,22,24 ¦
L---+------------------------+-------------------+------------