จาก Course The Whole Team Approach to Agile Testing ที่สิงคโปร์
มีการอธิบายถึงที่มาที่ไปของ Agile Testing Quadrant
มีการอธิบายถึงเป้าหมายหลักของ Agile Testing Quadrant
มีการอธิบายถึงการใช้งานที่ถูกต้องของ Agile Testing Quadrant

ดังนั้น เรามาดูรายละเอียดในแต่ละข้อกันดูนะ

ที่มาที่ไป และ การใช้งานของ Agile Testing Quadrant

มาจาก Agile Testing Direction Matrix ของคุณ Brian Marick ดังรูป

test-matrix

โดยในแต่ละช่อง แต่ละสี จะเรียกว่า Quadrant
ประกอบไปด้วย 4 ส่วนที่จำเป็นดังนี้

  1. Technology facing ต้องรู้จัก และ เข้าใจเทคโนโลยี
  2. Support Programming ต้องทำการเขียน code ในการทดสอบ
  3. Business facing ต้องเข้าใจเรื่องของ business domain
  4. Critique product

ใช้สำหรับการตัดสินใจ และ แบ่งกลุ่มกลุ่มการทดสอบ

โดยในฝั่งซ้าย สำหรับการป้องกัน หรือ prevent เพื่อไม่ให้เกิดข้อผิดพลาด
ส่วนด้ายขวา สำหรับการค้นหา หรือ detect ข้อผิดพลาด

ซึ่งถือว่าเป็นหัวใจอย่างหนึ่งของ Agile Testing แสดงดังรูป

Agile-Testing-Quadrants

การใช้งาน Agile Testing Quadrant

ไม่ได้เรียงลำดับตาม Q1, Q2, Q3 และ Q4 แบบ Waterfall นะ
เนื่องจากมีไว้เพื่อแบ่ง และ ตัดสินใจว่า
การทดสอบแต่ละชนิดควรจะอยู่ตรงไหน

เพื่อทำให้ทีม มีความรู้ความเข้าใจเกี่ยวกับการทดสอบที่ตรงกัน

ตัวอย่างเช่น
ใน Q1 นั้นจะหมายถึง
การทดสอบที่จำเป็นต้องมีความรู้ความเข้าใจเทคโนโลยี
และต้องการการเขียน code อีกด้วย

ที่ผ่านมาพบว่า แต่ระบบงานส่วนใหญ่มักจะเริ่มที่ Q2
เพราะว่า ส่วนใหญ่แล้วเรามักจะเริ่มคุยกันที่ specification + example ของแต่ละ feature
จากนั้นจึงเริ่มด้วยการคิดว่าจะทดสอบกันอย่างไร ?
และลงมือเขียน code ต่อไป

แต่ก็มีบางระบบงานที่ต้องเริ่มจาก Q4 เช่น Performance testing
เนื่องจากต้องทำการทดสอบว่า
สถาปัตยกรรมของระบบงานนั้น มันรองรับการใช้งานตามความต้องการหรือไม่ ?
ซึ่งเป็นเป้าหมายที่สำคัญมากของระบบงาน

อีกส่วนหนึ่งที่อาจจะเข้าใจผิดก็คือ Q3 และ Q4 ต้องเขียน code ด้วยนะ
เนื่องจากรูป Agile Testing Quadrant นั้นไม่ได้บอกว่าต้องเขียน code
แต่ในการทำงานจริง ๆ แล้วต้องการการเขียน code บ้าง
เช่นการ deploy แบบอัตโนมัติ
เพื่อทำให้ทีมได้รับ feedback จากการทดสอบท่ีรวดเร็ว
ของแต่ละการเปลี่ยนแปลง

สุดท้ายแล้ว Agile Testing Quadrant นั้น

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

โดยที่แต่ละ Quadrant ไม่ได้มีกฎตายตัวอะไร

แต่เน้นให้ทีมคิดก่อนว่า
ในแต่ละ release ต้องทำอะไรบ้าง
ในแต่ละรอบทำงานต้องทำอะไรบ้าง
ในการแวางแผนต้องวางแผนอะไรบ้าง
หนึ่งในนั้น คือ คิดก่อนว่าจะต้องทำการทดสอบอะไรบ้าง ?

มาถึงตรงนี้ น่าจะทำให้เข้าใจเกี่ยวกับ Agile Testing Quadrant มากขึ้นแล้ว