เป็นคำถามที่ดีมาก ฉันไม่คิดว่าจะมีคำตอบที่ถูกต้อง 'อย่างเป็นทางการ' นี้ ขึ้นอยู่กับความเร็วในการทดสอบของคุณ
ปัญหาที่สำคัญคือการรวมการรวบรวมหรือการปรับใช้แต่ละครั้งอาจสร้างข้อบกพร่องได้ ยิ่งคุณทดสอบห่วงโซ่มากขึ้นเท่าไหร่คุณก็ยิ่งรู้ข้อบกพร่องได้เร็วขึ้นเท่านั้น แต่คุณต้องทดสอบอีกครั้ง
เพื่อให้มั่นใจได้ว่าคุณได้ทดสอบซอฟต์แวร์ลูกค้าที่ใช้งานคุณต้องทดสอบการใช้งานจริงก่อนการรับส่งข้อมูลลูกค้า (สมมติว่าเว็บแอป) ถูกส่งไปยังเซิร์ฟเวอร์เหล่านั้นผ่านรูปแบบการปรับใช้สีน้ำเงิน / สีเขียว
แต่เห็นได้ชัดว่านี่มันค่อนข้างช้าในวันนี้เป็นครั้งแรกที่คุณตรวจสอบรหัสเลย!
หากคุณทดสอบสาขาปล่อยใน qa env คุณสามารถรับความเสี่ยงและลดการทดสอบสดเพื่อทดสอบควันเท่านั้น และใช้การแก้ไขข้อบกพร่องกับสาขาที่วางจำหน่าย แต่คุณไม่สามารถประเมินได้ว่าคุณลักษณะเสร็จสมบูรณ์ก่อนสร้างการเปิด
หากคุณทดสอบการพัฒนาคุณจะได้รับการแก้ไขข้อบกพร่องเล็ก ๆ คุณลักษณะจะยังคงถูกรวมเข้าด้วยกันก่อนที่จะถูกประเมินรวมถึงฟีเจอร์สำหรับการเปิดตัวครั้งต่อไปสามารถชนกับการทดสอบการเปิดตัวปัจจุบัน
หากคุณทดสอบสาขาคุณลักษณะคุณต้องการสภาพแวดล้อมนับล้านและต้องจัดลำดับการรวมและปิดการลงชื่อเข้าใช้ บวกกับการทดสอบซ้ำอีกจำนวนมาก
จากประสบการณ์ของฉันฉันอยากจะแนะนำ:
การทดสอบอย่างรวดเร็วของฟีเจอร์ Branch บนเครื่อง dev เพียงแค่ทำให้คุณสมบัติสมบูรณ์และผู้ทดสอบ / ผู้พัฒนาเห็นด้วยกับความต้องการ
การทดสอบแบบวันต่อวัน / การทดสอบอัตโนมัติในสาขา dev ถูกปรับใช้กับเซิร์ฟเวอร์ qa ให้คุณทดสอบคุณสมบัติทั้งหมดเข้าด้วยกันและพูดเมื่อคุณพร้อมที่จะปล่อย
หากคุณสมบัติทั้งหมดอยู่ใน แต่การทดสอบยังไม่เสร็จสิ้น เช่นการวิ่งเสร็จสมบูรณ์ ทำให้สาขาย่อยและปรับใช้กับสภาพแวดล้อม qa ที่สอง สิ่งนี้ช่วยให้การแก้ไขข้อผิดพลาด / การทดสอบในรีลีส 1 ดำเนินการต่อในเวลาเดียวกับฟีเจอร์สำหรับรีลีส 2
(ผู้ชื่นชอบการต่อสู้จะบอกว่าคุณควรใส่เฉพาะการแก้ไขข้อบกพร่องใน sprint 2 แต่ให้ใช้งานได้จริง)
ทดสอบควันในการปรับใช้สีเขียว / สีน้ำเงินสดก่อนที่จะสลับ สิ่งเหล่านี้มีความสำคัญอย่างยิ่งเนื่องจากคุณจะได้รับข้อผิดพลาดของการกำหนดค่า / สภาพแวดล้อมที่ไม่มีใครมองหาในขณะที่กำลังพัฒนา