Image may be NSFW.
Clik here to view.
Clik here to view.

แต่สิ่งที่น่าแปลกใจก็คือ ไม่นำการทดสอบ (Testing) เข้ามาร่วมทำงานกับ Continuous Integration !!
ทีมที่มีการนำแนวคิด Continuous Integration มาใช้นั้น
จะเริ่มจากการสร้างระบบ Continuous Integration Server ทำหน้าที่ build, package และ deploy/release ระบบงาน ส่วนการทดสอบยังคงทำแบบเดิม หรือ แบบ manual !! ถ้าถามว่ามันมีข้อดีไหม ? ตอบได้เลยว่ามีข้อดีมาก เช่น- ทำให้ทีมพัฒนารู้ว่า source code สามารถ compile ได้หรือไม่
- ทำให้ทีมพัฒนารู้ว่า source code ทั้งหมดยังคงทำได้ได้ ไม่มีปัญหา
- ทำให้สามารถ deploy ไปยัง server ต่าง ๆ ได้อย่างรวดเร็ว โดยไม่ต้องใช้คน
แต่ปัญหาที่ตามมาคือ เรื่องของคุณภาพของระบบ !!เนื่องจากในแต่ละการ build/deploy นั้น ไม่มีชุดการทดสอบแบบอัตโนมัติอะไรเลย หรือไม่มีกระบวนการทดสอบเข้ามาอยู่ในระบบ Continuous Integration ซึ่งก่อให้เกิดปัญหาตามมามากมายเช่น
- ทีมพัฒนาไม่ทำการทดสอบทั้งระบบ
- ทีมทดสอบทำการทดสอบไม่ไหว
- ทีมทดสอบทำการทดสอบช้า
- ทีมทดสอบไม่ทดสอบทุก ๆ test case
- ทีมพัฒนาและทีมทดสอบไม่ทำการ regression test
ลองคิดดูสิว่า ถ้าต้อง deploy ระบบงานไปในแต่ละ environment ทั้ง Dev, Test, SIT, SUT, UAT, Staging, Production จะต้องทำการทดสอบกันอย่างไร ?ปัญหาเหล่านี้มันสะท้อนถึงโครงสร้างและกระบวนการขององค์กร ดังนั้นสิ่งที่ต้องแก้ไขทีคือ ต้องนำเอาการทดสอบเข้ามาอยู่ใน Continuous Integration ด้วยเสมอ โดยการทดสอบควรที่จะทำงานแบบอัตโนมัติอีกด้วย (Automated Testing)
โดยในระบบ Continuous Integration ควรมีความสามารถดังนี้ เพื่อทำให้การทดสอบมีประสิทธิภาพ
- Scalability สามารถทำการทดสอบทุก ๆ test case ได้ทุกครั้งเมื่อ source code เปลี่ยนแปลง
- Automation สามารถทำการทดสอบได้แบบอัตโนมัติ เมื่อเกิดปัญหาระบบจะหยุดทำงาน และแจ้งปัญหาออกมา
- Parallel testing เมื่อจำนวนของชุดการทดสอบเยอะขึ้น ดังนั้นระบบควรทำการทดสอบแบบขนานได้ เพื่อเพิ่มความเร็วของการทดสอบ
คำถามสำหรับทีมพัฒนาคือ
- วันนี้คุณนำแนวคิด Continuous Integration มาใช้แล้วหรือยัง ?
- วันนี้คุณนำกระบวนการทดสอบมารวมเข้ากับ Continuous Integration แล้วหรือยัง ?
- ถ้ามีแล้วจากนั้นคือ มันมีคุณค่า มีคุณภาพมากน้อยเพียงใด ?