с.6. Блок-схема функції PUN2 (TAB * tab, intl)
3.3.4 PUN3 - функція виведення інформації про власника і номері
Заголовок функції:
voidPUN3 (TAB * tab, intl)
Робочі дані:
i, j, z, t-лічильник
mar [] - введена марка машини
Рис.7. Блок-схема функції PUN3 (TAB * tab, intl)
3.3.5 PUN4 - функція виведення інформації про кількість кожної марки машин
Заголовок функції:
voidPUN4 (TAB * tab, intl)
Робочі дані:
w-кількість машин
z, j - лічильники
Рис.8. Блок-схема функції PUN5 (TAB * tab, intl)
3.3.6 SORT - сортування файлу
Заголовок функції:
void SORT (TAB * pz, int l)
Рис.9. Блок-схема функції SORT (TAB * pz, int l)
4. Налагодження програми
.1 Проектування тестів
.1.1 Тести чорного ящика
Для проектування тестів програми методами чорного ящика [1] за допомогою еквівалентного роздроблення вхідних/вихідних даних на області (класи) еквівалентності складений список ситуацій, кожна з яких повинна створюватися хоча б одним тестом. Тестові ситуації наведено в табл. 4.1, в дужках вказані їх номери.
Таблиця 4.1 Області вхідних/вихідних даних тестів програми
Вхідна/вихідна умова (значення) Правильні класи еквівалентності Неправильні | Класи еквівалентностіНомер пункту меню1..5 (1) lt; 1 (2), gt; 5 (3) Вхідний файлсуществует (4), не існує (5) Номер машінисуществует (6), не знайдений (7) введені не правильно ( 8) Марка машінисуществует (9), що не знайдена
Для створення перерахованих тестових ситуацій розроблені тести, представлені в табл. 4.2. Вхідні і вихідні дані тестів по можливості вибиралися ближче до кордонів класів еквівалентності.
файл програмування чорний ящик
Таблиця 4.2. Тести чорного ящика для налагодження програми
ВходВиходОсн. сіт.1Номер пункту меню n=9Нужно вводити номери від 1 до 532Номер пункту меню n=1Визов функції PUN1 (pz, l) 13Номер пункту меню n=0Нужно вводити номери від 1 до 524Входной файл существуетМеню45Входной файл не существуетФайл «BAZA.txt" не найден56T890AAВивод інформації про машіне67С055PMІнформація про машина не найдена78Т5555ВНе коректно введений номер89LadaВивод інформації про власників цієї маркі910KIAІнформаціі про власників цієї марки нет10
4.1.2 Тести білого ящика
Розроблені тести перевірені методами білого ящика [1] за критеріями охоплення основних шляхів виконання алгоритмів модулів. У програмі є складові умови. Тому використаний критерій комбінаторного покриття умов (див. Табл. 4.3).
Таблиця 4.3. Комбинаторное покриття умов тестами чорного ящика
МодульЕлементарное условіеНомера тестовІстінаЛожьmainif ((n gt; 0 ) amp; amp; (n lt; 5 )) 12, 3main if (file == NULL) 54PUN2for (j=0; j lt ; 6; j ++) {if ((j == 0) || (j == 4) || (j == 5)) {if ((r [j] lt; A ) || (r [j] gt; Z )) p ++;} else if ((r [j] lt; 0 ) || (r [j] gt; 9 )) p ++; } 6,78PUN3 if (strcmp (tab [j] .marka, mar) == 0) 9,10
Література
. Хохлов Д.Г. Основи технології модульного програмування. Навчальний посібник.- Казань. Изд-во Казан. держ. техн. ун-ту, 2005. - 63 с.
. Хохлов Д.Г. Структури даних і комбінаторні алгоритми. Навчальний посібник.- Казань: Изд-во Казан. держ. техн. ун-ту, 2005. - 102 с.
3. Хохлов Д.Г., Захарова З.Х. Практикум з структурам даних і комбінаторним алгоритмам: Навчальний посібник Казань: Изд-во Казан. держ. техн. ун-ту, 2005. - 48 с.
4. Бікмурзіна А.Р. Лабораторний практикум з програмування.- Казань: Изд-во Казан. держ. техн. ун-ту, 2000р.
Додаток 1
Текст програми
# include lt; stdio.h gt;
# include lt; conio.h gt;
# include lt; string.h gt;
# include lt; stdlib.h gt;
# include lt; math.h gt;
# define MAX 100BAZA