Что такое 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
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода