Що потрібно знати тестировщику про рецензування та як його використовувати в роботі

Давайте знайомитись, я, Ольга Борзенко , займаюся мануальним тестуванням IT більше 5 років, і я, Федорова Тетяна , займаюсь тим же більше 7 років. У нас є досвід успішного тестування і хочемо ними поділитися. У цій статті поговоримо про рецензування як однієї з складових різних проектів. Після прочитання статті як початківець, так і досвідчений тестувальник, зможе знайти відповідь на питання, як і коли застосовувати рецензування у роботі. Влаштовуйтеся зручніше, і ми розпочинаємо!

Спочатку визначимо, що ж таке рецензування. Згідно IEEE 1028 Standard for Software Reviews and Audits, рецензування (Review) — це оцінка стану продукту або проекту з метою встановлення розбіжностей з запланованими результатами та висунення пропозицій щодо вдосконалення.

Ми будемо розглядати процес рецензування з позиції тестування і свого досвіду. Чим конкретно корисно рецензування тестировщику? Чим воно допомагає?

Рецензування — це не тільки частина тестування, але і окремий пласт процесу розробки проекту. І тестувальник у ньому виконує важливу роль. Застосування рецензування допомагає більш ефективному виявленню дефектів.

Типи рецензування

Проаналізувавши літературу Standard Glossary of Terms used in Software Testing (Version 3.3) , ISO/IEC 20246:2017 Software and systems engineering — Work product reviews , ISTQB CTFL Syllabus 2018 , ми схематично відобразили структуру типів рецензування.

Малюнок 1. Типи рецензування

Як видно на Рис. 1, рецензування ділиться на формальне і неформальне.

Формальне рецензування характеризується участю команди, документуванням процесу і результату.

Неформальне рецензування — відсутністю необхідності дотримання конкретного процесу і формальної документації.

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

Неформальне рецензування, на наш погляд, буде більш актуально на невеликих проектах або проектах із використанням гнучких методологій розробки, з відсутністю або неповним набором документації. Наприклад, сайти-візитки, невеликі e-commerce проекти.

Процес рецензування

Що підлягає рецензуванню, вирішується в залежності від цілей і завдань на поточний момент. Наприклад, це може бути обговорення документації, введення в проект нових учасників команди (розповідь про проект або, навпаки, «свіжа» думка «людини зі сторони» і т. д.).

Малюнок 2. Процес рецензування робочого продукту

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

Тепер розглянемо основні стадії цього процесу і розповімо, як застосовуємо рецензування на своєму проекті (див. рис. 2).

На стадії планування , щоб правильно почати процес рецензування продукту, необхідно визначити весь обсяг робіт і критерії входу/виходу, перевірити на відповідність раніше встановлених критеріїв входу/виходу.

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

Наступна стадія — ініціювання рецензування . Як правило, тут підключаються тестувальники, яким дають специфікацію або гейм-дизайн документ, в залежності від типу проекту. В цей же час команді пояснюють цілі і розподіляють ролі на проекті. Всі учасники рецензування отримують відповіді на виниклі питання.

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

Слідом за індивідуальним рецензуванням йде комунікація з питань і аналіз . Тестувальники сповіщають про команду виявлених і потенційних дефекти, аналізують їх, встановлюють статус і «обирають жертву», того, хто це буде виправляти.

Завершальна стадія — внесення змін і звітність . На цій стадії відбувається створення звітів про дефекти, їх обговорення та виправлення; оновлюються дані про дефекти, проводиться збір метрик і перевірка критеріїв входу і виходу.

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

Методи рецензування

В ході процесу рецензування застосовуються методи, які представлені на малюнку 3. Кожен з них може використовуватися для будь-якого типу рецензування.

Малюнок 3. Методи рецензування

Фактори успіху рецензування

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

Таблиця 1. Фактори успіху рецензування

Організаційні фактори успіху Технічні фактори успіху
Всі цілі чітко визначені (навіщо і для чого проводимо рецензування) Правильний вибір типу рев'ю

Доступні і якісні артефакти
Знайдені дефекти зізнаються, оцінюються та обробляються об'єктивно
Люди з досвідом (особливо при проведенні інспекції) Використання чек-листів і ролей (кожен учасник розуміє, за що він відповідальний)
Тестувальник вносить свій внесок і дізнається про роботу продукту Підтримка процесів рецензування менеджером
Рецензування проводиться на основі довіри Члени команди мають різний набір навичок і точку зору
Учасники уникають психологічних аспектів Навчання учасників більш формальним типами рецензування

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

Наприклад, при отриманні нового функціоналу на тестування спочатку вивчаємо документацію за неї (якщо її немає, опис завдання). Після цього аналізуємо, яких кейсів та інформації не вистачає, не суперечать якісь пункти нового функціоналу того, що вже реалізовано, в яких місцях є ймовірність виникнення дефекту. Потім обговорюємо це з командою.

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

Крім цього, залучаємо до обговорення тест-кейсів або чек-листа розробників. Робота в невеликих групах з двох тестувальників і одного розробника вважається ефективною з точки зору рецензування. Це сприяє більш глибокому розумінню тестувальником процесів, що відбуваються під час розробки. І це можливість девелоперу перевірити себе, наприклад, скрізь він додав необхідні перевірки на валідацію даних.

Ще одна хороша практика, яку застосовуємо, — «поставити себе на місце потенційних користувачів продукту і оцінити роботу досліджуваного функціоналу з їх точки зору. В ході тестування приміряємо на себе різні ролі, наприклад, для e-commerce проектів це може бути покупець, продавець, адміністратор; для проектів у сфері освіти — ректор, декани, викладачі, студенти; директори, вчителі, учні. Продумуємо, а достатньо очевидні різні кейси, зрозумілий і зручний у використанні продукт і так далі.

Як видно з вищесказаного, у рецензуванні немає нічого складного. Так чи інакше кожен з нас застосовує його у себе в роботі.

Рецензування — корисна штука», оскільки допомагає розкласти по поличках незрозумілі і суперечливі моменти у тестуванні продукту. Дає можливість дізнатися про точку зору інших учасників розробки. Ввести більш швидко і продуктивно нового члена команди. Крім того, оскільки рецензування відноситься до статичного тестування, воно дозволяє виявляти дефекти до проведення динамічного тестування, що, в свою чергу, сприяє зниженню витрат на виправлення знайдених дефектів.

Підводячи підсумок, зазначимо, що рецензування можна використовувати по-різному, але все ж основна його мета — знаходження дефектів.

Тепер ви знаєте, що відповісти на питання, як і коли застосовувати рецензування. Спасибі за увагу! Сподіваємося, що стаття була корисною для вас!

Опубліковано: 29/07/20 @ 10:00
Розділ Різне

Рекомендуємо:

5 книжок, які допомогли зрозуміти зміни у світі, від Павла Кузнєцова, Sr. Product Manager Zalando
Українка – про роботу в Coca-Cola у Сингапурі: "Я відповідаю за Data Science в усьому регіоні Азії та Тихого океану"
Опановуємо основи алгоритмів, або Як прискорити код з 15 до 1000 запитів за секунду
Будуємо власні продукти в сервісній компанії. Наш шлях від нуля до 1 млн $ регулярного річного доходу
Як успішно сформувати команду і перейти до продуктивної роботи