Тестирование программного обеспечения/разработка тестов | Распространенные типы сред тестирования программного обеспечения: TDD, BDD, DDD, ATDD, введение в DevOps
Тестирование программного обеспечения/разработка тестов | Распространенные типы сред тестирования программного обеспечения: TDD, BDD, DDD, ATDD, введение в DevOps

Предисловие

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

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

Разработка через тестирование — это методология разработки, основная идея которой заключается в написании тестовых примеров перед написанием фактического кода. Эти тестовые примеры описывают ожидаемое поведение кода. Разработчики пишут код на основе этих тестовых примеров, чтобы гарантировать, что код пройдет все тесты и соответствует ожиданиям. Обычно этапами TDD являются: Написание тестовых примеров. -> Запустите тест (тест должен завершиться неудачно) -> написать код -> Запустите тест еще раз (тест должен пройти). Общие платформы TDD включают JUnit (Java), RSpec (Ruby) и unittest (Python).

Проекты, подходящие для TDD, имеют следующие характеристики:

  • Требования проекта должны быть достаточно ясными, а программист должен иметь достаточное понимание всех требований.
  • Сложность проекта и зависимости должны быть низкими. Для проекта со сложной бизнес-моделью и сильной взаимозависимостью между внутренними модулями внедрение TDD приведет к большему выигрышу, чем к потерям. Это приведет к очень большой нагрузке на программистов при разделении интерфейсов и написании тестового кода. Кроме того, поскольку зависимости между модулями слишком сильны, мы можем не использовать какой-либо режим моста при написании тестового кода, что неизбежно увеличит рабочую нагрузку программистов.

Тестирование, управляемое данными (DDT)

Тестирование, основанное на данных, — это метод тестирования.,Это позволяет запускать несколько тестов с одним и тем же тестовым кодом, используя разные входные данные. Это уменьшает дублирование кода,Улучшите тестовое покрытие. Часто для тестирования одного и того же фрагмента кода или функциональности используются разные наборы данных.,проверить его поведение в различных ситуациях。общийDDTИнструменты включают в себяpytest(Python)、TestNG(Java)иJUnit(Java)。

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

Разработка, основанная на поведении, — это подход к разработке программного обеспечения, предназначенный для улучшения взаимодействия и сотрудничества между членами команды. BDD фокусируется на поведении программного обеспечения и его ожидаемых результатах, описывая поведение приложения с помощью сценариев и спецификаций, написанных на естественном языке. Он объединяет требования, тесты и документацию в исполняемую спецификацию. Обычно используемые платформы BDD включают Cucumber (поддерживает несколько языков, таких как Java, JavaScript и Ruby), Behave (Python) и SpecFlow (для платформы .NET).

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

BDD — метод тестирования, основанный на поведении системы.,Этот подход определяет ряд подходов к разработке функциональных точек на основе поведения системы.。Given(Подскажите условия эксплуатации)-When(Выполните соответствующие действия)-Then(получить ожидаемый результат)Используется ли метод для написания тестовых примеров?:

  • Given(Подскажите условия эксплуатации):Пользователь вводит действительные учетные данные для входа
  • When(Выполните соответствующие действия):Пользователь нажимает кнопку входа в систему
  • Then(получить ожидаемый результат):Показать сообщение об успешной проверке

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

Похоже на: БДД,ATDD также влияет на поведение программного обеспечения.,Но он больше ориентирован на сотрудничество между командами разработчиков, бизнес-аналитиками и клиентами. Целью ATDD является обеспечение четкого понимания командой разработчиков бизнес-требований.,и перевести эти требования в проверяемые тесты。Это гарантирует, что разработанное программное обеспечение действительно соответствует потребностям бизнеса.。FitNesseRobot FrameworkиCucumberможет быть использован дляATDD。

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

DevOps

DevOps (комбинация разработки и эксплуатации) — это культура, движение или практика, в которой ценится общение и сотрудничество между «разработчиками программного обеспечения (Dev)» и «специалистами по эксплуатации и обслуживанию ИТ (Ops)». Автоматизируя процессы «доставки программного обеспечения» и «изменения архитектуры», сборка, тестирование и выпуск программного обеспечения могут происходить быстрее, чаще и надежнее.

Подвести итог

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

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 и детали кода