จากบทความเรื่อง Programmer Test Principles เขียนโดยคุณ Kent Beck
ทำการอธิบายเรื่องของ Programmer Test ไว้น่าสนใจดี
เลยทำการสรุปจากการอ่านไว้นิดหน่อย
จากบทความสรุปไว้สั้น ๆ ว่า Programmer test ควรจะ
- ไม่ต้องเสียเวลาในการรอ นั่นคือ ต้องทดสอบเร็ว (Waiting time == Waste) ดังนั้นเรื่องของ Fast feedback จึงสำคัญมาก
- ยิ่งเร็วมากเท่าไร ยิ่งช่วยลดการ debug ลงไปมากเท่านั้น
- เร็วอย่างเดียวไม่พอ ชุดการทดสอบต้องมีความน่าเชื่อถือด้วย
- ลดความกลัวเมื่อต้อง deploy หรือช่วยให้เรารู้ว่าสิ่งที่เกิดขึ้นหลังจาก deploy เป็นอย่างไร หรือช่วยบอกว่าเราควร deploy ไหม
- ถ้าโครงสร้างเปลี่ยนหรือทำการปรับปรุงแล้ว test ต้องไม่พัง (Refactor)
- ถ้าพฤติกกรมการทำงานเปลี่ยนแล้ว แน่นอนว่า test ต้องพังหรือไม่ผ่าน
- ง่ายต่อการเขียน อ่านและเปลี่ยนแปลง ซึ่งตรงนี้ต้องใช้ประสบการณ์มากพอสมควร ถ้าดูแลไม่ดีแล้วชุดการทดสอบก็จะเป็นภาระเพิ่มมาอีกนะ
มันจึงเป็นเรื่องที่ไม่ง่ายเลย
แต่สิ่งเหล่านี้คือสิ่งสำคัญที่ programmer ควรทำหรือสร้างขึ้นมา
เพราะว่า เรื่องของการทดสอบนั้น ไม่มีใครมาให้ราคา
เวลาคนจ้าง เขาจ้างให้เราสร้างระบบงานขึ้นมา ไม่ได้จ้างให้มาเขียนชุดการทดสอบ
แต่ถ้าเราไม่เขียนแล้ว ปัญหาต่าง ๆ ที่เกิดขึ้นก็จะมาลงที่ programmer แน่นอน
ขว้างงูไม่พ้นคอแน่ ๆ
ดังนั้นทำเถอะนะ ยากแต่มีประโยชน์