Чи знали ви, що терміну "баг" офіційно немає? Цим словом помилково називають усі проблеми, що виникають у коді – але майбутнім 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. Можливо, саме вас не вистачає в нашій команді!
А щоб дізнатися більше про типи тестування та їх класифікацію, пропонуємо вам переглянути статтю Типи тестування: пам'ятка початківцю.