Лабораторна робота №3
Тема: тестування методом “білого ящика”
Мета: отримати практичні навички виконання методів аналізу коду: визначення цикломатичної складності потокового графу, побудувати множини лінійних шляхів.
Завдання: Даний одновимірний масив А1, А2 ., А10 цілих чисел.
Отримати найменше серед А1+А6, А2+А7 ., А5+А10.
Лістинг:
#include<iostream.h> void main()
{
Потоковий граф. Цикломатична складність потокового графа. Базова множина незалежних
лінійних шляхів.
1)V(G)= 5 регіонів
2)V(G)= 19 дуг -16 вузлів + 2 = 5
3)V(G)= 4 пред.уз.+1 = 5
Шлях 1: 1-2-3-5-6-7-10-11-12-16 Шлях 2: 1-2-3-4-3-5-6-7-10-11-12-16
Шлях 3: 1-2-3-4-3-5-6-7-8-7-10-11-12-16 Шлях 4: 1-2-3-4-3-5-6-7-8-9-7-10-11-12-13-15-12-16
Шлях 5: 1-2-3-4-3-4-5-6-7-8-9-7-10-11-12-13-14-15-12-16
Тестові варіанти, що ініціюють виконання кожного шляху.
ТВ1: неможливий оскільки 3 умова не виконається, не може із-за того що i привласнюється значення рівне 0 і він не може виявитися відразу рівним або більше 10.
ТВ2: неможливий оскільки в 7 умові відбувається теж саме що і в третій умові.
ТВ3: неможливий оскільки в 12 умові відбувається теж саме що в третій і сьомій умові.
ТВ4: ВД: а[1,2,3,4,5,6,7,8,9,10]
Очікуваний результат: MIN 7
ТВ5: ВД: а[40,90,80,70,20,50,60,80,90,10]
Очікуваний Результат: MIN: 30
УТВ4 ввели вихідні дані і одержали очікуваний результат (Рисунок 1.)
УТВ5 такий масив цифр: 40,90,80,70,20,50,60,80,90,10 після виконання програми вона видала результат такій же як і в Очікуваному результаті (Рисунок 2.)
Дана програма працює нормально. Тепер в 14 рядку програми (min_a[i]=a[i]+a[10/2+i];) заміню число 10 на 8 і пройду тестові варіанти знову:
ТВ4: вихідні дані
Вихідні дані не збіглися (Рисунок 3.) при першому ж тестовому варіанті помилка виявилася.
Зробимо тепер п'ятий тестовий варіант.
ТВ5: У ТВ5 такий масив цифр:40,90,80,70,20,50,60,80,90,10 після виконання програми очікуваний результат на збігся (Рисунок 4.), помилка також виявилася