ช่วงหลายปีที่ผ่านมา เพื่อนๆที่กำลังหางานตำแหน่ง software tester/qa คงจะต้องเห็นใน job description ว่า ต้องมีประการณ์ automation test หรือคุ้นเคยกับ automated tools มาบ้าง จะเป็นข้อได้เปรียบ แสดงให้เห็นว่าใน software developement เดี๋ยวนี้ บริษัทคงไม่อยากจ้างคนจำนวนมากๆมากนั่งเทสได้อีกต่อไป ดังนั้นการมีความรู้ว่า automated test ควรจะเริ่มยังไง หรือ automated test framework ที่ดี ต้องเป็นยังไง น่าจะเป็นสิ่งที่เพิ่ม value ให้กับ tester เอง
วันนี้เลยอยากจะเขียนจากประสบการณ์ในการทำ automated framework ที่ดีและไม่ดี มาบอกเพื่อนๆ เผื่อวันนึง มีโจทย์จากหัวหน้าให้ build automated test เราควรจะคำนึงถึงอะไรบ้าง
แล้ว Automated test framework ที่ดี ควรเป็นอย่างไรต้อง stable - จากประสบการณ์ที่เคยพบมา บางครั้งเรา run test ผ่านบ้างไม่ผ่านบ้าง เนื่องจาก framework ไม่ stable เนื่องด้วยข้อจำกัดหลายๆอย่างทั้งตัว application under test เอง หรือ tools ที่ใช้สร้าง framework ดังนั้นก่อนเราจะเลือก tools ควรลองสร้าง prototype แล้วลอง run test กับ application เราก่อน
ต้อง maintain ง่าย - application under test ต้องมีการเพิ่ม/ลด function เปลี่ยนโน้นแก้นี่เสมอ ตาม requirement ของลูกค้า นี่คือสิ่งที่เราหลีกเลี่ยงไม่ได้ ดังนั้น automated framework ของเราควรรองรับการเปลี่ยนแปลง tester เข้าไปแก้ test suite/script ได้ง่าย ไม่ซับซ้อน แก้น้อยจุด ถ้าเปรียบ Dev คือ coding ตาม design pattern เพิ่มการทำงานให้ดีขึ้น รองรับการเปลี่ยนแปลงได้ง่าย
คำนึงถึง skill set ของ tester ในทีม - tester ในทีมอาจจะมี skill set และ mind set ที่ต่างกัน การที่เราจะ สร้าง framework ให้เค้าเหล่านั้นใช้ ก็ควรจะฟังความคิดเห็นของเค้าบ้าง ตัวอย่างเช่น tester บางคนเกลียดการ coding มากแค่รู้ว่าต้องทำ automated test ไม่อยากทำ ตั้งอคติแล้ว ดังนั้นคนที่ตัดสินใจว่า framework จะทำในลักษณะไหน ควรจะสนใจ tester คนนี้ด้วยว่า framework ควรจะไม่ให้testerแก้ code มาก
ตอนนี้ยังนึกเพิ่มเติมไม่ออก ถ้ามีเพิ่มจะมา update เพิ่มเติมที่หลัง :) สำหรับคนที่ได้โจทย์ให้ทำ automated test framework ก็อย่าลืมมองสิ่งที่ผมเขียนดูละกันนะครับ ใช้เวลาในการ design เยอะหน่อยเพื่อที่จะได้ให้ tester ทุกคนในทีมทำงานกันอย่างมีสุข ไม่คิดลาออกไปก่อน :(