Самостійна робота №8

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

Мета:Продовжити формування знань про тестування методом «сірого» ящика

 

План

1.  Тестування методами «білого» і «чорного» ящиків.

2.  Особливості тестування «сірого ящику».

 

Кожен початківець тестувальник чув про методи тестування black-box, white-box та gray-box (методи трьох «ящиків»). Спробую трохи виправити становище, що склалося, детально розглянувши плюси і мінуси «сірого ящика» в порівнянні з двома іншими методами і з'ясувавши, в яких випадках його застосування буде найбільш ефективним. Тестування «сірого ящика» поєднує в собі елементи black-box та white-box тестування, а тому почну свою розповідь з короткої характеристики кожного з методів. 

Black-box

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

Переваги методу:

ü Швидко виявити помилки в функціональних специфікаціях;

ü тестувальнику не потрібна додаткова кваліфікація;

ü Тестування проходить «з позиції» користувача;

ü Складати тест-кейси можна відразу після підготовки специфікації.

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

v  функціональне; 

v  регресійні; 

v  usability; 

v  smoke; 

v  GUI.

На жаль, використання цього методу далеко не завжди є достатнім при тестуванні, так як існує висока ймовірність пропуску помилки. 

White-box

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

Тестування в «білому ящику» включає в себе кілька типів тестування, що застосовуються для оцінки зручності використання програми, блоку коду або конкретного програмного пакету:

ü Unit-тестування; 

ü інтеграційне; 

ü системне; 

ü тестування безпеки.

Як правило, таким видом тестування на проектах займаються самі програмісти, адже для використання цього методу тестувальник повинен володіти достатньо високою кваліфікацією.

Переваги методу «білого ящика»:

Ø  Оптимізація коду шляхом знаходження прихованих помилок.

Ø  Доступність структури коду дозволяє вибрати тип вхідних даних, необхідних для ефективного тестування.

Ø  Можливість автоматизації тест-кейсів.

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

Gray-box

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

Види тестування «сірого ящика»:

Ø  Матричне тестування. 

Ø Регресійне тестування. 

Ø Шаблонне тестування (pattern). 

Ø Тестування за допомогою ортогонального масиву.

Переваги методу:

1.     Тестування сірого ящика включає в себе плюси тестування «чорного» і «білого». Іншими словами, тестувальник дивиться на об'єкт тестування з позиції «чорного» ящика, але при цьому проводить аналіз на основі тих даних, що він знає про систему.

2.     Тестувальник може проектувати і використовувати більш складні сценарії тестування.

3.     Тестувальник працює спільно з розробником, що дозволяє на початковому етапі прибрати надлишкові тест-кейси. Це скорочує час функціонального і нефункціонального тестування і позитивно впливає на загальну якість продукту.

4.     Надає розробнику достатньо часу для виправлення дефектів.

Недоліки методу:

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

2.     Тести можуть бути надмірними в тому випадку, коли розробник також перевіряє свій код Unit-тестами.

3.     Не можна протестувати всі можливі потоки введення і виведення, оскільки на це потрібно занадто багато часу

 

У нашому прикладі у кожного клієнта міг бути набір додаткових функцій (capabilities):

ü  «can_vpn» - клієнт міг підключитися до VPN;

ü  «can_double_vpn» - клієнт отримував можливість підключитися до VPN, використовуючи функцію DoubleVPN;

ü  «can_port_forward» - клієнт мав додатковий порт для вхідних підключень на стороні сервера;

ü  «can_promo1» - клієнт мав доступ до дружнього сервісу.

 

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

Ø  коли немає можливості використовувати «білий ящик»; 

Ø  коли необхідно більш повне покриття в порівнянні з «чорним ящиком».

Використовуючи цей метод, тестувальники отримують доступ до проектної документації і можуть підготувати і створити більш точні і повні тест-кейси і сценарії тестування. Найбільша ефективність застосування «сірого ящика» досягається при тестуванні web-додатків, web-сервісів, безпеки, GUI, а також для функціонального тестування.

 

Питання для самоконтролю

1. Особливості методу тестування «чорного ящика»?

2. Переваги та недоліки методу тестування «білого ящика»?

3. Охарактеризуйте метод тестування «сірого ящика»?