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

ดังนั้นจึงขอแนะนำแนวทางที่คิดว่าน่าจะดี
เพื่อให้การทดสอบแบบ manual และ อัตโนมัติมันดีและยั่งยืน
มาเริ่มกันเลย

ต้องเข้าใจเกี่ยวกับการทดสอบขั้นพื้นฐานก่อน

ความรู้พื้นฐานมันสำคัญมาก ๆ
เช่น การทดสอบคืออะไร
ลองให้คนในทีมเขียนลงกระดาษสิ
แล้วจะเข้าใจได้ทันทีว่าเป็นอย่างไร

จากนั้นก็ว่าด้วยเรื่องของ Test Matuarity Model (TMM)
ซึ่งเป็น framework ว่าด้วยเรื่องของ test management process

ที่สำคัญต้องเข้าใจด้วยว่า ทำไมถึงต้องทดสอบ
ถ้ายังไม่เข้าใจ นั่นคือปัญหา
ที่ทุกคนในทีมต้องเข้าใจร่วมกัน

ที่สำคัญ ความหมายของการทดสอบแต่ละอย่าง
ก็สรุปกันให้ชัดเจน เช่น
Unit test
Regression test
Integration test
UAT
Non-functional test
ว่าเมื่อใดควรใช้
ใช้อะไร
ทำอย่างไร
เพื่อให้สามารถนำไปใช้ใน testing priocess ได้อย่างถูกต้องเหมาะสม
เพื่อให้ได้ผลลัพธ์ที่ดีขึ้น

ทำไมต้องทดสอบแบบอัตโนมัติด้วย ?

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

คำถามที่น่าสนใจคือ
ทำไมถึงเลือกใช้เครื่องมือตัวนั้นตัวนี้
ทั้ง ๆ ที่มีเครื่องมืออื่น ๆ อีกมากมาย

อย่าบอกนะว่า ใคร ๆ เขาก็ใช้
อย่าบอกนะว่า หน้าสั่งมา
อย่าบอกนะว่า พอดีที่บริษัทซื้อไว้แล้ว ใช้ ๆ ไปเถอะ

หัวใจคือ
ต้องเริ่มที่คน (People)
คนจะเป็นคนคิดและวางขั้นตอนการทำงาน (Process)
จากนั้นจึงเลือกเครื่องมือที่เหมาะสมกับคนและขั้นตอนมาใช้งาน (Tool)

เมื่อพร้อมแล้ว ทำการศึกษาที่ทำความเข้าใจกับเครื่องมือซะ

คำถามคือ ใครบ้างที่ควรรู้และเข้าใจ
ตอบง่าย ๆ คือ ทุกคนที่เกี่ยวข้องนั่นเอง

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

เริ่มจาก test case ง่าย ๆ ไม่ซับซ้อนกัน
เพื่อทำให้เราคุ้นชินกับเครื่องมือที่เลือก
ค่อย ๆ ทำไป
กำลังใจจะดีขึ้น
จำนวนของ test case จะมากขึ้นเอง

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

บอกไว้เลยว่า
เริ่มต้นที่ว่ายากแล้ว ที่เหลือนั้นยากกว่ามาก

อย่าลืม Refactor หรือทำการปรับปรุงโครงสร้างของ test case ด้วยละ

ปัญหาที่เจอบ่อยมาก ๆ สำหรับทีมที่มีชุดการทดสอบจำนวนมาก ๆ
คือ การดูแลรักษา
ซึ่งมันไม่ได้ต่างจาก source code ของระบบดลย
ดังนั้นให้ทำการปรับปรุง test case ให้ดีขึ้นอย่างต่อเนื่อง
ตัวอย่างเช่น
สิ่งที่ทำงานซ้ำ
สิ่งที่ทำงานช้า
สิ่งที่มักก่อให้เกิดความผิดพลาด

ที่สำคัญอย่างลืมปรับปรุงขั้นตอนทำงานให้ดีขึ้นด้วยนะ

อย่าลืมนำชุดการทดสอบแบบอัตโนมัติไปใส่ในขั้นตอนการทำงานด้วย

ชุดการทดสอบควรทำงานแบบอัตโนมัติ
เมื่อระบบงานมีการเปลี่ยนแปลงเสมอ
ยกตัวอย่างเช่น
เมื่อ source code มีการเปลี่ยนแปลง
เมื่อมีการ deploy ระบบใหม่
เมื่อมีการแก้ไข bug
เมื่อมีการเพิ่มหรือแก้ไขชุดการทดสอบ

อย่าลืมเก็บชุดการทดสอบต่าง ๆ ไว้ใน version control system ด้วย

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

สุดท้ายแล้ว ต้องเรียนรู้อยู่อย่างสม่ำเสมอ (Keep learning)

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