Регрессионное тестирование - это образ жизни. Вам нужно будет регрессировать каждое приложение перед его выпуском. Однако, поскольку время и деньги обычно не бесконечны, вы должны сосредоточить свое тестирование на областях с наибольшим количеством изменений. Быстрый и грязный способ идентифицировать эти области - подсчитать строки кода, измененные в данной бизнес-сфере; скажем «бухгалтерский учет» или «управление пользователями». Сначала они должны пройти наибольшее количество испытаний вместе со всеми областями, которые вы определили как «критически важные».
Теперь я знаю, что измененные строки кода не обязательно являются лучшим способом измерения изменений. Если у вас есть четко определенные запросы на изменение, на самом деле лучше оценить эти горячие точки, посмотрев на количество и сложность запросов на изменение. Но не у всех такая роскошь.
Когда вы говорите о внесении изменений в платформу, вам, вероятно, не нужно тестировать весь код, который ее использует. Если вы говорите об изменении в чем-то вроде DAL, это в любом случае будет равнозначно всему. Вам просто нужно протестировать достаточно большой образец кода, чтобы быть достаточно комфортным, чтобы изменение было значительным. Опять же, начните с «критически важных» областей и наиболее пострадавших районов.
Я считаю полезным разделить проект на 3 отдельных потока кода; Разработка, обеспечение качества и производство. Разработка открыта для всех изменений, QA заблокирован, а Production заблокирован кодом (ну, в любом случае, заблокирован). Если вы выпускаете в производство ежемесячно, вы, вероятно, захотите ветвить сборку QA из кода разработки по крайней мере за 1 месяц до выпуска. Затем вы проводите этот приемочный тестирование новых изменений и регрессионное тестирование всего, что можете. Вам, вероятно, придется завершить тестирование изменений примерно за неделю до релиза, чтобы приложение можно было запустить, и вы могли несколько раз запустить установку. Вы не сможете пройти регрессионное тестирование, поэтому подготовьте стратегию выпуска патчей для Production. Не забудьте также объединить эти патчи с потоками кода QA и Development.
Автоматизация регрессионных тестов была бы действительно замечательной вещью; теоретически. На практике вы тратите больше времени на обновление кода тестирования, чем на запуск сценариев тестирования вручную. Кроме того, вы можете нанять двух или трех тестируемых обезьян по цене одного действительно хорошего разработчика тестового сценария. Печально, но это правда.