White Box Test Techniques (техніки тестування білої скриньки) — це підхід до тестування програмного забезпечення, при якому тестувальник має доступ до внутрішньої структури коду (наприклад, логіки, умов, циклів, змінних тощо) і використовує цю інформацію для розробки тестів.
Основна ідея:
Тестування здійснюється на основі знання коду — аналізуються всі гілки, логіка, шляхи виконання, що дозволяє виявити логічні помилки, прогалини в покритті або «мертвий код».
Основні техніки White Box Testing:
- Coverage-based Testing (тестування на покриття):
- Statement Coverage (покриття операторів) — перевіряє, що кожен оператор (рядок коду) виконується хоча б один раз.
- Branch Coverage (покриття гілок) — перевіряє, що всі можливі гілки умов (if/else) були пройдені.
- Condition Coverage — перевіряє, що кожна умова в логічному виразі приймала і true, і false.
- Path Coverage (покриття шляхів) — перевіряє всі можливі шляхи виконання через програму.
- Loop Testing — тестування циклів (наприклад, перевірити цикл при 0, 1 та багатьох ітераціях).
- Control Flow Testing — аналіз керуючого потоку програми: як виконання переходить від одного блоку до іншого.
- Data Flow Testing — аналіз, як дані передаються і змінюються в програмі (від моменту ініціалізації до використання).
Переваги:
- Високий рівень покриття коду.
- Виявлення «мертвого» або невикористаного коду.
- Допомагає знайти логічні помилки.
Недоліки:
- Не підходить для тестування без доступу до коду (наприклад, сторонніх сервісів).
- Вимагає знань програмування.
- Не покриває питання зручності інтерфейсу чи бізнес-логіки — тільки реалізацію.