ЧТО ТАКОЕ РАЗРАБОТКА НА ТЕСТИРОВАНИИ? КАК ЭТО РАБОТАЕТ?

Как разработка через тестирование помогает программистам писать лучший код

Если вы увлекаетесь программным обеспечением разработки, вы наверняка слышали о подходе к разработке через тестирование (TDD). Чем он отличается от традиционного процесса разработки? Что делает его особенным? И в чем смысл его использования?

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

Начнем с основы.

Что такое TDD?

TDD означает разработка через тестирование. Это методология разработки программного обеспечения, которая предлагает подход к программированию “сначала тестирование, потом код”.

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

Существуют два других метода тестирования, похожих на разработку через тестирование: разработка, управляемая поведением (BDD). и разработка на основе приемочного тестирования (ATDD).

В BDD тестирование основано на поведении системы, а ATDD фокусируется на удовлетворении функционального поведения системы.

Ключевые отличия:

  • TDD фокусируется на реализации функции
  • BDD фокусируется на поведении системы
  • ATDD фокусируется на точном определении требований.

Подробнее о TDD, BDD и ATDD.

Но вернемся к разработке через тестирование.
< br>Вот как работает TDD. В цикле TDD разработчик пишет модульный тест (разбивает приложение на небольшие части — модули, каждый модуль тестируется отдельно), который определяет функцию, а затем пишет код. который проходит этот тест.

Рабочий процесс выглядит следующим образом:

  1. Разработчик пишет тест.
  2. Выполняет тест и видит, что он не прошел.< ли>Пишет код.
  3. Выполняет тесты еще раз.
  4. Переписывает код.
  5. Повторяет до тех пор, пока тест не будет успешным.
  6. Буго!

ЧТО ТАКОЕ РАЗРАБОТКА НА ТЕСТИРОВАНИИ? КАК ЭТО РАБОТАЕТ?

В идеальном мире в процессе должны быть задействованы два специалиста — два разработчика или разработчик и QA-инженер. Но это не правило: один и тот же разработчик может писать как модульные тесты, так и программный код в технике TDD.

Как работает TDD?

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

Нам нужно создать простую форму, в которую мы вводим возраст и вес собаки и рассчитываем, сколько еды собака должна съедать в день.

Давайте подойдем к этой задаче с помощью техники TDD:

  1. Напишите тест, проверяющий, что функция getDogFood() возвращает нужные значения в различных ситуациях.
  2. Увидите, что тест не прошел.
  3. Напишите очень простой код функции, чтобы пройти тест.
  4. Убедитесь, что тест пройден.
  5. Подумайте о качестве кода, который мы написали. Мы можем реорганизовать или изменить все, что захотим, поскольку у нас есть тесты, которые укажут на проблему (если есть).
  6. Повторите шаги.

Далее вам нужно описать это, используя специальный синтаксис (зависит от на используемом вами инструменте).

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

Зачем мне нужен TDD?

Подход TDD к разработке приносит довольно несколько преимуществ:

  • вы продумываете свой код при планировании функции
  • вы находите ошибки в коде намного быстрее (и чем быстрее вы находите ошибку, тем дешевле исправить это)
  • помогает наладить связь между членами команды — разработчиком, QA, PM и т. д.
  • уменьшает передачу задач между разработчиком и QA
  • простой рефакторинг и обслуживание кода
  • хорошие тесты работают как документация и помогают новым членам команды быстрее адаптироваться
  • лучшее покрытие, которое приводит к уменьшению количества ошибок на 40–80%

В долгосрочной перспективе это может даже снизить затраты на разработку программного обеспечения. Да, разработчикам и QA-инженерам нужно время, чтобы написать эти тесты: разработка функции с помощью автоматизированных тестов может стоить на 20–50 % дороже.

Но в долгосрочной перспективе процесс идет гораздо быстрее — тестируется вся функциональность. автоматически после изменения или модификации.

ЧТО ТАКОЕ РАЗРАБОТКА НА ТЕСТИРОВАНИИ? КАК ЭТО РАБОТАЕТ?

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

Биография автора: Виталий Купренко — технический писатель Cleveroad. Компания по разработке веб и мобильных приложений в Украине. Ему нравится рассказывать о технических инновациях и цифровых способах развития бизнеса.
TAG: qa

От QA genius

Adblock
detector