You are on page 1of 6

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ імені Тараса Шевченка


ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Кафедра програмних систем і технологій

Дисципліна
«Якість ПЗ та тестування»

Лабораторна робота №6

на тему:
«Тестування методом «Білого ящика»

Виконав: Кивлюк Юрій Олегович Перевірив: Олексій Васильєв

Група ІПЗ-31 Дата перевірки

Форма навчання денна


Оцінка
Спеціальність 121

2023
Варіант – 2

2. Даний цілочисельний масив A розміру 10. Вивести порядковий номер


останнього з тих його елементів AK, які більші від першого, але менші від останнього
елементу. Якщо таких елементів немає, то вивести 0.

Завдання:
Програма, що підлягає тестуванню, складається відповідно до завдання для
лабораторної
роботи
Виконання роботи передбачає наступну послідовність дій:
1. Побудова потокового графа програми;
2. Визначення цикломатичної складності потокового графа;
3. Побудовабазової множини незалежних лінійних шляхів;
4. Складання тестових варіантів;
5. Виконання тестування;
6. Оформлення результатів тестування.
Якщо в програмі немає помилок, то штучно вводяться помилки для перевірки
ефективност тестування
У звіт по лабораторній роботі включаються:
1. Текст програми;
2. Потоковий граф;
3. Розрахунок цикломатичної| складності;
4. Множина незалежних лінійних шляхів;
5. Тестові варіанти;
6. Результати тестування.
7. У висновках до роботи описати помилки – мутації, якщо вони були виявлені.
Зазначити шляхи їх усунення.

Кожен тест необхідно супроводити відповідним скрін-шотом.

Виконання:
Реалізацію програми будемо проводити на мові C#. Відповідно до варіанту
розробимо програмний код:
Код на C#:

using System;

class Program
{
static void Main(string[] args)
{
int[] arr = new int[10]; // {1}
bool isCorrectInput = false; // {1}
while (!isCorrectInput) // {2}
{
Console.WriteLine("Введіть 10 цілочислельних значень через пробіл:");// {2}
string input = Console.ReadLine(); // {2}
string[] stringArr = input.Split(' '); // {2}

if (stringArr.Length == 10) // {3}


{
bool isAllCorrect = true; // {3}
for (int i = 0; i < stringArr.Length; i++) // {4}
{
if (!int.TryParse(stringArr[i], out arr[i])) // {5}
{
Console.WriteLine($"елемент {i + 1} не цілочисельний."); // {5}
isAllCorrect = false; // {5}
break; // {5}
}
}
if (isAllCorrect) // {6}
{
isCorrectInput = true; // {6}
}
}
else // {3}
{
Console.WriteLine("Невірна кількість елементів масиву."); // {3}
}
}

int first = arr[0]; // {7}


int last = arr[arr.Length - 1]; // {7}
int result = 0; // {7}

for (int i = 0; i < arr.Length; i++) // {8}


{
if (arr[i] > first && arr[i] < last) // {9}
{
result = i + 1; // {9}
}
}

Console.WriteLine($"відповідь по умові задачі: {result}"); // {10}


}
}

Розробимо потоковий граф:

В знайденому графі ми маємо:


1) 10 вершин (вузлів), позначених кружками;
2) 14 дуг, що відображають потік управління в програмі;
3) 4 предикатних вузла.
4) 5 регіонів: замкнуті області, утворені дугами і вузлами (позначені як R1, R2, R3, R4) і
оточуюче граф середовище (R5).

Розрахунок цикломатичної складності:

Її можна визначити одним із наступних способів:


1) цикломатична складність дорівнює кількості регіонів потокового графа.
Ми маємо 5 регонів, отже V(G) =5.
2) V(G) = E – N + 2, де E - кількість дуг потокового графа; N - кількість вузлів потокового
графа.
V(G) = 13 – 10 + 2 = 5.
3) V(G) = p + 1, де p - кількість предикатних вузлів в потоковому графі G.
V(G) = 4 + 1 = 5.

За кожним способом цикломатична складність дорівнює 5.

Множина незалежних лінійних шляхів:

Програма реалізована з безкінечним початковим циклом перевірки, в якому закладено


всього дві перевірки правильності (на довжину та цілочисельність).

Шлях 1: 1–2–3–2–3–4–5–4–6–2–7–8–9–10.
Шлях 2: 1–2–3–4–5–4–6–1–2–3–4–5–4–6–2–7–8–9–10.
Шлях 3: 1–2–7–8–9–10.
Шлях 4: 1–2–3–2–7–8–9–10.

Тестові варіанти.
1)
Початкові дані Очікувані результати
Виведено повідомлення про некоректну
Користувач ввів масив не 10 по довжині.
довжину масиву.

2)
Початкові дані Очікувані результати
Введений 10 по довжині, але число в масиві Виведено помилку про
було не цілочисельним. нецілочисельність числа.

3)
Початкові дані Очікувані результати
Користувач ввів 10 елементів всі
цілочисельні без підходящого елементу за Буде виведено «0».
умовою.

4)
Початкові дані Очікувані результати
Користувач ввів 10 елементів всі
Буде виведено повідомлення з номером
цілочисельні з підходящим елементом за
елементу масиву.
умовою.
Результати тестування:
1)

2)

3)

4)

Висновок:
При виконанні даної лабораторної роботи було виконано завдання з метою
оволодіння тестування методом «білого ящика».
Під час тестування було побудовано потоковий граф програми, визначено
цикломатичну складность потокового графа, побудову базового набору незалежних
лінійних шляхів, складання тестових випадків, виконання тестування та реєстрацію
результатів тестування.
Було визначено цикломатичну складність програми за допомогою трьох методів, і
всі вони дали однаковий результат, а саме 5. Було створено незалежні лінійні шляхи для
програми, що дозволило побудувати повний набір тестів, які охопив усі можливі
програмні шляхи.
При тестуванні було введено певні штучні помилки, та їх циклічне повторення,
програма показала стійкість до помилок та підтвердила спрожність виведення коректного
результату.
Загалом процес тестування дозволяє виявити й усунути потенційні помилки в
програмі, що покращить надійність і точність програми.

You might also like