Коротко та просто розповідаємо про основні типи тестування, з якими рано чи піздно зустрічається будь-який Software Testing спеціаліст.
Одною з основних класифікацій тестування є наявність або відсутність доступу до коду програмного забезпечення спеціалістом. Тож, у залежності від даного параметру, виділяють:
- White-box testing.
- Black-box testing.
- Grey-box testing.
Розповімо про них детальніше.
Що таке "white-box testing"?
Дуже коротко: тестувальник бачить код додатку
В даному типі тестування спеціаліст має доступ до внутрішньої архітектури і коду застосунку, а також володіє знаннями для аналізу побаченого і самостійного знаходження проблеми в коді.
Навіщо тестувальникові потрібен доступ до внутрішньої структури додатку?
Це необхідно, щоб від початку й до кінця зрозуміти його роботу.
В якості прикладу наведемо автомат для видачі замовлень. Його дуже спрощена структура складається з:
- Багатьох контейнерів, в яких розміщуються замовлення.
- Електронного замка.
- Дисплея для введення номеру замовлення або паролю.
Механізм роботи такого автомату простий: користувач вводить номер замовлення через дисплей і, після того, як електронний замок відімкнувся, одержує своє замовлення.
Повертаючись до причин, з яких тестувальнику потрібен доступ до внутрішньої структури програми — ця інформація є необхідною для з’ясування принципів роботи як окремого модуля, так і взаємодії інших модулів додатку.
В якості прикладу розглянемо електронний замок в автоматі для замовлень:
Які переваги white box тестування?
- тестування ПЗ може проводитися до створення користувацького інтерфейсу
- відповідним чином, тестувальник глибше інтегрований в розробку додатку та допомагає усувати помилки ще на стадії Development
Однак, без недоліків не обійтися :( Для даного типу тестування це:
- необхідність в висококваліфікованих спеціалістах із навичками написання коду та розумінням побудови продукту
- висока вартість
- глибоке занурення в код вимагає більше часу — тож великі додатки можуть тестуватися тижнями чи навіть місяцями
Що таке "black-box testing"?
Дуже коротко: тестувальник перевіряє роботу додатку без розуміння його реалізації
Це такий тип тестування, за якого у тестувальника або немає доступу до структури і коду додатку, або тестувальник навмисне не бере їх в розрахунок.
При цьому абсолютна більшіть видів тестування працює за black-box методом, основну ідею якої можна сформулювати наступим чином: тестувальник взаємодіє з додатком і перевіряє реакції тим же методом, як і користувачі або інші додатки під час реальної експлуатації.
У рамках тестування за даним методом створення тест-кейсів ґрунтується на документації та звичайному здоровому глузді (для випадків, коли поведінка додатку в деякій ситуації явно не регламентована; іноді це називають «тестування на основі неявних вимог», але канонічного визначення у цього підходу немає).
В якості прикладу використаємо торговий автомат зі снеками.
Далеко не кожна людина має уявлення, як працює торговий автомат зі снеками, скільки в ньому приводів і як його частини взаємодіють одна з одною. Втім, переважна більшість чітко уявляє, що якщо опустити монетку в монетоприймач і обрати номер певного снеку, то автомат видасть потрібне. Тож, якщо очікуваний результат не відбувається, тестувальник може винести вердикт про некорректну роботу автомату без розуміння, який саме привід в механізмі заклинило (з цим будуть розбиратися техніки, а у випадку ПЗ — розробники).
Які переваги black-box тестування?
- розробник та тестувальник працюють незалежно один від одного, тож темп опрацювання додатку пришвидшується
- тестувальник не має бути "людиною-оркестром" та вміти писати код — достатньо розбиратися в специфікаціях та вимогах
- починати писати тест-кейси можна одразу після отримання специфікацій
Попри швидкість та меншу вартість даного методу, він також має і недоліки, як-от:
- важкість проєктування всіх можливих тест-кейсів
- неможливість повністю та з усіх сторін перевірити коректність роботи додатку (щось точно буде знайдено вже кінцевими користувачами)
- немає чіткої специфікації = немає тест-кейсів
Що таке "grey-box testing"?
Дуже коротко: щось відомо, а щось — ні
Це — комбінація методів white- та black-box, яка полягає в тому, що до певної частини коду і архітектури у тестувальника є доступ, а до інших — ні. Зазвичай про методи white- та black-box говорять стосовно тих чи інших частин додатку, маючи на увазі, що додаток в цілому тестується за методом grey-box.
У наступних статтях ми розповідаємо ще більше цікавого та корисного про інші популярні типи тестування: Типи тестування: пам'ятка початківцю II та Типи тестування: пам'ятка початківцю ІІІ.
Також нагадуємо, що в EPAM University прямо зараз відкрито програми за напрямом Software Testing. Реєструйтесь та вчіться тестуванню під керівництвом кращих експертів EPAM, а також слідкуйте за появою анонсів в нашій Телеграм-спільноті EPAM University!