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

ประโยชน์ที่จะได้รับ

  • ช่วยให้วิเคราะห์ requirement ได้ง่าย
  • เชื่อมั่นในการ refactor code
  • เมื่อเกิดปัญหาสามารถรู้ได้อย่างทันท่วงที (Fast feedback)
  • สามารถทดสอบซ้ำๆ ได้ง่าย ประหยัดเวลา และคนทำงาน
  • เป็นเอกสารที่เชื่อถือได้
  • เป็นคู่มือสำหรับ tester ซึ่งสามารถมาดูและศึกษา เป็นทางหนึ่งในการทำ exploratory testing อีกด้วย

Cost หรือ สิ่งที่ต้องเสียไป (Effort หรือ Time == Cost)

  • เวลาในการเรียนรู้เพื่อที่จะเขียนชุดการทดสอบ
  • เวลาในการเขียนชุดการทดสอบ
  • เวลาในการรอผลการทดสอบ
  • เวลาสำหรับการดูแลรักษาชุดการทดสอบ

ประโยชน์นั้นเป็นสิ่งที่ดี แต่อย่าประเมินค่าใช้จ่ายต่ำโดยเด็ดขาด

ยิ่งถ้าเป็นทีมที่อยู่ในช่วงเริ่มนำมาใช้งานด้วยแล้ว
ยิ่งต้องเสียเวลาในการเรียนรู้สูง
ทั้งการเขียนให้ได้
ทั้งการเขียนให้ดี มีประโยชน์
ไม่เช่นนั้นอาจจะทำให้เกิดความผิดพลาดต่างๆ ขึ้นมา
ส่งผลให้การดูแลรักษาสูงขึ้นเช่นกัน

แสดงดังรูป Hump of pain

making-test-automation-work-in-agile-projects-2012-27-638

ดังนั้นก่อนเริ่มนำมาใช้งานควรที่จะมีการพูดคุย

เรื่องประโยชน์และค่าใช้จ่ายต่างๆ ของการทดสอบแบบอัตโนมัติ
ซึ่งในการพูดคุยควรให้ทุกๆ ฝ่ายที่เกี่ยวข้องเข้ามาพูดคุยกัน
เพื่อให้ทุกคนได้แบ่งมุมมองต่างๆ ต่อการทดสอบแบบอัตโนมัติอย่างเท่าเทียมกัน

ปล.
เป็นที่เข้าใจตรงกันว่า ทุก ๆ การเปลี่ยนแปลงล้วนมีความกลัวเกิดขึ้นเสมอ
แต่ถ้ามันเป็นสิ่งที่ดีมีประโยชน์
ก็ควรที่จะต้องทำให้ความกลัวนั้นน้อยลง

นั่นคือ การลงมือทำในสิ่งที่กลัวซะ เช่น

  • ถ้ากลัวว่าจะต้องใช้เวลาในการเรียนรู้นาน ก็เริ่มเรียนรู้ซะ
  • ถ้ากลัวว่าจะต้องใช้เวลาเพิ่มในการพัฒนา ก็เริ่มปรับปรุงความสามารถของตัวเองซะ
  • ถ้ากลัวว่าจะต้องมีค่าใช้จ่ายเพิ่มเติมจากเดิม ก็ให้เอาตัวเลขในปัจจุบันทั้งการพัฒนา การทดสอบ และ การแก้ไข bug และ การทำ re-test, regression test มาเป็นตัวตั้งต้น จากนั้นจึงทำการจับวัด ลองคิดดูสิว่า ถ้าเอาข้อมูลของมะยมมาเทียบกับแตงโม มันก็คงจะถูกหรอกนะ !!
  • ถ้ากลัวว่าทีมไม่มีความรู้ความสามารถเพียงพอ ก็จัด training กันภายในซะ ไม่เช่นนั้นก็ไม่หาคนที่รู้มาสอน

สุดท้ายถ้ากลัว ก็จงลงมือทำ

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

Reference Website
http://blog.mattwynne.net/2013/11/18/costs-and-benefits-of-test-automation/
http://agilecoach.typepad.com/agile-coaching/2011/03/embrace-a-skeptic.html
http://www.amazon.com/Fearless-Change-Patterns-Introducing-Ideas/dp/0201741571
http://www.slideshare.net/lisacrispin/making-test-automation-work-in-agile-projects-2012