Тема. Тестування
«чорного ящика»
План
1.
Особливості тестування.
2.
Способи тестування.
1.
Особливості тестування
Відомі: функції програми.
Досліджується: робота кожної функції на всій області визначення.
Основне
місце програми тестів «чорного ящика» — інтерфейс ПЗ.
Ці тести демонструють:
ü Як виконуються функції програми.
ü Як приймаються вихідні дані.
ü Як виробляються результати.
ü Як зберігається цілісність зовнішньої
інформації.
Під час тестування «чорного ящика» розглядаються системні
характеристики програм, ігнорується їх внутрішня логічна структура. Вичерпне тестування, як правило, неможливе. Наприклад,
якщо в програмі 10 вхідних величин і кожна приймає по 10 значень, то буде потрібно
10 10 тестових варіантів. Тестування «чорного ящика» не реагує на багато особливосей програмних помилок.
Тестування
«чорного ящика» (функціональне тестування) дозволяє отримати комбінації вхідних
даних, які забезпечують повну перевірку всіх функціональних вимог до програми. Програмний виріб тут розглядається як
«чорний ящик», чия поведінка може
визначитись тільки дослідженням його входів і
відповідних виходів.
При такому підході бажано мати:
Ø Набір, утворений такими вхідними даними, які
призводять до аномалій у поведінці програми
(назвемо його IT).
Ø Набір, утворений такими вхідними даними, які
демонструють дефекти програми (назвемо його OT).
Будь—який спосіб тестування «чорного ящика»
повинен:
Ø Виявити такі вхідні дані, які з високою
ймовірністю належать набору IT.
Ø Сформулювати такі очікувані результати, які з
високою імовірністю є елементами набору OT.
У
багатьох випадках визначення таких тестових варіантів грунтується на попередньому досвіді інженерів тестування. Вони використовують своє знання
і розуміння області
визначення для ідентифікації тестових варіантів, які ефективно виявляють дефекти. Тим не менш систематичний підхід до
виконання тестових даних може використовуватися як корисне доповнення до
евристичного знання.
Принцип
«чорного ящика» не альтернативний принципу
"білого ящика". Скоріше
це доповнює підхід, який виявляє інший клас помилок.
Тестування «чорного ящика» забезпечує пошук
наступних категорій помилок:
üНекоректних чи відсутніх функцій.
üПомилок інтерфейсу.
üПомилок у зовнішніх структурах даних або в
доступі до зовнішньої базі даних.
üПомилок характеристик (необхідна ємність пам'яті
і т.д.).
üПомилок ініціалізації та завершення.
Подібні
категорії помилок способами «білого ящика» не
виявляються.
На
відміну від тестування «білого ящика», що виконується на ранній стадії процесу
тестування, тестування «чорного
ящика» застосовують на пізніх стадіях тестування. Під час тестування «чорного ящика» нехтують керуючою структурою
програми. Тут увага
концентрується на інформаційній галузі визначення програмної системи.
Техніка «чорного ящика» орієнтована на
вирішення наступних завдань:
Ø Скорочення необхідної кількості тестових
варіантів (через перевірки не статистичних,
а динамічних аспектів системи).
Ø Виявлення класів помилок, а не окремих помилок.
2. Способи тестування
Спосіб розбиття за еквівалентністю.
Розбиття за еквівалентністю —
найпопулярніший спосіб тестування «чорного ящика».
У цьому
способі вхідну область даних програми ділять на класи еквівалентності. Для кожного класу еквівалентності розробляється
один тестовий варіант.
Клас
еквівалентності — набір даних із
загальними властивостями. Обробляючи
різні елементи класу, програма повинна вести себе однаково. Інакше кажучи, під час обробки будь-якого набору з класу еквівалентності в
програмі задіюється один і той же набір операторів (і зв'язків між ними).
Класи
еквівалентності можуть бути визначені за
специфікацією на програму.
Клас
еквівалентності включає безліч значень даних, допустимих або неприпустимих за
умовами введення.
Умова введення може задавати:
ü Певне значення.
ü Діапазон значень.
ü Безліч конкретних величин.
ü Булеву умову.
Сформулюємо правила формування класів
еквівалентності.
1. якщо умова введення задає діапазон n ... m,
то визначається один допустимий і два неприпустимих класи еквівалентності;
2. якщо умова введення задає конкретне значення
a, то визначається один допустимий і два неприпустимих класи еквівалентності;
3. якщо умова введення задає безліч значень {a,
b, c}, то визначається один допустимий і один неприпустимий клас
еквівалентності;
4. якщо умова введення задає логічне значення,
наприклад true, то визначається один допустимий і один неприпустимий клас
еквівалентності.
Після
побудови класів еквівалентності розробляються тестові варіанти.
Тестовий
варіант вибирається так, щоб перевірити відразу найбільшу кількість
властивостей класу еквівалентності.
Спосіб аналізу граничних значень
Як
правило, більша частина помилок відбувається на кордонах області введення, а не
в центрі. Аналіз граничних
значень полягає в отриманні тестових варіантів, які аналізують граничні
значення. Даний спосіб тестування
доповнює спосіб розбиття за
еквівалентністю.
Основні відмінності аналізу граничних значень
від розбиття за
еквівалентністю:
ü тестові варіанти створюються для перевірки
тільки ребер класів еквівалентності;
ü під час створення тестових варіантів враховують не тільки
умови введення, а й область виводу.
Сформулюємо правила аналізу граничних значень.
1. якщо умова введення задає діапазон n ... m,
то тестові варіанти повинні бути побудовані:
1. Для значень n і m.
2. Для значень трохи лівіше n і трохи правіше m
на числовій осі.
2. Якщо умова введення задає дискретну
безліч значень, то створюються тестові варіанти:
1. Для
перевірки мінімального і максимального із значень.
2. Для
значень трохи менше мінімуму та трохи більше максимуму.
3. Правила 1 і 2 застосовуються до умов
області виведення.
4. Якщо внутрішні структури
даних програми мають
визначені межі, то розробляються тестові варіанти, що повторюють ці структури
на їх межах.
5. Якщо вхідні або вихідні дані програми
є впорядкованими множинами (наприклад, послідовним файлом, лінійним списком, таблицею), то треба тестувати обробку першого і
останнього елементів цих множин.
Більшість
розробників використовують цей спосіб інтуїтивно. При застосуванні описаних правил
тестування цих кордонів буде більш повним, у зв'язку з чим зросте ймовірність
виявлення помилки.
Спосіб діаграм причин-наслідків.
Діаграми
причинно-наслідкових зв'язків — спосіб проектування
тестових варіантів, який забезпечує формальний запис логічних умов відповідних дій. Використовується автоматний підхід до вирішення завдання.
Кроки способи:
Ø Для кожного модуля перераховуються причини
(умови введення або класи еквівалентності умов введення) і слідства (дії або
умови виводу). Кожній причині і наслідку присвоюється свій ідентифікатор.
Ø Розробляється граф причинно-наслідкових зв'язків.
Ø Граф перетворюється в таблицю рішень.
Ø Стовпці таблиці рішень перетворюються на тестові
варіанти.
Питання для самоконтролю:
1. У чому полягає
особливість тестування?
2. Назвіть переваги
тестування?
3. Назвіть недоліки тестування?
4. Відмінність між «білим»
та «чорним» ящиками.
5. Які Ви знаєте способи
тестування?