Файл: методичка, тестування.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 13.04.2024

Просмотров: 19

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Міністерство освіти і науки України

Сумський державний університет

Машинобудівний коледж

Методичні рекомендації

до самостійної роботи судентів

з дисципліни

«Тестування програмних систем і комплексів»

для студентів 4 курсу спеціальності 5.05010101

«Обслуговування програмних

систем і комплексів»

2013 - 2014

КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Існують два принципи тестування програми:

  • функціональне тестування (тестування «методом чорного ящика»);

  • структурне тестування (тестування «методом білого ящика»).

Для тестування «методом чорного ящика» відомих функції програми, досліджується робота кожної функції на всій області визначення.

Тести демонструють:

  • як виконуються функції програми;

  • як приймаються вихідні дані;

  • як обраховуються результати;

  • як зберігається цілісність зовнішньої інформації.

Вичерпне тестування, як правило, неможливо, тести не реагують на багато особливостей програмних помилок.

Для тестування «методом білого ящика» має бути відома внутрішня структура програми, досліджуються внутрішні елементи програми і зв'язок між ними. Вичерпне тестування також майже неможливо.

Методи тестування

«методом білого ящика»

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


Для цього формуються тестові варіанти, у яких:

  • гарантується перевірка всіх незалежних маршрутів програми;

  • проходяться гілки True, False для всіх логічних рішень;

  • виконуються всі цикли (у межах іх діапазонів);

  • аналізується слушність внутрішніх структур даних.

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

  • кількість незалежних маршрутів може бути дуже великою. Наприклад, якщо цикл виконується k разів, а в середині циклу є n розгалужень, то кількість маршрутів можна розрахувати по формулі:

При n = 5 и k = 20 - m = 1014.

  • вичерпне тестування маршрутів не гарантує відповідності програми вихідним вимогам до неї;

  • у програмі можуть бути пропущені деякі маршрути;

  • не можна виявити помилки, поява яких залежить від оброблюваних даних

Переваги тестування «методом білого ящика» зв'язані з тим, що дозволяють врахувати особливості програмних помилок:

Кількість помилок мінімальна в «центрі» і максимальна на «периферії» програми.

Попередні припущення про імовірність потоку керування або даних у програмі часто бувають некоректні. У результаті типовим може стати маршрут, модель обчислення по якому пророблена слабко.

При записі алгоритму ПЗ у виді тексту на мові програмування можливе внесення типових помилок трансляції (синтаксичних і семантичних).

Деякі результати в програмі залежать не від вихідних, а від внутрішніх станів програми.

Тести «методом чорного ящика» не реагують на помилки н. ступного характеру.

Спосіб тестування базового шляху

Спосіб тестування базового шляху дає можливість:

  • одержати оцінку комплексної складності програми;

  • використовувати цю оцінку для визначення необхідної кількості тестових варіантів. Тестові варіанти гарантують однократне виконання кожного оператора програми при тестуванні.

Для уявлення програми використовується потоковый граф. Граф відображає керуючу структуру програми. Скобки, що закривають умовні оператори і цикли (end if, end loop) розглядаються як окремі (фіктивні) оператори.


Вузол (вершина) потокового графа відповідає лінійній ділянці програми і включає один або декілька операторів.

Дуги (орієнтовані ребра) потокового графа відображають потік керування в програмі (передача керування між операторами).

Розрізняють операторні і предикатні вузли. З операторного вузла виходить одна дуга, а з предикатного - дві дуги.

Предикатні вузли відповідають простим умовам у програмі. Складовим називається умова, у якої використовуються булеві операції ( OR, AND).

Замкнуті області, утворені дугами і вузлами, називаються регіонами.

Навколишнє середовище розглядається як виконавчий регіон.

Наприклад, фрагмент програми:

if a OR b then x else y; z;

де x, y і z – оператори привласнення буде відображений потоковим графом:

Цикломатична складність - це метрика ПЗ, що забезпечує кількісну оцінку логічної складності програми. У способі тестування базового шляху цикломатична складність визначає:

  • кількість незалежних шляхів у базовій множині програми;

  • верхню оцінку кількості тестів, що гарантує однократне виконання всіх операторів.

Незалежним називається будь-який шлях, що вводить новий оператор опрацювання або нову умову (повинна містити дугу, що не входить у раніше визначені шляхи).

Всі незалежні шляхи графа утворять базову множину. Тести, що забезпечують її перевірку, гарантують:

  • однократне виконання кожного оператора;

  • виконання кожної умови по true-гілці і false-гілці;

  • потужність базової множини дорівнює цикломатичної складності потокового графа.

Цикломатична складність обчислюється одним із трьох способів:

  • дорівнює кількості регіонів потокового графа;

  • визначається по формулі V(G) = E - N + 2, де E - кількість дуг, N - кількість вузлів потокового графа;

  • визначається по формулі V(G) = p + 1, де p - кількість предикатних вузлів у потоковому графі.

Кроки способу тестування базового шляху

Розглянемо процедуру обчислення середнього значення позитивних чисел масиву.


Мал. 1 Аналіз тексту програми

Мал. 2 Потоковий граф програми

Крок 1. На основі програми формується потоковий граф.

Крок 2. Визначення цикломатичної складності потокового графа:

V(G) = 6 регіонів;

V(G) = 18 дуг - 14 вузлів + 2 = 6;

V(G) = 5 пред. вуз. + 1 = 6.

Крок 3. Визначається базова множина незалежних лінійних шляхів.

Шлях 1: 1 - 2 - 11 - 13 - 14

Шлях 2: 1 - 2 - 11 - 12 - 14

Шлях 3: 1 - 2 - 3 - 4 - 6 - 7 -11 - 12 - 14

Шлях 4: 1 - 2 - 3 - 4 - 6 - 7 - 11 - 13 - 14

Шлях 5: 1 - 2 - 3 - 4 - 5 - 4 - 6 - 7 - 11 - 12 - 14

Крок 4. Підготовляються тестові варіанти, що ініціюють виконання кожного шляху. Кожний тестовий варіант формується в наступному виді:

Вихідні дані (ВД);

Очікувані результати ( Оч. РЕЗ).

Вихідні дані вибираються так, щоб предикатні вершини забезпечували потрібні переключення, - запуск тільки тих операторів, що перераховані в конкретному шляху й у необхідному порядку.

Наприклад:

Тестовий варіант для шляху 1 ТВ1:

ВД n = 0 або n < 0

Оч. РЕЗ Sr = 0

Тестовий варіант для шляху 2 ТВ2:

Неможливий. Перевірка вузла 12 буде виконана в шляху 3.

Функціональне тестування ПЗ (тестування «методом чорного ящика»)

Функціональне тестування дозволяє одержати комбінацію вхідних даних, що забезпечують повну перевірку усіх функціональних вимог до програми. При такому підході бажано мати:

  • набір, утворений такими вхідними даними, що приводять до аномалій поводження програми ;

  • набір, утворений такими вихідними даними, що демонструють дефекти програми.

Принцип «метода чорного ящика» не альтернативний принципу «метода білого ящика», оскільки він виявляє інший клас помилок.

Тестування «методом чорного ящика» забезпечує пошук наступних категорій помилок:

  • некоректних або відсутніх функцій;

  • помилок інтерфейсу;

  • помилок у зовнішніх структурах даних або доступі до зовнішньої бази даних;

  • помилок характеристик (необхідна ємність пам'яті і т.п.);

  • помилок ініціалізації і завершення.


Ці категорії помилок способами «методу білого ящика» не виявляються.

На відміну від тестування «методом білого ящика» тестування «методом чорного ящика» робиться на пізніх стадіях тестування.

Техніка «методу чорного ящика» орієнтована на рішення наступних задач:

  • скорочення необхідної кількості тестових варіантів (через перевірку не статичних, а динамічних аспектів системи);

  • виявлення класів помилок, а не окремих помилок.