Ostatnio dużo czytałem na temat różnych procesów wdrażania aplikacji internetowych przy użyciu SVN lub GIT, z myślą o przeprojektowaniu tego, jak obecnie wdrażamy tam, gdzie pracuję.
Podobnie jak w przypadku wielu smaków Agile, zakłada się, że wszystko, co jest przeznaczone do opanowania lub pnia, jest gotowe do produkcji. Zarówno GitHub, jak i Etsy, http://codeascraft.etsy.com/2010/05/20/quantum-of-deployment/, mówią, że działają na tej podstawie (chociaż Etsy faktycznie ma środowisko testowe).
Ten proces zakłada, że wszystkie testy jednostkowe i testy CI zostały uruchomione. Testy uruchamiasz lokalnie i na CI, a następnie zatwierdzasz do trunkingu. SO, w tym momencie Twój kod jest poprawny technicznie .
Twój kod może być technicznie poprawny, ale testy użytkowników / funkcjonalne mogą odkryć więcej błędów, szczególnie jeśli chodzi o testy front-end.
Moje pytanie brzmi: Gdzie QA i właściciele firm testują wprowadzone przez Ciebie zmiany funkcji? Na lokalnym komputerze deweloperskim, zanim zaangażujesz się w magistralę, lub na maszynie kontroli jakości / pomostowej?
Jeśli masz maszynę pomostową, która znika z magistrali, i zakładasz, że cały kod przypisany do magistrali jest gotowy do produkcji ... eh .. to w którym momencie kod jest podpisany i dobrze jest rozpocząć produkcję zarówno od strony technicznej, jak i biznesowej perspektywiczny? Jeśli masz tylko jedną maszynę pomostową, wielu programistów i właśnie tam kod ma zostać poddany kontroli jakości, to jak możesz wdrożyć z magistrali, skoro wiele zmian programistów może oczekiwać na wypisanie się.
Chciałbym usłyszeć, jak inni podeszli do tego?
źródło
Przeprowadziliśmy automatyczne testy akceptacji w tej samej gałęzi funkcji. Kiedy tworzysz kandydata do wydania, obejmuje on zautomatyzowane testy, które przeprowadziłeś, aby sprawdzić, czy funkcja została zaliczona. Testujesz także kandydata do wydania. Kiedy wszystko mija, promujesz to, łącząc się z mistrzem.
Więcej o tym procesie tutaj:
https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR
Sprawdź także komentarze.
Mam nadzieję że to pomoże,
Adam
źródło
Zasadniczo oczekiwanie na zatwierdzenie, zanim kod jest doskonały, zajmuje połowę czasu na przywrócenie zalet systemu kontroli wersji. (Bez większego opracowania, powiedziałbym, że jeśli nie zezwolono na wielokrotne zameldowanie do VCS, nie ma możliwości cofnięcia mojej własnej pracy!) Tak więc, jako praktykę, zawsze prosimy ludzi o pozostanie w odprawie (w ramach oddziału dla SVN lub mogą to być lokalne zatwierdzenia w przypadku GIT) tyle, ile chcą. W rzeczywistości im więcej, tym lepiej.
Jednak gdy nadejdzie punkt, w którym wszystko wydaje się być zrobione i przetestowane - nazywamy to wydaniem, a następnie łączy się z pniem. Zasadniczo, QA może certyfikować RC, biorąc świeżą kontrolę
HEAD
w oddziale i jeśli on / ona jest w porządku, to samo łączy się z pniem.Zasadniczo używamy koncepcji oddziałów zadań lub oddziałów prywatnych, aby ludzie mogli dokonywać meldunków tyle, ile potrzebują. Jednocześnie bagażnik jest stosunkowo wolny od zepsutych odpraw.
źródło