Самостійна робота №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. Охарактеризуйте метод
тестування «сірого ящика»?