Warning: Parameter 1 to wp_default_scripts() expected to be a reference, value given in /home/qalight/qalight.com.ua/lviv/wp-includes/plugin.php on line 601

Warning: Parameter 1 to wp_default_styles() expected to be a reference, value given in /home/qalight/qalight.com.ua/lviv/wp-includes/plugin.php on line 601
White / Black / Grey Box тестування - QALight

База знань

White / Black / Grey Box тестування

Найвищим рівнем в ієрархії підходів до тестування буде поняття типу, яке може охоплювати відразу декілька суміжних технік тестування. Тобто, одному типу тестування може відповідати кілька його видів. Якщо розглядати типи тестування в залежності від знання внутрішнього устрою програми, сайту або будь-якого іншого об’єкта тестування, то поділ відбувається на три типи: White Box (external), Black Box (internal) та їх комбінація – Grey Box. Чим же вони відрізняються і як не загубитися в цих назвах новачкові.
blackgreywhitebox

Black Box testing

Black box testing (тестування методом “чорного ящика”) –  проведення функціонального тестування без відкритого доступу до коду системи. Грунтується на знанні тестувальником тільки вимог і специфікацій до  продукту, що розробляється, а також світових стандартів. При здійсненні цього типу тестування, не має значення як реалізовано ПЗ, коректність написаного коду та алгоритмів. Саме тому, тестувальнику не потрібно володіти знаннями в області програмування, він дивиться на продукт з точки зору кінцевого користувача. Простіше кажучи, коли клієнт користується продуктом, він не має знань, як він працює, які процеси відбуваються в залізі в ті моменти, коли він ним користується. Але він точно може сказати, подобається йому, як працює комп’ютер, чи ні. Так само відбувається і з розробленими програмами, іграми, сайтами і т.д. Оскільки це тип тестування, за визначенням він може включати інші його види. Тестування “чорного ящика” може бути як функціональним, так і нефункціональним. Функціональне тестування передбачає перевірку роботи функцій системи, а нефункціональне – відповідно, загальні характеристики нашої програми.

Згідно ISTQB:

Тестування “чорного ящика”- це:

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

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

Переваги:

– тестування проводиться з позиції кінцевого користувача і може допомогти виявити неточності і протиріччя в специфікації;

– тестувальнику немає необхідності знати мови програмування і заглиблюватися в особливості реалізації програми;

– тестування може проводитися фахівцями, незалежними від відділу розробки, що допомагає уникнути упередженого ставлення;

– можна починати писати тест-кейси, як тільки готова специфікація.

Недоліки:

– не бачачи вихідний код, не розуміючи за яким алгоритмом був розроблений той чи інший функціонал, які моменти не були враховані в розробці, глибина тестів може бути недостатньою, легко втратити моменти, коли може виникнути помилка при роботі з ПЗ;

– без чіткої специфікації (а це швидше за реальність на багатьох проектах) досить важко скласти ефективні тест-кейси;

 

White Box Testing

White box testing (тестування методом “білого ящика”) є повною протилежністю техніки “чорного ящика” .

Це проведення функціонального тестування з відкритим доступом до коду системи. Грунтується на знанні тестувальником програмного коду продукту, розуміння алгоритму його роботи, структури та реалізації. Такий тип тестування вимагає знань програмування і здійснюється в основному саме програмістами, які розуміють як реалізована програма зсередини, розуміють алгоритми роботи програми, читають код і здатні знайти помилки в його роботі. В такому випадку, тестувальник вибирає вхідні значення, грунтуючись на знанні коду, який буде їх обробляти. Так саме він знає, яким повинен бути результат цієї обробки. 

Згідно ISTQB:

Тестування “білого ящика” – це:

– Тестування, засноване на аналізі внутрішньої структури компонента або системи.

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

Чому «білий ящик» (скляний, прозорий)?  Тому, що тестована програма для тестувальника, як прозорий ящик, вміст якого він прекрасно бачить.

Тестування методом білого ящика схоже на роботу механіка, який вивчає двигун машини, щоб зрозуміти, чому вона не заводиться. Техніка “білого ящика” застосовується на різних рівнях тестування – від модульного (unit тестування) до системного, але звичайно ж, простіше застосовувати його тоді, коли модулі тільки розроблені і не злиті в єдину систему.

Переваги:

– тестування може проводитися на ранніх етапах: немає необхідності чекати створення призначеного для користувача інтерфейсу;

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

Недоліки:

– для виконання тестування “білого ящика” необхідна велика кількість спеціальних знань;

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

 

Grey Box Testing

У цьому типі тестування нам відомі тільки деякі особливості реалізації  системи, що тестується. Грунтується, на знанні комбінації двох попередніх типів тестування, коли тестувальник в загальних рисах розуміє, як реалізований той чи інший функціонал на рівні коду, але тестує продукт з точки зору кінцевого користувача. Даний тип тестування дозволяє покрити продукт більш повними і глибокими тестами, щоб гарантувати якість продукту при різній поведінці користувачів. Такий підхід вимагає тісного контакту групи тестування з групою розробки. Цю техніку тестування також називають “методом напівпрозорого ящика”: щось ми бачимо, а що – ні.

Наприклад : тестувальник вивчає код програми з тим, щоб краще розуміти принципи її роботи і вивчити можливі шляхи її виконання. Таке знання допоможе написати тест кейс, який напевно буде перевіряти певну функціональність. Техніка “сірого ящика”, застосовується на різних рівнях тестування – від модульного до системного, але головним чином застосовується на інтеграційному рівні, для перевірки взаємодії різних модулів програми.

 

Набагато більше інформації на курсі базовий модуль тестування