article-spots
article-carousel-spots
programs
Технології
Аномалія, баг, помилка чи відмова? Базові терміни зі словника тестувальника
8 жовт 2021

Чи знали ви, що терміну "баг" офіційно немає? Цим словом помилково називають усі проблеми, що виникають у коді – але майбутнім QA інженерам цього пояснення має бути недостатньо. Озброюємось словником ISTQB та допомогою експертів EPAM і розповідаємо про чотири базові терміни, що має знати кожен тестувальник.

Почнемо з простого!

Що таке "баг"?

Баг (офіційно – "defect", синоніми "bug", "fault") – це, узагальнено кажучи, будь-який недолік у продукті, через який цей продукт не відповідає вимогам. Тобто, якщо замість числа від 1 до 9 функція чомусь видає повний текст Конституції України, десь стався баг і продукт треба фіксити.

Вимоги закладаються ще на початку роботи над проєктом; на них ґрунтується очікуваний функціонал продукту, який вже пізніше буде перевіряти тестувальник. Якесь відхилення – і QA спеціаліст "заводить" баг, який мають виправити розробники.

Історія терміну "баг" дуже цікава: 9 вересня 1945 року вчені Гарвардського університету знайшли в обчислювальній машині справжнього метелика, що застряг в електромеханічному реле. Цю комаху вони приклеїли в технічний журнал із підписом: «Перший задокументований випадок знаходження багу».

Що таке "помилка"?

Помилка (офіційно – "error", синонім "mistake"): це, згідно з ISTQB, будь-яка дія людини, що спричинила невірний результат. Це може бути як невірно введений пароль, який призвів до error 403, так і помилка в коді, якої припустився розробник, і через яку "випадково" впали сервери.

Баг може бути результатом помилки, але помилка ≠ баг, адже, у випадку невірного паролю, це – очікувана поведінка системи. Простіше кажучи, помилка може бути результатом дефекту, або ж одною з "правильних" відповідей на неправильні дії користувача.

Що таке "відмова"?

Відмова (офіційно – "failure", також трапляється варіант "interruption"). Повне визначення з ISTQB – "подія, коли система не виконує очікувану функцію" – але нащо мати окремий термін, який означає майже те саме, що й баг?

Але ці терміни різні! Якщо пояснювати ну дуууже спрощено, баги виявляють на етапі тестування системи, а відмови – коли продукт уже випущено в публічне користування. Щоб краще зрозуміти різницю між багом (дефектом), помилкою та відмовою, візуалізуйте таку аналогію.

Уявіть звичайного швейного майстра, який виготовляє пальто. В одному з виробів майстер випадково не пристрочив кишеню – отож, майстром було зроблено помилку (error). Пальто спокійно собі висіло на вішалці для одягу – на перший погляд, абсолютно звичайне, але в ньому "завівся" баг (defect). Дефект є непомітною на перший погляд помилкою, яка може не впливати на роботу системи у звичайному стані; однак, за умови надмірного навантаження (як один із варіантів) дефект дає про себе знати та стає причиною відмови. Зрештою, пальто з дефектом (або багом) хтось придбав і ця людина спробувала покласти в кишеню телефон, який одразу ж звідти випав. Пальто (або його кишеня) не виконало очікувану функцію – телефон мав залишитися в кишені в безпеці.

Уявіть собі масштаби ситуації, якщо ціла фабрика стане виробляти пальто з дефектом! Саме тому професія тестувальника є настільки відповідальною: завданням такого спеціаліста є знайти, а потім відтворити, або навіть розібратися у причинах помилки.

Що таке "аномалія"?

Аномалія (офіційно "anomaly", або ж "deviation") – це збірний термін, під яким може матися на увазі і баг, і відмова, і помилка. Аномалія є широким терміном, який можна використати у будь-якій ситуації, коли щось йде не за планом (приклади: "Я сьогодні аномально втомився, тому всі таски виконаю завтра" або "У коді сталася аномалія, і замість калькулятора у мене випадково написався штучний інтелект").

Вітаємо, тепер ви трохи ближче знайомі з професією тестувальника! І якщо ви точно знаєте, що пошук дефектів та удосконалення систем є вашим покликанням – приєднуйтесь до наборів за напрямом Software Testing в EPAM. Можливо, саме вас не вистачає в нашій команді!

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