Tag Archives: ATDD

QA first and Specification by Example Book

เมื่อหลายเดือนก่อน เกิดตะหงิดๆ ใจ กับอาการตีปิงปอง story ระหว่างทีม Dev กับ QA คือ มีหลายๆ ครั้งที่ story เปลี่ยนสถานะ จาก กำลังทำ -> เสร็จ -> reject -> กำลังทำ -> … วนไปวนมาอยู่หลายรอบ

ปัญหามักไม่ได้เกิดจาก bug ในการ implement แต่เกิดจากทีม dev ไม่สามารถเก็บครบทุก edge case, corner case ของ story นั้นได้

ด้วยความรู้นิดหน่อยของไอเดีย outside-in และคิดว่ามันน่าจะเป็นคำตอบของปัญหานี้ เลยไปหาหนังสือเกี่ยวกับเรื่องนี้มาอ่าน ก็ได้ Specification by Example มา

คอนเซปของเรื่องนี้ มีหลายชื่อเรียกมาก ทั้ง Acceptance Test Driven Development(ATDD), Behavior Driven Development(BDD), User Story Driven Development และ Specification by Example (เชื่อว่ายังมีอีกแต่ได้ยินมาแค่นี้)

หลักการของมันคือ ถ้าเราเอาการตรวจสอบคุณภาพไปอยู่หลังการพัฒนา สิ่งที่มักเกิดขึ้นคือเราพัฒนาไปผิดทาง เพราะฉะนั้นแล้ว ก็กลับเอาการตรวจสอบคุณภาพ (QA process) มาอยู่ข้างหน้าซะ

สิ่งที่เกิดขึ้นคือ แทนที่เราจะตีปิงปองกับการ manual test ของ QA เราก็ไปตีปิงปองกับ acceptance test ที่ QA เขียนไว้แทน

ผลที่ได้คือ

  • Dev หลงทางน้อยลง
  • QA มีเวลาไปทำการ test ท่าประหลาดๆ มากขึ้น

มากไปกว่านั้นแล้ว ยังมีการพยายามนำฝ่าย business เข้ามาร่วมในขั้นตอนการเขียน test ของ QA ด้วย เพื่อให้ตรงความต้องการมากขึ้น

สำหรับตัวหนังสือ มีเรื่องราวที่น่าสนใจดังนี้

  • เค้าใช้วิธีการสร้างตัวอย่าง(ตามชื่อหนังสือ)ในการคุยกับฝ่าย business เช่น ยกตัวอย่าง input นี้มา ต้องการ output แบบนี้ใช่มั้ย
  • มีตัวอย่างสถาณการณ์เยอะมาก แต่ละสถานการณ์ก็แนะนำต่างวิธีไป เช่น ถ้ามี TOR ก็เอา TOR นั่นแหละมาสร้าง example
  • ผลจากการทำ เค้าเน้นว่าการได้ living document เป็นประโยชน์มากกว่า automate validation เสียอีก
  • ไม่แนะนำให้ใส่ workaround ไปใน example ให้ใส่เฉพาะ business requirement
  • เน้นให้เขียน example ไม่ผูกกับการ implement test เพราะจะทำให้ example ถูกต้องตลอดการ และไม่มีผลต่อการเปลี่ยน test, implementation หรือเปลี่ยน platform
  • เราควรเข้าใจถึงความต้องการตั้งต้นของฝ่าย business ที่เป็นที่มาของ feature ที่เค้าให้เราทำ เพราะบางครั้งเราอาจเสนอวิธีทำที่ง่ายกว่า และตรงความต้องการกว่าได้

วิธีการนี้ใช้ได้กับทุก process นะครับ ไปลองกันดูได้

Advertisements