Настав час поговорити про ATDD! Отже, ви хочете дізнатися про ATDD або освіжити свої знання з цього питання. Не хвилюйтеся! У цій статті ми розповімо, що саме таке ATDD і як воно пов’язане з BDD та TDD. Ми також розглянемо найкращі практики та покроково розберемо всю методологію!

У цьому посібнику з ATDD

Що таке ATDD

ATDD — це практика ATDD. Підхід до розробки ATDD — це фреймворк, що включає практики ATDD та BDD. ATDD розшифровується як «розробка, керована приймальними тестами».

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

BDD проти TDD

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

Як розробник, ви можете запитати себе: що саме означають терміни ATTD та ATDD? ATTD — це абревіатура від «розробка, керована приймальними тестами» (acceptance test-driven development). ATDD означає об’єднання «розробки, керованої тестами» (TDD) та «розробки, керованої поведінкою» (BDD) в єдину практику. ATDD схожа на TDD (розробку, керовану тестами), але передбачає додаткову вимогу щодо написання приймальних тестів до початку кодування.

Agile проти TDD

Аджайл включає в себе практики ATDD, TDD та BDD. ATTD є підмножиною ATDD. ATTD можна розглядати як попередню форму ATDD. У рамках Аджайлу підхід до розробки ATTD відомий як ATTD та ATBD (розробка на основі приймальних тестів) у методології XP (Extreme Programming). ATBD передбачає співпрацю бізнес-експертів із розробниками щодо того, що саме слід створити.

У Scrum приймальні тести розробляє група, яка називається командою розробників і співпрацює з бізнес-експертом, що представляє користувачів/клієнтів, для обговорення того, що саме слід реалізувати для конкретної функції або користувацької історії. Приймальні тести пишуться на основі загальних вимог/користувацьких історій, які відображають критерії прийнятності. Приймальні тести визначають, як встановити, чи виконано критерії прийнятності. ATDD було визначено Деном Нортом у 2003 році. ATDD — це процес, дуже схожий на ATBD (Acceptance Test-Driven Development, розробка, керована приймальними тестами). ATBD відрізняється від ATDD тим, що ATBD також визначає деталі реалізації, тоді як ATDD не намагається визначати деталі реалізації — мета ATDD полягає лише в тому, щоб перевірити, чи відповідає реалізація специфікації вимог.

Переваги ATDD

ATDD має чимало переваг. Серед них — підвищення рівня задоволеності клієнтів, поліпшення якості, зниження витрат, прискорення роботи та підвищення продуктивності. Принципи ATDD сумісні з методологіями «водоспаду» та «аджайл». Крім того, ATDD сприяє зміцненню співпраці між бізнес-користувачами та розробниками, долаючи бар’єри, усуваючи неоднозначності та покращуючи комунікацію протягом усього життєвого циклу проєкту.

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

Переваги ATDD полягають у тому, що цей підхід дозволяє зменшити кількість помилок у виробничому коді, заощаджуючи час і зусилля на ручне тестування. Крім того, він підвищує продуктивність розробників на 50%. Ключ до успіху в ATDD полягає в тому, що спочатку потрібно розпочати з приймальних тестів, потім перейти до інтеграційних тестів, а вже потім приступати до модульного тестування.

 

Етапи процесу ATDD

Незалежно від того, чи використовується ATDD, приймальне тестування складається з 5 етапів:

1) Першим кроком є розуміння потреб бізнесу

2) наступним кроком є написання користувацьких історій

3) третій крок — підготовка тестових випадків

4) Четвертий крок — аналіз дефектів

5) Останнім кроком є виконання тестових випадків за допомогою фреймворку ATDD

Що означає абревіатура ATDD?

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

Етапи приймально-випробувальних робіт:

1) розуміння потреб бізнесу;

2) написання користувацьких історій;

3) підготовка тестових випадків;

4) аналіз дефектів, і нарешті,

5) виконання тестових випадків за допомогою запровадженого фреймворку.

Поради щодо правильного використання ATDD

Отже, одне діло — знати, що таке ATDD, а зовсім інше — застосовувати цю методологію та процес на практиці. З власного досвіду можу сказати, що ці поради дуже корисні:

  1. ATDD слід застосовувати на ранніх етапах. ATDD не має замінювати модульне тестування. ATDD — це техніка проектування тестів. ATDD вимагає співпраці. ATDD дає найкращі результати, коли є якісні користувацькі історії. Спільні сесії ATDD за участю розробників і тестувальників можуть бути трудомісткими, але така співпраця забезпечує кращу якість кінцевого продукту. ATDD дає найкращі результати, коли вимоги чітко сформульовані. Для ATBD/ATDD необхідні якісні приклади, які допомагають чітко зрозуміти вимоги.
  2. Ще одна чудова порада для ефективного проведення приймальних випробувань — використовувати інструменти ATDD, такі як Cucumber, JBehave або Concordion. Фреймворки ATDD спеціально розроблені для структурування сценаріїв тестування ATDD та спрощення процесу їх реалізації.

Останні міркування щодо ATDD

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

ATDD також підвищує продуктивність розробників на 50%. ATTD та ATBD є підкатегоріями ATDD: ATTD — це розробка, керована приймальними тестами, тоді як ATBD поєднує в собі як практики приймального тестування, так і принципи BDD.

Запорукою успіху при використанні фреймворку ATDD є ранній початок роботи, відмова від заміни модульних тестів, наявність якісних користувацьких історій для визначення вимог, використання таких інструментів, як Cucumber або JBehave (за наявності), а також спільна робота над уточненням вимог під час сесій перед