У нашій постійній рубриці «QA поради новачкам» дуже важлива тема: правила опису результатів у баг-репорті.
Дефект (він же баг) – це невідповідність фактичного результату роботи програми очікуваному результату. Дефекти виявляються на етапі тестування програмного забезпечення (ПЗ), коли тестувальник проводить порівняння отриманих результатів роботи програми (компонента або дизайну) з очікуваним результатом, описаним в специфікації вимог.
Документувати дефекти необхідно для:
- офіційного опису дефектів;
- призначення відповідальних за їх виправлення;
- моніторингу дефектів;
- збору звітності по роботі над проектом або окремої його складової.
Документ, який описує баг, називається баг-репорт.
Баг-репорт (bug report) – це технічний документ і, в зв'язку з цим, мова опису проблеми повинна бути технічною. Баг-репорт містить в собі повний опис бага, що включає інформацію, як про сам баг (короткий опис, серйозність, пріоритет тощо), так і про умови виникнення даного бага. Баг-репорт повинен містити правильну, єдину термінологію, що описує елементи користувацького інтерфейсу та події даних елементів, що призводять до виникнення бага.
У цій статті детально розбираються правила опису фактичного (Actual result) та очікуваного результатів (Expected result), які є обов'язковими атрибутами при оформленні баг-репорту.
При складанні баг-репорта, у відведеному для цього блоці, спочатку завжди описується фактичний результат, а вже потім очікуваний результат. Існує багато суперечок на тему, який із результатів повинен стояти першим і, щоб дати відповідь на це питання, варто подумати, з якою метою складається звіт – для того, щоб швидше донести до розробників продукту та всієї команди, що щось пішло не так.
Більшість тестувальників, особливо початківці, відчувають величезні труднощі при створенні баг-репортів. Розуміючи в чому суть проблеми, дуже важливо зуміти грамотно донести її до розробника, який буде в подальшому читати звіт.
Для того, щоб уникнути плутанини, а також зберегти і без того обмежений проєктом час, в IT-практиці було вирішено уніфікувати підхід до заповнення даного поля і тим самим полегшити життя тестувальникам.
Щоб зрозуміти, як правильно описувати результати в баг-репорті, необхідно ознайомитися з термінологією.
Фактичний результат – це спостережувана або згенерована поведінка компонента або системи під час тестування. Тут описується, що було отримано в результаті проходження всіх кроків баг-репорта. Варто зазначити, що принцип «Що? Де? Коли?», який використовується при короткому описі дефекту (Bug summary), також використовується і для опису фактичного результату. Цей принцип загальновідомий – спочатку потрібно написати «що відбувається?», а вже потім «в якому місці?» і «за яких умов?». Ключова відмінність опису дефекту і фактичного результату полягає в більш детальному написанні останнього. У той же час, не варто використовувати складні речення. Складносурядні і складнопідрядні речення, прислівникові і дієприслівникові звороти ускладнюють сприйняття тексту. Чим простіше буде побудовано речення, тим краще. Також при необхідності можливе розбиття тексту на кілька речень.
Приклад 1:
Неправильний приклад | Правильний приклад |
Неправильний приклад
При додаванні товару в кошик нічого не відбувається |
Правильний приклад
Товар не додається в кошик на сторінці опису товару після вибору кнопки «Додати в кошик» |
Розглянемо кожну частину окремо:
- «Що?» (Що робить?) – це НЕ іменник, це те, що сталося, свого роду ДІЄСЛОВО-уточнення ( «Що виконується?» Або «Що НЕ виконується?»).
ЩО? – Товар не додається в кошик
- «Де?» – місце в системі (додатку/веб-сайті), де був виявлений баг.
ДЕ? – на сторінці опису товару
- «Коли?» (Після чого? Внаслідок якої події? В період якої дії?) – дія, яка спричинила результат, відмінний від очікуваного.
КОЛИ? – після вибору кнопки «Додати в корзину»
Приклад 2:
Неправильний приклад | Правильний приклад |
Неправильний приклад
Додаток крешиться при відновленні пароля |
Правильний приклад
Додаток екстрено завершує роботу на екрані «Логін» після вибору кнопки «Забули пароль» |
Розглянемо кожну частину окремо:
- «Що?» (Що робить?) – це НЕ іменник, це те, що сталося, свого роду ДІЄСЛОВО-уточнення ( «Що виконується?» Або «Що НЕ виконується?»).
ЩО? – Додаток екстрено завершує роботу
- «Де?» – місце в системі (додатку/веб-сайті), де був виявлений баг.
ДЕ? – на екрані «Логін»
- «Коли?» (Після чого? Внаслідок якої події? В період якої дії?) – дія, яка спричинила за собою результат, відмінний від очікуваного.
КОЛИ? – після вибору кнопки «Забули пароль»
Приклад 3:
Неправильний приклад | Правильний приклад |
Неправильний приклад
Користувач не може увійти в свій аккаунт |
Правильний приклад
Не відображається екран «Профіль» на екрані «Логін» після вибору кнопки «Увійти за допомогою Facebook» |
Розглянемо кожну частину окремо:
- «Що?» (Що робить?) – це НЕ іменник, це те, що сталося, свого роду ДІЄСЛОВО-уточнення ( «Що виконується?» Або «Що НЕ виконується?»).
ЩО? – Не відображається екран «Профіль»
- «Де?» – місце в системі (додатку/веб-сайті), де був виявлений баг.
ДЕ? – на екрані «Логін»
- «Коли?» (Після чого? Внаслідок якої події? В період якої дії?) – дія, яка спричинила результат, відмінний від очікуваного.
КОЛИ? – після вибору кнопки «Увійти за допомогою Facebook»
Очікуваний результат – це поведінка компонента або системи при встановлених умовах, яка визначена специфікацією або іншими джерелами. У цьому полі необхідно описувати що ж повинно бути і як повинен поводити себе продукт на останньому кроці відтворення дефекту. Може виникнути питання, навіщо це писати, якщо і так все очевидно. Але бувають дуже складні баги, при яких все начебто працює, але поведінка яких не відповідає заявленому у вимогах поведінки. Тому поле важливе і необхідне для заповнення.
Важливо! Те, що очевидно для вас, не завжди очевидно для іншої людини. Іноді при оформленні звіту про дефект очікуваний результат описується не в повному обсязі. Це неправильно, всі результати повинні бути описані повністю.
Приклад 1:
Неправильний приклад | Правильний приклад |
Неправильний приклад
Сторінка відображається коректно |
Правильний приклад
Поле для введення логіна відображається в межах блоку «Реєстрація» на головній сторінці |
Як говорилося раніше, іноді для опису результатів досить використовувати правило «Що? Де?». Розглянемо кожну частину окремо:
- «Що?» (Що робить?) – це НЕ іменник, це те, що сталося, свого роду ДІЄСЛОВО-уточнення ( «Що виконується?» Або «Що НЕ виконується?»).
ЩО? – Поле для введення логіна відображається в межах блоку «Реєстрація»
- «Де?» – місце в системі (додатку/веб-сайті), де був виявлений баг.
ДЕ? – на головній сторінці
Приклад 2:
Неправильний приклад | Правильний приклад |
Неправильний приклад
Додаток працює стабільно в розділі «Галерея» |
Правильний приклад
Додаток не зависає і зображення не завмирають на екрані «Галерея» після завантаження великої кількості картинок |
Розглянемо кожну частину окремо:
- «Що?» (Що робить?) – це НЕ іменник, це те, що сталося, свого роду ДІЄСЛОВО-уточнення ( «Що виконується?» Або «Що НЕ виконується?»).
ЩО? – Додаток не зависає і зображення не завмирають
- «Де?» – місце в системі (додатку/веб-сайті), де був виявлений баг.
ДЕ? – на екрані «Галерея»
- «Коли?» (Після чого? Внаслідок якої події? В період якої дії?) – дія, яка спричинила результат, відмінний від очікуваного.
КОЛИ? – після завантаження великої кількості картинок
Приклад 3:
Неправильний приклад | Правильний приклад |
Неправильний приклад
Додаток повністю синхронізується |
Правильний приклад
Дані користувача синхронізуються з сервером на екрані «Налаштування» після вибору кнопки «Синхронізувати» |
Розглянемо кожну частину окремо:
- «Що?» (Що робить?) – це НЕ іменник, це те, що сталося, свого роду ДІЄСЛОВО-уточнення ( «Що виконується?» Або «Що НЕ виконується?»).
ЩО? – Дані користувача синхронізуються з сервером
- «Де?» – місце в системі (додатку/веб-сайті), де був виявлений баг.
ДЕ? – на екрані «Налаштування»
- «Коли?» (Після чого? Внаслідок якої події? В період якої дії?) – дія, яка спричинила результат, відмінний від очікуваного.
КОЛИ? – після вибору кнопки «Синхронізувати»
Важливою особливістю написання результатів є те, що краще уникати формулювань очікуваного і фактичного результатів, які відрізняються лише негативною формою. Замало просто додати заперечення в одне з речень.
Неправильний приклад | Правильний приклад |
Неправильний приклад
Фактичний результат: Інформація збігається на сторінці порівняння товарів Очікуваний результат: Інформація не збігається на сторінці порівняння товарів |
Правильний приклад
Фактичний результат: Інформація збігається на сторінці порівняння товарів Очікуваний результат: Відображається опис кожного товару на сторінці порівняння товарів |
Неправильний приклад | Правильний приклад |
Неправильний приклад
Фактичний результат: Повідомлення про помилку відображається на сторінці реєстрації після заповнення поля «Пароль» валідними даними Очікуваний результат: Повідомлення про помилку не відображається на сторінці реєстрації після заповнення поля «Пароль» валідними даними |
Правильний приклад
Фактичний результат: Повідомлення про помилку відображається на сторінці реєстрації після заповнення поля «Пароль» валідними даними Очікуваний результат: Відбувається успішна реєстрація користувача в системі після заповнення реєстраційної форми валідними даними і вибору кнопки «Зареєструватися» |
Також необхідно враховувати той факт, що не можна писати кілька результатів в одному звіті про помилку.
Неправильний приклад | Правильний приклад |
Неправильний приклад
… Звернути увагу на поле «Номер телефону». Фактичний результат: Поле «Номер телефону» підсвічується зеленим на сторінці реєстрації після введення невалідних даних. Очікуваний результат: Поле «Номер телефону» підсвічується червоним кольором на сторінці реєстрації після введення невалідних даних і виводиться повідомлення про помилку. |
Правильний приклад
… Звернути увагу на поле «Номер телефону». Фактичний результат: Поле «Номер телефону» підсвічується зеленим на сторінці реєстрації після введення невалідних даних. Очікуваний результат: Поле «Номер телефону» підсвічується червоним і відображається повідомлення про помилку на сторінці реєстрації після введення невалідних даних. |
Неправильний приклад | Правильний приклад |
Неправильний приклад
Фактичний результат:
Очікуваний результат:
|
Правильний приклад
Фактичний результат: Поле «Номер телефону» підсвічується зеленим кольором на сторінці реєстрації після введення невалідних даних. Очікуваний результат: Поле «Номер телефону» підсвічується червоним і відображається повідомлення про помилку на сторінці реєстрації після введення невалідних даних. |
Неправильний приклад | Правильний приклад |
Неправильний приклад
Steps to reproduce
...
|
Правильний приклад
Steps to reproduce
...
|
Неправильний приклад
Additional Information Фактичний результат: Плейсхолдер перекриває текст в полі «Email address» в футері після введення тексту. Очікуваний результат: Плейсхолдер зникає в полі «Email address» в футері після введення тексту. |
Правильний приклад
Фактичний результат: Плейсхолдер перекриває текст в полі «Email address» в футері після введення тексту. Очікуваний результат: Плейсхолдер зникає в полі «Email address» в футері після введення тексту. Additional Information Баг також відтворюється в браузерах Chrome 71, Firefox 63. |
Після того, як опис помилки було написано та відкориговано, необхідно перечитати його від початку й до кінця. Можливо, знайдуться помилки, випадковий повтор слова чи зайвий символ. Також потрібно дбати про чистоту листа, перевіряти граматику, пунктуацію, особливо бути уважними при складанні звіту на іноземній мові. Не варто використовувати сленг і скорочення, які не є загальноприйнятими.
Недотримання принципу «Що? Де? Коли?» – це найсерйозніша і в той же час найпоширеніша помилка при написанні звіту. Якщо зрозуміти, що даний принцип розрахований на те, щоб полегшити розумовий процес, тоді на формування звітності буде йти набагато менше часу.
Тому важливо зрозуміти, що даний принцип насправді винайдений для того, щоб спростити роботу і дати тестувальнику можливість приділити більше часу улюбленому заняттю: пошуку дефектів та недоліків у програмному забезпеченні.
Для закріплення розглянемо ще один приклад:
Неправильний приклад | Правильний приклад |
Неправильний приклад
У додатку зміщується область тапа |
Правильний приклад
Зміщується область тапа у вікні внутрішньогрального інвентаря після відкриття акційної скрині |
Розглянемо кожну частину окремо:
- «Що?» (Що робить?) – це НЕ іменник, це те, що сталося, свого роду ДІЄСЛОВО-уточнення ( «Що виконується?» Або «Що НЕ виконується?»)
ЩО? – Зміщується область тапа
- «Де?» – місце в системі (додатку/веб-сайті), де був виявлений баг.
ДЕ? – у вікні внутрішньогрального інвентаря
- «Коли?» (Після чого? Внаслідок якої події? В період якої дії?) – дія, яка спричинила результат, відмінний від очікуваного.
КОЛИ? – після відкриття акційної скрині