Пришло время поговорить о ATDD! Итак, вы хотите узнать о ATDD или подтянуть знания об этой концепции. Не беспокойтесь! В этой статье мы расскажем, что такое ATDD и как она связана с BDD и TDD. Мы также рассмотрим лучшие практики и пройдемся по всей методологии шаг за шагом!
В данном руководстве по ATDD
Что такое ATDD
ATDD - это практика ATDD. Подход к разработке ATDD - это основа, которая включает в себя практики ATDD и BDD. ATDD расшифровывается как acceptance test driven development.
ATDD - это уникальный подход к процессу разработки программного обеспечения, который помогает разработать код автоматизации, сначала написав сценарии приемочных испытаний, а затем реализовав код в сотрудничестве с нетехническими участниками. ATDD объединяет нетехнических участников, тестировщиков и разработчиков в одной среде для совместной работы над одним и тем же продуктом. Инструмент ATDD не предназначен для тестирования, но он поддерживает практику ATDD.
BDD против TDD
BDD ориентирован на примеры, в отличие от ATDD, который ориентирован на приемочные тесты. TDD сфокусирован на модульных тестах; однако BDD фокусируется как на модульных, так и на приемочных тестах. ATDD требует, чтобы бизнес-эксперт сидел с разработчиками на протяжении всей разработки для уточнения и совместной работы над тем, что должно быть создано.
Будучи разработчиком, вы можете спросить себя: что именно означают ATTD и ATDD? ATTD расшифровывается как acceptance test-driven development. ATDD означает принятие разработки, управляемой тестами, и BDD вместе как единой практики. ATDD похожа на TDD (разработка, управляемая тестами), но с дополнительным требованием написания приемочных тестов до начала кодирования.
Agile против TDD
Agile включает в себя практики ATDD, TDD и BDD. ATTD является подмножеством ATDD. Можно рассматривать ATTD как более раннюю форму ATDD. В Agile подход к разработке ATTD известен как ATTD и ATBD (acceptance test-driven development) в XP (Extreme Programming). ATBD предполагает сотрудничество бизнес-экспертов с разработчиками по поводу того, что нужно создать.
В Scrum приемочные тесты пишутся группой, называемой командой разработчиков, которая сотрудничает с бизнес-экспертом, представляющим пользователей/клиентов, чтобы обсудить, что должно быть построено для конкретной функции или пользовательской истории. Приемочные тесты пишутся на основе высокоуровневых требований / пользовательских историй, которые представляют собой критерии приемки. Приемочные тесты определяют, как определить, что критерии приемки были выполнены. ATDD был определен Дэном Нортом в 2003 году. ATDD очень похож на ATBD (Acceptance Test-Driven Development). ATBD отличается от ATDD тем, что ATBD также определяет детали реализации, тогда как ATDD не пытается определить детали реализации - целью ATDD является только проверка того, соответствует ли реализация спецификации требований.
Преимущества ATDD
ATDD имеет множество преимуществ. К ним относятся повышение удовлетворенности клиентов, улучшение качества, снижение затрат, увеличение скорости и производительности. Принципы ATDD совместимы с методами водопада и agile. ATDD также способствует более тесному сотрудничеству между бизнес-пользователями и разработчиками за счет разрушения барьеров, устранения двусмысленности и улучшения коммуникации на протяжении всего жизненного цикла проекта.
ATDD требует, чтобы все заинтересованные стороны работали вместе на каждом этапе процесса разработки. ATDD сокращает время, необходимое для создания качественного программного обеспечения. ATDD также сокращает количество отходов, уменьшая количество переделок и исправляя дефекты на более ранних этапах цикла разработки. При правильном внедрении ATDD повысит ваши шансы на успех на каждом этапе жизненного цикла вашего проекта!
Преимущества ATDD заключаются в том, что он уменьшает количество ошибок в производственном коде, экономя время и усилия на ручном тестировании. Это также повышает производительность труда разработчиков на 50%. Ключ к успеху ATDD заключается в том, что сначала необходимо начать с приемочных тестов, затем перейти к интеграционным тестам, а затем перейти к модульному тестированию.
Этапы проведения ATDD
Существует 5 этапов приемочного тестирования, независимо от того, используется ATDD или нет:
1) первый шаг - понять потребности бизнеса
2) второй шаг - написание пользовательских историй
3) третий шаг - подготовка тестовых примеров
4) Четвертый этап - анализ дефектов
5) Заключительный этап - выполнение тестовых примеров в рамках ATDD
Что такое полная форма ATDD?
Полная форма ATDD - ATTD, которая является подмножеством ATDD. ATTD - это разработка, управляемая приемочными испытаниями ATDD - это и ATTD, и ATBD (Acceptance Test-Driven Development) ATBD включает в себя практики ATTD, ATDD и BDD. ATBD отличается от ATDD тем, что ATBD также определяет детали реализации, в то время как ATDD не пытается определить детали реализации - целью процесса ATDD является только проверка того, соответствует ли реализация спецификации требований.
Этапы приемочного тестирования:
1) понимание потребностей бизнеса;
2) написание пользовательских историй;
3) подготовка тестовых примеров;
4) анализ дефектов, и, наконец,
5) выполнение тестовых примеров с помощью внедренного фреймворка.
Советы по правильному проведению ATDD
Итак, знать, что такое ATDD - это одно, а выполнять эту структуру и процесс - совсем другое. Исходя из своего опыта, я считаю эти советы очень полезными:
- ATDD необходимо проводить на ранних стадиях ATDD не должен заменять модульное тестирование ATDD - это техника проектирования тестов ATDD требует сотрудничества ATDD работает лучше всего, когда у вас есть хорошие истории пользователей ATDD совместные сессии с разработчиками и тестировщиками могут отнимать много времени, но это сотрудничество дает лучший конечный продукт ATDD работает лучше всего, когда требования ясны ATBD/ATDD должны иметь хорошие примеры, которые помогают четко понять требования.
- Еще один отличный совет для хорошего приемочного тестирования - использовать инструменты ATDD, такие как Cucumber, JBehave или Concordion. Фреймворки ATDD специально разработаны для организации сценариев тестирования ATDD и снижения сложности реализации ATDD.
Заключительные мысли о ATDD
ATDD - это метод разработки тестов, который имеет множество преимуществ, включая повышение удовлетворенности клиентов; улучшение качества; снижение затрат; увеличение скорости и производительности. ATDD требует от всех заинтересованных сторон совместной работы на каждом этапе процесса разработки, что позволяет сократить потери за счет уменьшения повторной работы и устранения дефектов на более ранних этапах цикла разработки.
ATDD также повышает производительность труда разработчиков на 50%. ATTD или ATBD являются подмножествами ATDD, причем ATTD - это разработка, ориентированная на приемочное тестирование, а ATBD включает в себя как практику приемочного тестирования, так и принципы BDD.
Ключ к успеху при использовании структуры ATDD - это раннее начало, не заменяющее модульные тесты, наличие хороших пользовательских историй для определения требований, использование таких инструментов, как Cucumber или JBehave, если они доступны, совместная работа на сессиях уточнения требований до того.