article-spots
article-carousel-spots
programs
Технології
Типи тестування: пам'ятка початківцю. Частина 1
25 серп 2021

Коротко та просто розповідаємо про основні типи тестування, з якими рано чи піздно зустрічається будь-який Software Testing спеціаліст.

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

  1. White-box testing.
  2. Black-box testing.
  3. Grey-box testing. 


Розповімо про них детальніше.




Що таке "white-box testing"?

Дуже коротко: тестувальник бачить код додатку


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

Навіщо тестувальникові потрібен доступ до внутрішньої структури додатку?  

Це необхідно, щоб від початку й до кінця зрозуміти його роботу.  

В якості прикладу наведемо автомат для видачі замовлень. Його дуже спрощена структура складається з: 

  1. Багатьох контейнерів, в яких розміщуються замовлення.  
  2. Електронного замка. 
  3. Дисплея для введення номеру замовлення або паролю.  

 

Механізм роботи такого автомату простий: користувач вводить номер замовлення через дисплей і, після того, як електронний замок відімкнувся, одержує своє замовлення. 

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

В якості прикладу розглянемо електронний замок в автоматі для замовлень:

Які переваги 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!