Что такое TDD, BDD и ATDD и в чем различия? (начальство)
Что такое TDD, BDD и ATDD и в чем различия? (начальство)

Разработка программного обеспечения — это итеративный процесс, который включает в себя написание, тестирование и улучшение кода до тех пор, пока требования не будут выполнены. Разработка через тестирование (TDD), разработка через поведение (BDD) и разработка через приемочное тестирование (ATDD) — три метода, поддерживающих этот процесс. TDD, BDD и ATDD — это методы, используемые при разработке программного обеспечения для тестирования и обеспечения качества. Хотя они оба стремятся улучшить качество разработки программного обеспечения, их подходы и проблемы различаются. В этой статье будут рассмотрены концепции TDD, BDD и ATDD, а также различия между ними.

Разработка через тестирование (TDD)

Разработка через тестирование (TDD) — это методология разработки программного обеспечения, которая фокусируется на написании тестов перед написанием кода. Это итеративный процесс, который включает в себя написание тестов, их выполнение, а затем написание кода, который проходит тесты. Цель TDD — написание высококачественного, поддерживаемого кода, который соответствует требованиям и не содержит ошибок.

TDD состоит из следующих трех этапов:

Красный: напишите неудачный тест.

Зеленый: напишите код, чтобы пройти тест.

Рефакторинг: Рефакторинг кода для улучшения его качества.

TDD обычно используется в гибких методологиях разработки программного обеспечения, в которых особое внимание уделяется быстрой доставке программного обеспечения при сохранении высокого качества. TDD особенно полезен для небольших дополнительных изменений и побуждает разработчиков продумывать дизайн кода перед его написанием.

Разработка через тестирование (TDD) — это процесс разработки программного обеспечения, в котором особое внимание уделяется написанию автоматических тестов перед написанием реального кода. Процесс TDD состоит из трех этапов: красного, зеленого и рефакторинга.

На красной фазе разработчик пишет провальный тест, определяющий реализуемую функциональность. На зеленой фазе разработчики пишут минимальное количество кода, необходимое для прохождения тестов. На этапе рефакторинга разработчики улучшают качество кода и устраняют дублирование.

Разработка, основанная на поведении (BDD)

TDD гарантирует, что код тестируем и что написанные тесты соответствуют требованиям. TDD помогает выявлять дефекты на ранних этапах цикла разработки, сокращая затраты на их исправление и улучшая качество кода. TDD также поощряет разработчиков писать простой, модульный и удобный в обслуживании код.

Разработка, основанная на поведении (BDD) — это расширение TDD, оно фокусируется на Поведение системы,а не детали реализации. BDD основан на идее,То есть поведение системы должно быть описано так, чтобы его было легко понять как техническим, так и нетехническим заинтересованным сторонам.

В BDD тесты пишутся на более естественном языке, описывающем поведение системы. Эти тесты называются «сценариями» и обычно записываются в форме утверждений «Дано, когда, тогда». BDD поощряет сотрудничество между разработчиками, тестировщиками и заинтересованными сторонами в бизнесе, чтобы у всех было общее понимание поведения системы.

BDD имеет следующие три этапа:

1. Обнаружение: определение сценариев, описывающих поведение системы.

2. Формулировка: напишите сцену на естественном языке, который каждый сможет легко понять.

3. Автоматизация. Используйте среду тестирования для автоматизации сценариев.

BDD часто используется в гибких методологиях разработки программного обеспечения, где особое внимание уделяется сотрудничеству и общению между членами команды. BDD призывает разработчиков и тестировщиков думать о поведении системы с точки зрения пользователя, а не только о технических деталях.

Разработка, основанная на поведении (BDD) является расширением TDD.,Сосредоточьтесь на поведении программного обеспечения. BDD использует предметно-ориентированный язык (DSL) для описания желаемого поведения в удобочитаемом формате. BDD подчеркивает сотрудничество между разработчиками, тестировщиками и заинтересованными сторонами.,Чтобы гарантировать, что программное обеспечение соответствует потребностям бизнеса.

В BDD поведение описывается с помощью сценариев, описывающих взаимодействие пользователя и системы. Каждый сценарий состоит из набора шагов «Дано когда-то». Шаг «Дано» определяет начальные условия, шаг «Когда» определяет действие, а шаг «Тогда» определяет ожидаемые результаты.

BDD гарантирует, что программное обеспечение соответствует бизнес-требованиям и поставляется с ожидаемым поведением. BDD улучшает взаимодействие между заинтересованными сторонами, уменьшает недопонимание и обеспечивает наличие необходимой функциональности программного обеспечения.

Разработка через приемочное тестирование (ATDD)

Разработка через приемочное тестирование (ATDD) — это методология разработки программного обеспечения, направленная на обеспечение соответствия системным требованиям. ATDD основан на идее, что критерии приемлемости функции должны быть определены до написания кода. Это гарантирует, что функция соответствует требованиям и тщательно протестирована. Он расширяет принципы TDD и BDD, чтобы сосредоточиться Критерии приемки системы.

Разработка через приемочное тестирование (ATDD) — это процесс определения критериев приемки перед написанием фактического кода. ATDD похож на BDD,Но сосредоточьтесь на стандартах принятия, а не на поведении. ATDD предполагает сотрудничество между разработчиками, тестировщиками и заинтересованными сторонами.,Чтобы гарантировать, что программное обеспечение соответствует критериям приемки.

В ATDD критерии приемки определяются в виде приемочных испытаний, которые описывают ожидаемое поведение системы. Приемочные тесты записываются в коммерчески доступном формате и используются для проверки соответствия системы критериям приемки.

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

В ATDD тесты пишутся совместно разработчиками, тестировщиками и заинтересованными сторонами бизнеса. Тесты пишутся таким образом, чтобы описывать поведение системы с точки зрения пользователя. Эти тесты называются «приемочными тестами» и обычно записываются в форме утверждений «Дано, когда, тогда».

ATDD состоит из следующих трех этапов:

1. Спецификация: определяет критерии приемлемости функции.

2. Автоматизация. Используйте среду тестирования для автоматизации приемочного тестирования.

3. Проверка. Убедитесь, что характеристики соответствуют критериям приемки.

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

tdd
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose