Świetne pytanie. Nie wydaje mi się, żeby istniała „oficjalna” poprawna odpowiedź na to pytanie. To zależy od tego, jak szybko możesz przetestować.
Podstawowym problemem jest to, że każde scalenie, kompilacja, a nawet wdrożenie może potencjalnie spowodować błąd. Im dalej w górę łańcucha testujesz, tym wcześniej wiesz o błędach, ale także im więcej razy musisz ponownie testować.
Aby mieć pewność, że przetestowałeś oprogramowanie, z którego korzystają klienci, naprawdę musisz przetestować wdrożenie na żywo, zanim ruch klientów (przy założeniu aplikacji internetowej) zostanie skierowany na te serwery za pomocą niebieskiego / zielonego wzorca wdrażania.
Ale oczywiście jest to trochę za późno, aby po raz pierwszy sprawdzić kod w ogóle!
Jeśli przetestujesz gałąź wydania w środowisku qa env, możesz zaryzykować i zredukować testy na żywo tylko do testów dymu. i zastosuj poprawki błędów w gałęzi wydania. Ale nie możesz ocenić, czy funkcja jest kompletna przed utworzeniem wydania
Jeśli przetestujesz programowanie, otrzymasz mini gałęzie z funkcją naprawy błędów. Funkcje są nadal scalane przed ich oceną, a funkcje dla następnej wersji mogą kolidować z testowaniem bieżącej wersji.
Jeśli testujesz gałęzie Feature, potrzebujesz miliona środowisk i musisz uporządkować kolejność scalania i testować podpisy. plus dużo ponownych testów.
Z mojego doświadczenia polecam:
szybki test gałęzi funkcji na maszynie deweloperskiej. po prostu upewnij się, że jego funkcja jest kompletna, a testerzy / deweloperzy są zgodni co do wymagań.
Codzienne testy / testy automatyczne w oddziale deweloperskim wdrożonym na serwerach qa. Pozwala przetestować wszystkie funkcje razem i powiedzieć, kiedy będziesz gotowy do wydania.
Jeśli wszystkie funkcje są włączone, ale testy nie zostały zakończone. np. sprint jest zakończony. utworzyć gałąź wydania i wdrożyć w drugim środowisku qa. Pozwala to na poprawianie / testowanie błędów w wersji 1, aby kontynuować w tym samym czasie, co funkcje w wersji 2.
(wielbiciele Scrum powiedzą, że w sprincie 2 powinieneś umieszczać tylko poprawki błędów, ale bądźmy praktyczni)
Testy dymu podczas wdrażania zielonego / niebieskiego na żywo przed przełączeniem. Są to bardzo ważne, ponieważ wychwytujesz błędy konfiguracji / środowiska, których nikt tak naprawdę nie szuka podczas programowania.