Модульное тестирование, TDD и BDD – Какая разница?

Вы, вероятно, должно быть, слышали, как кто-то говорит о том, модульное тестирование, TDD (Test-Driven Development – Разработки на основе Тестирования) или BDD (Behavior-Driven Development – Развитие, Ориентированное Поведение). Но в чем реальная разница между ними? И что я должен использовать? Вопросы и ответы, хотя не существует одного правильного ответа, что все хорошие разработчики согласны с тем, необходимо тестирование.

Модульное Тестирование (Unit Testing)

Начну по проще объяснить, модульное тестирование, visa тестирование модулей кода. Как правило, тест ограничивается функции, объекта или модуля. Эти испытания должны быть конкретными, функции, просто и быстро создать и запустить. Чем больше модульное тестирование вашего кода, у вас есть несколько ошибок будут пойманы, прежде чем ваш код пойти в производство. Модульное тестирование приносит спокойствие и уверенность для команды разработчиков, если они полагаются на то, что объем тестирования доступны, они знают, что изменение кода будет сделан с гарантией, возможные разрывы будут pegas рано в процессе развития.

Юнит-тесты должны быть изолированы от любой внешней зависимости, например, базы данных или сети. Если необходимо, существуют специальные библиотеки для simularem эти ситуации для вас. Основные принципы модульного теста должны быть там: Индивидуальные Испытания; Испытывают только одно, Изолированы друг от друга.

Существует путаница между модульного тестирования и автоматизированного тестирования, они не одно и то же. Существуют различные виды автоматизированного тестирования, вот основные:

  • Юнит-тесты: один кусок кода (как правило, объект или функция) – это испытанное, изолированный от других частей.
  • Тестирование интеграции: различные компоненты протестированы вместе, например, испытывая код доступа к базе данных в тестовую базу данных или даже взаимодействия между службами распределены.
  • Тесты E2E (End to End): Метод, используемый для проверки, если поток приложения, от начала и до конца ведет себя, как ожидалось.

Важно понимать эти различия, по следующей причине: Если вы пишете unit test и не легко писать, это, скорее всего, он не модульное тестирование. Тестирование интеграции и принятие, например, являются более сложными и, как правило, медленнее, поэтому убедитесь, что вы на самом деле испытывая unitariamente.

TDD (Test-Driven Development – Разработки на основе Тестирования)

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

  1. Начинает писать тест
  2. Запустите тест и другие тесты.Их испытания только что добавленный должен произойти сбой. Если не удастся здесь, не может быть тестирование-правильно, и, таким образом, есть ошибка
  3. Введите минимальный объем кода, необходимый для того, чтобы тест пройти
  4. Запустите тесты, чтобы проверить новые билеты тест
  5. Рефакторинг при необходимости код
  6. Повторите с 1

Требуется определенное усилие, чтобы приспособиться к этой практике, но провести это время может вознаградить, и очень! Конструкции, которые применяются TDD обычно имеют покрытие тестирования от 90 до 100%, что означает, что это легко, чтобы сохранить код, и добавить новые возможности, гарантированное качество.

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

BDD (Behavior-Driven Development – Развитие, Ориентированное Поведение)

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

Общие проблемы с юнит-тесты плохие, что они очень сильно зависят как функция проходит проверку реализуется. Это означает, что, если вы обновите функцию, даже без изменения входов и выходов, также необходимо обновить тестирования. Что делает процесс утомительным и однообразным без необходимости, и это точно, ai, которые въезжают в BDD, в частности, реализации, тестирования.

BDD решает эту проблему, демонстрируя, как следует проверить. Вы не должны испытывать только в реализации, но да, поведение. Предлагая проверить поведение, а не как код реализован, мы начинаем размышлять, какой реальный сценарий. Как правило, вы пытаетесь разделить его испытания на “этот тест должен что-то делать”, например, для тестирования функции, которая увеличивает на один счетчик, “должны увеличить значение счетчика на 1”.

Сохранить себе или поделиться:

Add a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *