มีคำถามเกี่ยวกับการสร้าง repositry
สำหรับจัดเก็บชุดการทดสอบ (Automated testing) ว่าควรทำอย่างไรดี
ซึ่งปัจจุบันนั้นมักจะสร้าง repository แยกออกไปจาก source code ของทีมพัฒนา
ด้วยเหตุผลเรื่องความเป็นเจ้าของและง่ายต่อการดูแล
คิดว่ามีปัญหาหรือไม่ ?

ก่อนอื่นต้องกลับมาดูเป้าหมายก่อนว่า เราต้องการอะไร ?

เราต้องการสร้างชุดการทดสอบแบบอัตโนมัติเพราะว่าอะไร
เราอยากรู้ว่าสิ่งที่เราสร้าง เปลี่ยนแปลงนั้น
มันทำงานได้เป็นปกติหรือตามที่ต้องการหรือคาดหวังไว้ใช่หรือไม่
เราต้องการ feedback ที่รวดเร็วใช่หรือไม่
ดังนั้นการทำงานร่วมกันทั้งทีมพัฒนาและทดสอบ
จำเป็นต้องทำงานร่วมกันไปตลอดหรือเป็นทีมเดียวกันไปหรือไม่
ถ้าใช่นั่นหมายความว่า …

ถ้าเราทำการแยกที่จัดเก็บ มันหมายถึงแยกส่วนการทำงานและดูแลหรือไม่
ต่างฝ่ายต่างมี repository ของตนเอง
ดังนั้นการทำงานร่วมกันจะดีไหมนะ ต่างฝ่ายต่างทำแยกกันไป
มันคือการทำงานแบบ silo หรือไม่
ตอบโจทย์หรือเป้าหมายหรือไม่

ถ้าทีมพัฒนาทำการเปลี่ยนแปลงส่วนใด ๆ แล้ว
ทีมทดสอบจะรู้หรือไม่ หรือถ้ารู้จะรู้ทันทีหรือไม่
หรือกว่าจะรู้ต้องสร้างระบบที่ซับซ้อนขึ้นมารองรับ
มันก็สร้างความซับซ้อนในการทำงานขึ้นมาอีกหรือไม่

ดังนั้นการแยก น่าจะก่อให้เกิด
ปัญหาในการทำงานร่วมกันมากกว่าหรือไม่
สร้างความซับซ้อนในการทำงานร่วมกันหรือไม่
หรืออาจจบอกว่า เรามีระบบ Continuous Integration นะ
แต่กว่าจะ setup มันขึ้นมาได้ ก็ทำยากขึ้นหรือไม่
ชอบง่ายหรือยากเลือกเอาสิ

อีกอย่างเมื่อทำการแยกกันตั้งแต่ต้นแล้ว
คิดว่าจะมีการรวมหรือไม่ ตอบเลยว่าไม่มีทาง !!

ดังนั้นสำหรับการเริ่มต้น แนะนำให้รวมกันก่อน
เพื่อเรียนรู้การทำงานร่วมกัน
งานหนึ่ง ๆ จะเสร็จนั่นหมายความว่า
ทั้ง code และชุดการทดสอบต้องเสร็จและผ่านทั้งหมด

รวมทั้งยังช่วยลดชุดการทดสอบที่ซ้ำซ้อนในแต่ละ test level ได้อีกด้วย
และทั้งทีมพัฒนาและทดสอบ
สามารถนำ code มา run และทดสอบบนเครื่องของเราได้อีกด้วย
ช่วยสร้างความมั่นใจก่อนที่จะ commit และ push การเปลี่ยนแปลงไปยัง repository