ฉันทำงานกับทีมผู้บริหารที่ บริษัท อินเทอร์เน็ตขนาดใหญ่มาก เราใช้กระบวนการที่คุณระบุไว้ด้านบนและเราเลือกกระบวนการนั้นตามวัตถุประสงค์ ในวิธีการของเราการจัดเตรียมทำหน้าที่เป็นกลไกการแยกย่อยสำหรับการทดสอบขั้นสุดท้ายในการผลิต
เห็นได้ชัดว่าคุณต้องการทำการทดสอบทั้งหมดก่อนที่จะไปผลิต แต่ในสภาพแวดล้อมที่ซับซ้อนขนาดใหญ่ที่มีผู้ใช้จำนวนมากนั่นเป็นเป้าหมายที่ยากมากในการเข้าถึง โดยเฉพาะอย่างยิ่งเป็นไปไม่ได้ที่จะโหลดซอฟต์แวร์ทดสอบใน QA อย่างเพียงพอ การทดสอบการทำงานนั้นง่ายกว่าการทดสอบโหลดโดยอัตโนมัติ เมื่อคุณมีผู้ใช้หลายพันคนกดปุ่มเซิร์ฟเวอร์ของคุณสิ่งต่างๆล้มเหลวในวิธีที่แปลกและยากที่จะคาดการณ์
ดังนั้นนี่คือสิ่งที่เราทำ:
- พัฒนาการ
- รวมถึงการรวมอย่างต่อเนื่องและการทดสอบอัตโนมัติ
- ปล่อยการทดสอบ
- กลุ่มของฉันวิเคราะห์การเปิดตัว
- ตรวจสอบบันทึกการติดตั้ง
- การทดสอบย้อนกลับ
- ระบบประกันคุณภาพ
- การทดสอบการยอมรับของผู้ใช้
นั่นคือจุดที่เราแยกระหว่างการจัดเตรียมและการผลิต เราใช้โมเดลรถไฟสำหรับการเปิดตัวโดยมีรถไฟขบวนใหม่เริ่มทุกสองสามสัปดาห์ แม้แต่รถไฟหมายเลขก็ยังไปยังเซิร์ฟเวอร์ทดสอบ (ซึ่งอยู่ในระหว่างการผลิต) รถไฟหมายเลขแปลก ๆ ทำไม่ได้
ในระหว่างขบวนรถไฟคู่นักพัฒนามีความสามารถในการผลักดันการเปลี่ยนแปลงแต่ละครั้งไปยังเซิร์ฟเวอร์จัดเตรียม ( หลังจากการเปลี่ยนแปลงเหล่านั้นได้รับการทดสอบโดย QA แน่นอน) สิ่งนี้ช่วยให้พวกเขาตรวจสอบว่าซอฟต์แวร์ทำงานได้ตามที่คาดหวังในสภาพแวดล้อมการผลิตจริง โดยทั่วไปจะสงวนไว้สำหรับส่วนประกอบที่ถือว่ามีความเสี่ยงสูงเราไม่ได้ดันชิ้นส่วนเล็ก ๆ น้อย ๆ ให้อยู่ในระยะ
จากนั้นทุกคนเข้าใจว่าเมื่อการฝึกครั้งต่อไปเริ่มขึ้นมันจะลบล้างสิ่งที่อยู่บนเซิร์ฟเวอร์การจัดเตรียมและตั้งกลับไปที่พื้นฐานการรถไฟ นักพัฒนามั่นใจว่าการเปลี่ยนแปลงของพวกเขาเกิดขึ้นบนรถไฟหรือตัดสินใจว่าพวกเขายังไม่พร้อมสำหรับการใช้งานทั่วไปซึ่งในกรณีนี้การเปลี่ยนแปลงเหล่านั้นจะถูกลบบนเซิร์ฟเวอร์จัดเตรียม
สรุปแล้วคำตอบสั้น ๆ (อย่างน้อยสำหรับเรา) คือเป็นไปไม่ได้ที่จะทดสอบระบบที่ซับซ้อนใน QA อย่างสมบูรณ์ การจัดเตรียมเป็นวิธีที่ปลอดภัยในการทำการทดสอบการผลิตอย่าง จำกัด
ในบันทึกที่เกี่ยวข้องนี่คือสไลด์ของฉันจากงานนำเสนอที่ฉันเพิ่งให้กับกระบวนการปล่อยของเราทำงาน