Настав час поговорити про 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 означає розробку на основі приймальних тестів. ATDD означає прийняття розробки на основі тестів та BDD разом як однієї практики. ATDD схожа на TDD (розробка на основі тестів), але з додатковою вимогою написання приймальних тестів перед початком кодування.

Agile проти TDD

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

У Scrum тести на прийнятність пишуть група, яка називається командою розробників, яка співпрацює з бізнес-експертом, що представляє користувачів/клієнтів, щоб обговорити, що слід створити для конкретної функції або історії користувача. Тести на прийнятність пишуть на основі вимог високого рівня/історій користувачів, які представляють критерії прийнятності. Приймальні тести визначають, як визначити, коли критерії прийнятності були виконані. ATDD був визначений Деном Нортом у 2003 році. ATDD є процесом, дуже схожим на ATBD (розробка, керована приймальними тестами). 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 вимагає від усіх зацікавлених сторін співпраці на кожному етапі процесу розробки, що зменшує витрати завдяки скороченню обсягу доопрацювань та усуненню дефектів на ранніх етапах циклу розробки.

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

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