Многие инженеры-программисты скажут вам, что функция, приложение или даже устройство, не прошедшие тщательного тестирования, имеют далеко идущие последствия. Эта блестящая статья, опубликованная Эриком Эллиотом, приписывает отказ от тщательного выполнения TDD одной из причин крушения Boeing 737 Max (Обязательно прочитать, кстати). Это похоже на то, как когда мы идем в больницу для лечения, врачи проводят анализы, прежде чем прописывать нам лекарства, чтобы убедиться, что они поступают правильно.

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

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

Преимущества TDD

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

Недостатки TDD

  • TDD занимает больше времени, чем просто написание кода без тестов.
  • Есть вероятность написания плохих тестов.

Затем у нас есть цикл TDD под названием Red, Green, Refactor, структура, используемая разработчиками для выполнения следующих действий;

  • Красный – напишите неудавшийся тест.
  • Зеленый — напишите производственный код, которого достаточно для прохождения теста.
  • Рефакторинг. И, наконец, рефакторинг кода, который вы написали.

Как можно сказать, что они написали хороший тест? TDD the RITE Way Эрика Эллиота объясняет, как следует подходить к написанию хорошего теста. Давайте попробуем пройти их вместе;

  1. Rчитаемый
  • Наши тесты должны правильно определять наш код, чтобы разработчикам в вашей команде не было сложно понять его истинные намерения.

2. Яв одиночестве

  • Тесты должны быть раздельными, чтобы избежать негативного влияния друг на друга.

3. Тбольшой

  • Помните, я упоминал, что тесты должны быть достаточно строгими? Ваши тесты должны удовлетворять всем возможным сценариям.

4.Eявный

  • Детали или информация для воспроизведения наших тестов должны быть доступны для всех, кто имеет доступ к нашим тестам. Точно так же, как файл readme в нашем репозитории GitHub, в котором объясняется, о чем ваш проект, какие пакеты нужно установить и т. д.

Типы тестов

Три основных типа тестов включают в себя;

  1. Модульные тесты
  • Протестируйте отдельные части функциональности, чтобы убедиться, что каждая единица программного кода работает должным образом.

2.Интеграционные тесты

  • Убедитесь, что отдельные части нашего кода работают вместе, например, клиент, API и сервер беспрепятственно взаимодействуют.

3. Тесты E2E

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

Вывод

Мы прошли через следующее;

  • Что такое ТДД?
  • Преимущества и недостатки TDD.
  • Цикл ТДД.
  • И, наконец, три основных типа тестов.

Следующие шаги

В следующей серии мы запачкаем руки, написав модульные тесты. Оставайтесь с нами… 😊