คำถามที่น่าสนใจ
จากทีมที่เริ่มนำแนวทางของการทดสอบแบบอัตโนมัติมาใช้งาน
ทั้ง Unit testทั้ง API testทั้ง UI test
หรือจะเป็น integration, component และ contract test ก็ตาม
ปัญหาที่มักจะพบเจอประกอบไปด้วย

  • ใช้เวลาในการทดสอบเยอะขึ้นเรื่อย ๆ เนื่องจากจำนวน test เยอะขึ้น
  • มี test case จำนวนมากที่ผ่านบ้าง ไม่ผ่านบ้าง ทั้ง ๆ ที่ไม่ได้เปลี่ยนแปลงอะไร (Flaky test)

เราจะแก้ไขและปรับปรุงอย่างไรดี ?

ปัญหาที่จะแก้ไขคือ เวลาการทดสอบเยอะ

สาเหตุมาจากจำนวนการทดสอบในส่วนของ functional test เยอะเกินไป
ทั้ง UI, API และ integration test ต่าง ๆ
ดังนั้นจำเป็นต้องกลับมาดูว่า
test case อะไรบ้างที่จำเป็น และ ไม่จำเป็นต้องมีก็ได้
หรือทดสอบใน level ต่ำลงมา
เช่น component, contract และ unit test มากขึ้น

รวมทั้งการปรับปรุงการทดสอบให้เร็วขึ้น

ทั้งเรื่องของ การเขียน script
ทั้งเรื่องของ การ run test ทั้ง parallel และ distributed testing

อีกปัญหาที่พบมาก ๆ คือ การเตรียมระบบ
เพื่อทำการทดสอบทั้ง infrastructure, software และ data ที่ต้องใช้
ใช้เวลาไปเกือบ 50% ของการทดสอบ
ดังนั้นจึงต้องปรับเปลี่ยนรูปแบบของการเตรียมระบบ
ทั้งเรื่องของ architecture ที่เล็กลง ซับซ้อนน้อยลง เป็นต้น

ถึงแม้ว่าจะลดจำนวนของ test cae ลงไป

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