отчет лабок / яша / Тестування_ЛР_2
.docxМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
СУМСЬКИЙ МАШИНОБУДІВНИЙ КОЛЕДЖ
ЗВІТ ПРО ВИКОНАННЯ
ЛАБОРАТОРНОЇ РОБОТИ № 2
із дисципліни: «Тестування програмних систем і комплексів»
Варіант 4
Перевірила Антипенко Вiкторiя
Суми 2020
ЛАБОРАТОРНА РОБОТА №2
Тема: тестування програми методом “білого ящика”
Мета: отримати практичні навички виконання методів аналізу коду: визначення цикломатичної складності потокового графу, побудувати множини лінійних шляхів
ХІД РОБОТИ
Завдання 1.
Код:
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
int r , array[] = { 3, 2, 16, 23, 11, 5, 23, -5, 12,1 };
printf("введите r\n");
scanf("%d", &r);
printf("%d %d %d %d %d%d %d %d %d %d\n", array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9]);
unsigned idx = 0, diff = UINT_MAX;
for(int i = 0; i < (sizeof(array) / sizeof(int)) - 1; ++i)
{
if((array[i] + array[i + 1] - r) < abs(diff))
{
idx = i;
diff = abs((array[i] + array[i + 1] - r));
}
}
printf("Cумма %d и %d наиболее близка числу %d\n", array[idx], array[idx + 1], r);
return EXIT_SUCCESS;
}
Результат роботи
потоковий граф програми
Визначення цикломатичної| складність потокового графа
1 Считуем r
3 заполнение масива
4 Вывод маисва
5 i=0
6 проверяем i < sizeof / sizeof(int)) - 1
7 проверяем array[i] + array[i + 1] - r) < abs(diff)
8 idx = i;
9 находим diff
11 вывод елеменотв
V(G)= 10-9+2=3
V(G)=3
V(G)=2+1=3
Определение базового множества независимых путей
Путь 1: 1-2-3-4-9
Путь 2: 1-2-3-4-5-6-5-9
Путь 3: 1-2-3-4-5-6-7-8-5-9
Подготовка тестовых вариантов:
ТВ1:
ИД: i > (sizeof(array) / sizeof(int)) - 1;
ОР: невозможно, т.к. i < (sizeof(array) / sizeof(int)) - 1;;.
ТВ2:
ИД: if((array[i] + array[i + 1] - r) >abs(diff))
ОР: невозможно, т.к. diff = UINT_MAX;.
ТВ3:
ИД: i <(sizeof(array) / sizeof(int)) - 1;- для первого прохода внешнего цикла
if((array[i] + array[i + 1] - r) <abs(diff))– для второго прохода внешнего цикла
ОР: diff и idx принимает определенное значение
№ тесту |
Умова, яка тестується |
Очікуваний результат |
Фактичний результат
|
1 |
i <(sizeof(array) / sizeof(int)) - 1;
if((array[i] + array[i + 1] - r) <abs(diff))– |
Diff и idx принимает определенное значение |
|
Висновок: на лабораторній роботі навчився виконувати методи аналізу коду: визначення цикломатичної складності потокового графу, побудувати множини лінійних шляхів