Функціональні помилки пов’язані з функціональністю частини програмного забезпечення. Приклади: кнопка не надсилає форму, пошук не реагує на введення користувача, програма аварійно завершує роботу (app crashes). Щоразу, коли ви виконуєте дію, а веб-сайт/програма не відповідає, як ви очікували, це може бути функціональною проблемою. Наша обмежена інформація про продукти наших клієнтів і відсутність знань про їх впровадження ускладнюють визначення того, чи спостережувана поведінка є навмисною чи справді помилкою. Вироблення обґрунтованих припущень на основі досвіду та аналіз поведінки продукту шляхом тестування різних сценаріїв може допомогти вам знайти відповідь.
Як визначити, чи є поведінка програми функціональною помилкою:
Спробуйте з’ясувати, чи функція розроблена певним чином, чи вона справді не працює. Перевірте його окремо та в поєднанні з іншими функціями, щоб виявити потенційні відмінності.
Подумайте про те, якими могли бути наміри клієнта, і подумайте, що продукт може просто працювати так, як він був реалізований.
Знайдіть докази того, що щось працює не так, як треба. Підтримайте свою претензію.
Приклад: функція веб-магазину працює інакше, ніж в інших веб-магазинах, які ви знаєте. Це не означає, що функціональність не працює. Клієнт може реалізувати свій продукт так, як захоче.
Приклад: ви стверджуєте, що поле форми не перевірено, і це помилка. Чи є ознаки того, що вони мали намір перевірити поле? Надайте докази, показавши, що поле перевірено в деяких випадках, але ні в інших. Якщо ви не надасте доказів, це буде недоведеною заявою.
Візуальна або контентна проблема стає функціональною проблемою, коли вона перешкоджає функціональності, і тому про неї слід повідомити як про функціональну помилку.
Частина функціональності постійно працює однаково в різних сценаріях і без очевидних проблем? Тоді це, мабуть, задумано (не помилка), а ви просто пропонуєте виконати (пропозиції щодо юзабіліті (usability suggestion)).
Оцінка серйозності
Оцінюючи рівень функціональної серйозності помилки, слід враховувати кілька факторів: функціональний вплив проблеми, масштаб проблеми, чи існують обхідні шляхи чи це перешкода, чи існують потенційні та значні втрати продажів і чи можете ви порівняти ця помилка до інших помилок такого ж рівня.
Простий підхід полягає у розгляді функціонального впливу помилки. Подумайте про те, наскільки серйозно те, що функція недоступна. Підпорядковані функції не заважатимуть користувачам досягати своєї мети, крім непрацюючої основної функції. Запитайте себе, наскільки релевантною є ця частина функціональності в контексті всього продукту.
Питання про те, на скільки людей, продуктів або предметів впливає функціональна проблема, є визначальним фактором для масштабу проблеми. Наприклад, кнопка «Додати в кошик» не реагує на всі сторінки з інформацією про продукт веб-магазину чи лише на певну? Невелику групу користувачів турбує проблема чи всіх?
Подумайте, чи можете ви досягти своєї мети альтернативним шляхом або варіантом, чи частина функціональних можливостей залишається недоступною. Коли ви інтуїтивно та легко знаходите спосіб обійти помилку, цей так званий обхідний шлях (workaround) дає змогу досягти своєї мети. Помилка з обхідним шляхом отримує нижчий рівень серйозності, ніж еквівалентна помилка без обхідного шляху. Нарешті, коли немає обхідного шляху для несправної основної функції, це є блокування (showstopper).
Оцінка потенційної втрати продажів є другорядним підходом, оскільки часто можна лише припустити, як люди можуть відреагувати на помилку. Тим не менш, візьміть до уваги, наскільки високими є потенційні втрати. Це має величезне значення, якщо ціна продукту відрізняється на центи або сотні доларів.
Зрештою, ви також можете порівняти свою помилку з помилками, які той самий керівник групи вже схвалив у цьому тесті, щоб з’ясувати, чи відповідає ваш рівень серйозності.
Ми маємо три рівні серйозності для функціональних помилок:
НИЗЬКА:
Мінімальний вплив на використання продукту.
Продукт демонструє ненавмисну поведінку, але це не впливає на загальне використання.
Небагато користувачів, продуктів або предметів це стосується.
Функція/частина функціональності не працює або недоступна, але просте вирішення проблеми вирішує проблему.
ВИСОКА:
Серйозний вплив на використання продукту, але основні функції залишаються незмінними.
Йдеться про велику кількість користувачів, продуктів або елементів.
Нетривіальна функціональність не працює або недоступна, і не існує обхідного шляху.
Важливі функції не працюють або недоступні, але існує обхідний шлях (тому це не showstopper).
КРИТИЧНА:
Помилка перешкоджає основній функціональності програми або веб-сайту.
Showstopper не дозволяє користувачеві продовжити основний процес, наприклад. процес оформлення замовлення.
Помилка спричиняє потенційну та відчутну втрату продажів для компанії, яка керує програмою чи веб-сайтом.
Загальні оцінки
У нас є список із фіксованими рівнями серйозності. Наведена вище схема оцінки не застосовується до випадків у цьому списку. Оскільки список буде оновлюватися з часом, перевіряйте його регулярно.
Помилки пограничних випадків
Помилки пограничних випадків виникають, коли частина функціональності використовується незвичним способом. Функціональність не порушується при використанні типових даних і типових дій користувача. Ось кілька прикладів:
Миттєві дії, наприклад згортання програми після натискання кнопки
Повторно робити те саме, напр. відкриття та закриття меню
Будь-яка помилка, яка виникає лише після незвичайного набору дій
Кожен випадок потрібно оцінювати окремо. Помилки пограничних випадків актуальні для наших клієнтів, пересилаються як низька помилки. Нерелевантні випадки, які спричиняють більшість помилок пограничних випадків, будуть відхилені.
Вимушені помилки
Викликання помилки нетиповою поведінкою чи особливими умовами, як правило, виходить за рамки, оскільки такі помилки не стосуються наших клієнтів. Нетипова поведінка не відображає нормальної поведінки користувача. Приклади нетипової поведінки або особливих умов:
Натискання на кілька елементів одночасно
Випадкове натискання кнопки
Швидке натискання кнопки кілька разів
Зменшення розміру вашого вікна до нетипових розмірів
Повна оперативна або внутрішня пам'ять призводить до неочікуваної поведінки
Використання неофіційних, бета-версій або модифікованих версій ОС