เพิ่งอ่านบทความเรื่อง We didn’t write tests because we wanted to get our code out faster

กับเจอคำถามว่าในกลุ่ม QA & Testers Thailand ว่า

เวลาเราเขียน automate api เช่นกรณีเบอร์โทร
ถ้าหน้าบ้านมันดักอยู่ว่าไม่ให้ใส่เกิน 10 ตัว
ใน api เราจำเป็นต้องเช็คไหมคะว่าห้ามเกิน

เป็นสิ่งที่น่าสนใจทั้งคู่ จึงสรุปไว้หน่อย

คำตอบในเรื่องที่สองคือ

น่าจะกลับมาคุยกันก่อนว่า แยก frontend และ backend ออกจากกันทำไม
เพราะว่าถ้ามีแค่ส่วนเดียว
ก็ทดสอบที่เดียวไป ง่ายสุด ๆ ใช่ไหม ?

แต่ถ้าแยกกันเป็นสองส่วนแล้ว ไม่ว่าจะด้วยเหตุผลใด ๆ ก็ตาม
ก่อนที่ทั้งสองจะมาทำงานด้วยกัน
ก็จำเป็นต้องทำให้มั่นใจก่อนว่า
แต่ละส่วนทำงานได้ตามที่ต้องการและตกลงกันไว้
ไม่ว่าจะ success หรือ failure ก็ตาม

ส่วนเรื่องข้ออ้างต่าง ๆ จะกลับไปที่บทความแรก

คือเราไม่เขียน test เพราะว่า ต้องการพัฒนาให้เร็วขึ้นมันจริงหรือเปล่า ?
เราเขียน test เพื่อทำให้มั่นใจว่าสิ่งที่เคย work มันจะยังคง work เสมอ
ไม่ว่าเราจะเพิ่มหรือลบ code ใด ๆ
ตราบเท่าที่ requirement ยังไม่เปลี่ยน

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

ยิ่งเวลาผ่านไปจำนวน feature เริ่มมากขึ้น
ความซับซ้อนสูงขึ้น
ความเป็นไปได้ของ bug ก็มากขึ้นตามจำนวน code

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

Always test ครับ
แต่จะ test แบบไหน ก็ตามใจ
แต่ต้อง repeat ได้
ได้รับ feedback ที่รวดเร็ว
เท่านี้ก็พอแล้ว ไม่ขออะไรมาก