
- •Д.Г. Хохлов
- •Оглавление
- •Предисловие
- •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. Проектирование тестов
4.2.1. Тесты черного ящика
Для проектирования тестов программы методами черного ящика [3, 4] с помощью эквивалентного разбиения входных/выходных данных на области (классы) эквивалентности составлен список ситуаций, каждая из которых должна создаваться хотя бы одним тестом. Тестовые ситуации приведены в табл. 4.1, в скобках указаны их номера.
Таблица 4.1
Области входных/выходных данных тестов программы
---------------------------T--------------------T-----------------------------------¬
¦ Входное/выходное ¦ "Правильные" ¦ "Неправильные" ¦
¦ условие (значение) ¦ классы ¦ классы ¦
¦ ¦ эквивалентности ¦ эквивалентности ¦
+---------------------------+--------------------+-------------------+
¦Количество вершин n ¦ 1..NMAX (1) ¦ <1 (2), >NMAX (3),¦
¦ ¦ ¦ ¦
¦Количество ребер ¦ 0..n*(n-1) (4) ¦ > n*(n-1) (5) ¦
¦ ¦ ¦ ¦
¦Кол. вершин в ребре ¦ 2 (6) ¦ < 2 (7), > 2 (8) ¦
¦ ¦ ¦ ¦
¦Номер вершины ¦ 0..n-1 (9) ¦<0 (10), > n-1 (11) ¦
¦ ¦ ¦ ¦
¦Наличие петель ¦ нет (12) ¦ есть (13) ¦
¦ ¦ ¦ ¦
¦Наличие циклов ¦ есть (14), нет (15) ¦ ¦
¦ ¦ ¦ ¦
¦Минимум длины цикла¦ 3..n (16) ¦ ¦
¦ ¦ ¦ ¦
¦Сообщения программы¦1(17), 2(18), 3(19), ¦4(20), 5(21), 6(22) ¦
¦ ¦ ¦7(23), 8(24),9(25), ¦
¦ ¦ ¦ 10(26) ¦
¦ ¦ ¦ ¦
¦Имя входного файла ¦дано(27),не дано(28) ¦ ¦
¦ ¦ ¦ ¦
¦Входной файл ¦существует (29), ¦не существует (30) ¦
¦ ¦не пустой (31) ¦ пустой (32) ¦
¦ ¦ ¦ ¦
¦Имя выходного файла¦ дано(33),не дано(34) ¦ ¦
¦ ¦ ¦ ¦
¦Выходной файл ¦существует (35), ¦ ¦
¦ ¦не существует (36), ¦ ¦
¦ ¦не пустой (37), ¦ ¦
¦ ¦ пустой (38) ¦ ¦
L---------------------------+-----------------------------------+-------------------------
Для создания перечисленных тестовых ситуаций разработаны тесты, представленные в табл. 4.2. Входные и выходные данные тестов по возможности выбирались ближе к границам классов эквивалентности.
Таблица 4.2
Тесты черного ящика для отладки программы
----T------------------------T-------------------T-----------¬
¦ N ¦ Вход ¦ Выход ¦ Основные ¦
¦ ¦ ¦ ¦ ситуации ¦
+---+------------------------+-------------------+-----------+
¦ 1 ¦ n=5 (рис. 2.1, 2.3) ¦ min цикл длиной 3 :¦ 1,4,6,9,12, ¦
¦ ¦ Ребра: 0-2 4-2 2-3 ¦ 2, 3, 2 ¦ 14,16,17,19 ¦
¦ ¦ 4-3 2-0 1-3 1-0 ¦ Сообщения: 1,3,10 ¦ 25,27,29,31¦
¦ ¦ pkrc <t1 >rt1 ¦ ¦ 33,36 ¦
¦ ¦ ¦ ¦ ¦
¦ 2 ¦ n=0 pkrc ¦ Сообщения: 5,8 ¦ 2,21,24,28, ¦
¦ ¦ ¦ ¦ 34 ¦
¦ ¦ ¦ ¦ ¦
¦ 3 ¦ n=NMAX+1 ¦ Сообщения: 5,8 ¦ 3,21,24,27, ¦
¦ ¦ pkrc <t3 >rt3 - пуст ¦ ¦ 29,31,33,35 ¦
¦ ¦ ¦ ¦ 38 ¦
¦ ¦ ¦ ¦ ¦
¦ 4 ¦ n=2 ¦ Сообщения: 2,3,10 ¦ 5,6,9,13,15 ¦
¦ ¦ ребра: 0-0 0-1 1-0 1-1 ¦ ¦ 18,19,26 ¦
¦ ¦ ¦ ¦ ¦
¦ 5 ¦ n=NMAX ¦ Сообщения: 3,7,8 ¦ 1,4,7,9,12, ¦
¦ ¦ ребра: 0-1 1-2 2 ¦ ¦ 19,23,24 ¦
¦ ¦ ¦ ¦ ¦
¦ 6 ¦ n=5 ¦ Сообщения: 3,7,8 ¦1,4,8,9,12, ¦
¦ ¦ ребра: 2-1-3 4-0 ¦ ¦19,24 ¦
¦ ¦ ¦ ¦ ¦
¦ 7 ¦ n=4 ¦ Сообщения: 3,6,8 ¦1,4,6,9,10 ¦
¦ ¦ ребра: -1-3 2-0 ¦ ¦19,22,24 ¦
¦ ¦ ¦ ¦ ¦
¦ 8 ¦ n=4 ¦ Сообщения: 3,6,8 ¦1,4,6,9,11, ¦
¦ ¦ ребра: 4-1 2-0 ¦ ¦19,22,24 ¦
¦ ¦ ¦
¦ 9 ¦ pkrc <f - не существует ¦ DOS: file not found ¦ 27,30,34 ¦
¦ ¦ ¦ ¦ ¦
¦10 ¦ pkrc <t10 - пуст ¦ Сообщeния: 3,4,8 ¦ 19,20,24,27 ¦
¦ ¦ ¦ ¦ 32,34 ¦
¦ ¦ ¦ ¦ ¦
¦11 ¦ n=1 ¦ Сообщeния: 2, 3 ¦1,4,14 и др ¦
¦ ¦ ¦ ¦ ¦
¦12 ¦ n=4 ¦ min цикл длиной 4: ¦1,4,6,9,12, ¦
¦ ¦ Ребра: 0-1 1-2 2-3 3-0 ¦ 0, 1, 2, 3, 0 ¦14,16,17,19 ¦
¦ ¦ pkrc >rt12 - не пуст ¦ Сообщения: 1,3 ¦29,31,35,37 ¦
L---+------------------------+-------------------+------------
Примечание: ребра записаны через тире для наглядности, входные данные не содержат тире.