Разделение написания юнит тестов в команде

Привет. Я работаю в достаточно большой фирме над проектом разрабатывающимся 12 программистами. Проект довольно большой (более 20 maven-модулей) и его основная проблема это почти полное отсутсвие юнит тестов (есть 300 тестов, но почти все они на интеграчном уровне и низкого качества). Тимлидер и компания понимают, что наличие тестов вещь хорошая и нужная, но на текующий момент не хотят вводить обязательное написание юнит-тестов каждым разработчиком (почти никто из них не имел опыта написания тестов, плюс слишком жесткие временные рамки, чтобы разрешать «проникшимся» проектом девелоперам, тратить время НЕ на написание новых фич).

Сейчас, мы пробуем сделать раздельное написание юнит тестов. Разработчик1 (тестер) и разработчик2 (реализатор) получают подробную функциональную спецификацию (use-casы, описание бизнес-логики и т.д.), тестер ответственен за написание тестов, реализатор, соотвественно, пишет реализацию тестов.

Такой подход влечет за собой много разных минусов (например, тестер не получает фидбак от написание кода, тестер может не так понять юз-кейсы и тем самым написать неправильный тест, реализатор без тестера может написать не testing-friendly код, и т.д.).

Главное, что требует начальство, это позволить разработчику1 писать только реализацию а разработчику2 только тесты.

Вопрос: пробывал ли кто-нибудь в своей организации что-либо подобное? С какими проблемами при этом столкнулись и как их решали?
  • Вопрос задан
  • 3450 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rtorsten
Бедный, бедный имплементатор тестов… программисты наговнокодят в связи с «жесткими временными рамками», а он будет пытаться разобраться в этом, не говоря уже о том что программисты могут просто не создать минимальный API для реализации тестов. Писать тесты должен тот кто пишет код, поскольку он его знает лучше всех и всегда может его отрефакторить для того чтобы тесты вообще можно было написать.

Начать надо хотя бы с того что писать тесты для того кода, который вы только что написали, и постепенно для того что уже написан. Тот кто понимает зачем нужны тесты, пишет их без напоминаний, потому что знает что один-два дня потраченных на написание тестов заменит недели отладки, в том числе и поможет найти такие ошибки, которые могут обнаружится через месяц, или более использования в продакшине. Но это трудно понять, если сам через это не прошел (я тоже таким был). Вначале меня заставляли — и я их писал. Сейчас я не могу представить как можно писать код без тестов, для меня это необходимый запас прочности.

На скорость написание тестов так же влияет фреймворк, поэтому обучение его использованию так же играет весомую роль.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы