Рефакторинг для тестируемости в существующей системе

Мы присоединились к команде, которая работает над продуктом. Этот продукт существует уже около 5 лет и использует ASP.NET WebForms. Его оригинальная архитектура со временем исчезла, и во всем решении все стало относительно неорганизованным. Это's ни в коем случае не ужасен, но определенно может использовать некоторую работу; Вы все знаете, что я имею в виду.

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

Вся команда находится на борту для необходимости внести структурные изменения посредством рефакторинга, но наш менеджер проекта выразил некоторые опасения, что мы нене иметь адекватных тестов для проведения рефакторингов с уверенностью, что мы не• введение ошибок регрессии в систему. Он хотел бы, чтобы мы сначала написали больше тестов (против существующей архитектуры), а затем провели рефакторинг. Мой аргумент в том, что системаСтруктура классов s слишком тесно связана для написания адекватных тестов, и использование более тестового подхода, пока мы выполняем наши рефакторинги, может быть лучше. Под этим я подразумеваю не написание тестов для существующих компонентов, а написание тестов для конкретных функциональных требований, а затем рефакторинг существующего кода для удовлетворения этих требований. Это позволит нам писать тесты, которые, вероятно, будут иметь больший срок службы в системе, чем писать кучу «выбросить' тесты.

Есть ли у кого-нибудь опыт относительно того, как лучше всего действовать? У меня есть свои мысли, но я хотел бы услышать мнение сообщества.

Ответы на вопрос(5)

Ваш ответ на вопрос