ทุกๆครั้งเวลาที่จะเขียนเทสสิ่งที่ผมคิดอยู่เสมอคือ การเขียนเทสในลักษณะใดที่จะทำให้เทสสร้างความมั่นใจให้แก่เราได้สูงสุด ในขณะที่เทสนั้นมีต้นทุนต่ำที่สุด
แนวทางในการเขียนเทสให้ได้แบบนั้น มีดังนี้
- เทสต้องรันได้เร็ว ถ้ามันช้าเราจะไม่อยากรัน ไม่อยากเขียนเพิ่ม
- เทสต้องดูแลได้ง่าย ซึ่งหมายถึง
- เขียนง่าย การ setup ต้องไม่ซับซ้อน
- อ่านง่าย ชัดเจนว่าต้องการทดสอบอะไร
- faill เมื่อควรจะ fail จริงๆ
- ไม่ fail แบบ random
- เขียนให้น้อยที่สุดที่ตราบที่เรายังมั่นใจเวลาเราจะแก้โค้ด ตราบที่เรายังมั่นใจเวลาเราจะ deploy
- ยิ่งปริมาณเทสเยอะยิ่งมีแต่วันที่มันจะรันช้าลง
- ถ้าเราไม่เทสตรงนี้ ความเสียหายคืออะไร เรายอมรับได้มั้ย ถ้าเราพบภายหลังสามารถแก้ไขได้ยากหรือง่ายเพียงใด
- บางจุดที่ถ้ามันมี error หรือ bug เราจะรู้หรือเห็นได้ทันที ผมก็ไม่เขียนเทส