У тестуванні програмного забезпечення виділяють три основні методи, які визначають рівень доступу тестувальника до внутрішньої структури системи: White Box, Black Box та Grey Box тестування. Кожен з них має своє застосування та підходить для різних ситуацій. Цей допис містить короткий огляд зазначених методів тестування ПЗ.
White Box Testing
Тестування методом білої скриньки передбачає, що внутрішні структура та реалізація системи відомі тому, хто її тестує (іншими словами, наявне розуміння як працює тестоване програмне забезпечення “під капотом”).
Під час White Box Testing, вхідні значення обираються ґрунтуючись на знанні коду, який буде їх обробляти. Так само відомо яким повинен бути результат цієї обробки.
White Box застосовується на різних рівнях тестування – модульному, інтеграційному та системному, але частіше застосовується для unit-тестування ділянки коду самим розробником або SDET (Software Engineer in Test).
Переваги:
- тестування може проводитись вже на ранніх етапах розробки, оскільки відсутня необхідність чекати створення інтерфейсу користувача
- можна провести більш ретельне тестування, з покриттям великої кількості шляхів виконання програми
Недоліки:
- тестувальник повинен мати навички програмування, щоб зрозуміти та оцінити програмне забезпечення що тестується
Black Box Testing
Тестування методом чорної скриньки базується виключно на вимогах та специфікаціях, без знання як влаштована система зсередини. Тестувальник взаємодіє з інтерфейсом користувача, вводить дані та перевіряє результати, не маючи уявлення про те, як і де ці дані обробляються.
Переваги:
- не потребує спеціальних знань програмування
- тестування можна починати після завершення розробки проекту (тестувальники і розробники працюють незалежно)
- наближене до реальної взаємодії користувача з системою
Недоліки:
- складніше визначити причину виникнення помилки
- в обумовлений час не завжди є можливість протестувати всі необхідні вхідні та вихідні значення
- без наявності технічних або програмних знань, є вірогідність пропустити специфічні умови виконання певних частин коду, для тестування системи
Grey Box Testing
Тестування методом сірої скриньки передбачає комбінацію White Box та Black Box підходів (або доповнену чорну скриньку). Тобто знання внутрішньої структури та коду програмного забезпечення, можуть бути не повними і використовуватись лише частково.
Приклади:
- тестування з перевіркою коректності записів у БД
- робота з логами та метриками для пошуку root cause проблем
Переваги:
- дає змогу глибше розуміти потенційні причини помилок, порівняно з тестуванням методом чорної скриньки
- більш ефективно виявляє помилки пов’язані з інтеграцією компонентів
- дозволяє створювати більш цілеспрямовані тести
Недоліки:
- потребує певних технічних знань
- може бути складнішим у реалізації, порівняно з тестуванням методом чорної скриньки
Підсумок
Вибір методу тестування залежить від конкретних цілей, доступних ресурсів, складності програмного забезпечення та етапу розробки. На практиці нерідко використовується комбінація різних методів тестування, для забезпечення ефективного виявлення помилок та потенційних проблем.