Юнит-тестирование Новичкам необходимо юнит-тестирование

Юнит-тестирование Новичкам необходимо юнит-тестирование
Юнит-тестирование Новичкам необходимо юнит-тестирование - noaa @ Unsplash

Я работаю с новой командой, которая исторически не проводила НИКАКОГО модульного тестирования. Моя цель состоит в том, чтобы команда в конечном итоге использовала TDD (Test Driven Development) как свой естественный процесс. Но поскольку TDD - это такой радикальный сдвиг в сознании для команды, не занимающейся юнит-тестированием, я решил начать с написания юнит-тестов после кодирования.

Кто-нибудь был в похожей ситуации? Каков эффективный способ приучить команду к TDD, если они не проводили юнит-тестирования? Имеет ли смысл делать это в несколько этапов? Или лучше сразу погрузиться в процесс и столкнуться со всеми трудностями роста?

EDIT

Для уточнения, в команде нет никого (кроме меня), кто имел бы опыт тестирования модулей. И мы планируем использовать функциональность модульного тестирования, встроенную в Visual Studio.

Практика на существующих ошибках/дефектах.

Это действительно сложная ситуация. Я никогда раньше не переходил к TDD из ничего, но, по моему опыту, заставить команду перейти от отсутствия юнит-тестов к их активному написанию - это очень сложный подход "шаг за шагом".

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

  1. ожидаемое предусловие и постусловие
  2. результат, который в данный момент не является тем, что ожидается, и нарушает данное предусловие/постусловие

Это дает участникам очень конкретные практические примеры. Они могут написать тест до исправления ошибки, чтобы он не сработал. Затем они могут исправить код так, чтобы он прошел и исправил ошибку. Когда они освоят это, вы сможете довести их до конца, чтобы они могли писать модульные тесты без кода, а затем писать новый код, чтобы тесты прошли.

Я думаю, что фокус в том, чтобы дать им что-то для практики, где есть четкие предварительные и последующие условия метода. Если требования к методам нечеткие, даже опытным TDD-специалистам трудно понять, с чего именно начать. Делайте шаг за шагом, и у вас все получится. Удачи!


LetsCodeIt, 22 мая 2023 г., 08:31