Чудове запитання. Я не думаю, що на це є "офіційна" правильна відповідь. Це залежить від того, наскільки швидко ви можете протестувати.
Основна проблема полягає в тому, що кожен злиття, компіляція або навіть розгортання потенційно може створити помилку. Чим далі ви будете перевіряти ланцюжок, тим швидше дізнаєтесь про помилки, але тим більше разів вам доведеться повторно перевіряти.
Для того, щоб бути впевненим, що ви протестували програмне забезпечення, яке користуються клієнти, вам дійсно потрібно протестувати розгорнуте розгортання до того, як клієнтський трафік (якщо веб-додаток) перенаправляється на ці сервери за допомогою синьо-зеленого шаблону розгортання.
Але очевидно, що це трохи пізно в день, щоб ви вперше перевірили код взагалі!
Якщо ви тестуєте гілку випуску в qa env, тоді ви можете ризикнути і зменшити тестування в режимі реального часу лише на тести на дим. і застосуйте виправлення помилок до гілки випуску. Але ви не можете оцінити, чи функція завершена до створення випуску
Якщо ви протестуєте розробку, то ви отримаєте міні-гілки виправлення помилок. Функції все ще об’єднуються до їх оцінки, плюс функції наступного випуску можуть зіткнутися з тестуванням поточного випуску.
Якщо ви тестуєте гілки функцій, вам потрібен мільйон середовищ, і ви повинні упорядкувати порядок злиття та тестування вивірок. плюс багато повторного тестування.
Зі свого досвіду я рекомендую:
швидкий тест гілки функцій на машині розробки. просто переконайтеся, що його функція завершена, і тестери / розробники домовляться про те, що означають вимоги.
Щоденне тестування / автоматичне тестування у відділенні розробників, розгорнутих на сервери qa. Дозволяє випробувати всі функції разом і сказати, коли ви готові до випуску.
Якщо всі функції є, але тестування ще не закінчено. наприклад, спринт завершений. зробити гілку випуску та розгорнути до другого середовища qa. Це дозволяє виправлення помилок / тестування при випуску 1 продовжуватись одночасно з функціями для випуску 2.
(Прихильники scrum скажуть, що ви повинні вводити лише виправлення помилок у спринт 2, але дозволяти бути практичним)
Випробування на дим на живому зеленому / синьому розгортанні перед перемиканням. Це дуже важливо, оскільки ви збираєте конфігураційні / екологічні помилки, яких ніхто не дійсно шукає під час розробки.