ATDD

ATDD (Acceptance Test-Driven Development) คือวิธีการพัฒนาซอฟต์แวร์ที่ทีมงานทั้งหมดร่วมกันกำหนดเกณฑ์การทดสอบการยอมรับ (Acceptance Test) ก่อนเริ่มการพัฒนา จากนั้นจึงทำการ Automate การทดสอบดังกล่าว แล้วจึงดำเนินการ Implement ต่อไป
ความแตกต่างจาก TDD
ในขณะที่ TDD มุ่งขับเคลื่อนการออกแบบโค้ดของนักพัฒนา ATDD มีจุดประสงค์เพื่อให้ทีมทั้งหมดมีความเข้าใจตรงกันในข้อกำหนดทางธุรกิจ เช่นเดียวกับที่ TDD มีวงจร "RED→GREEN→Refactor" ATDD ก็มีวงจรที่ชัดเจนเช่นกัน
- Discuss(การอภิปราย): Product Owner, นักพัฒนา และ QA ร่วมกันอภิปรายข้อกำหนด และตกลงเกณฑ์การยอมรับด้วยตัวอย่างที่เป็นรูปธรรม
- Distill(การกลั่น): นำเกณฑ์ที่ตกลงกันไว้มาแปลงเป็นรูปแบบที่มีโครงสร้าง เช่น Given-When-Then
- Develop(การพัฒนา): ทำให้ Acceptance Test เป็นแบบอัตโนมัติ และเริ่มต้นการพัฒนาจากสถานะที่ Test เป็น RED
- Demo(การสาธิต): เมื่อ Test เป็น GREEN แล้ว ให้สาธิตแก่ Stakeholder
Three Amigos(การประชุมสามฝ่าย)
แก่นของ ATDD อยู่ที่ "การประชุมสามฝ่าย" ก่อนการพัฒนา การอภิปรายเกณฑ์การยอมรับจากมุมมองของสามฝ่าย ได้แก่ ฝ่ายธุรกิจ นักพัฒนา และผู้ทดสอบ ช่วยขจัดความคลุมเครือของข้อกำหนดและความเข้าใจที่คลาดเคลื่อนได้ตั้งแต่เนิ่นๆ ส่งผลให้ลดการทำงานซ้ำที่เกิดจากความเข้าใจผิด เช่น "ไม่ได้หมายความแบบนั้น" หลังจากเริ่มเขียนโค้ดไปแล้วได้อย่างมีประสิทธิภาพ
อุปสรรคในการนำไปใช้
เนื่องจาก ATDD ส่งผลกระทบต่อกระบวนการพัฒนาทั้งหมด จึงไม่ใช่สิ่งที่เริ่มต้นได้เพียงแค่นำเครื่องมือมาใช้ ทีมทุกคนจำเป็นต้องคุ้นเคยกับวิธีการเขียนเกณฑ์การยอมรับ และการมีส่วนร่วมอย่างแข็งขันของ Product Owner ก็เป็นสิ่งที่ขาดไม่ได้ แนวทางที่เป็นจริงคือการเริ่มทดลองกับ User Story เพียงหนึ่งรายการก่อน แล้วจึงขยายขอบเขตออกไปหลังจากได้สัมผัสกับประสิทธิผลที่เกิดขึ้น
บทความที่กล่าวถึงคำศัพท์นี้
- Eval-Driven Development (EDD) คืออะไร? กระบวนการพัฒนา AI ที่เน้นการประเมินผลเป็นหลักเรียนรู้วิธีใช้ EDD เพื่อนำตัวชี้วัดมาปรับใช้ตลอดวงจรการทำงานแทนการใช้สัญชาตญาณ พร้อมขั้นตอนการปรับแต่ง Prompt และ Parameter แบบอัตโนมัติ
- การพัฒนาจะเปลี่ยนไปอย่างไรด้วย Claude Mythos และ Fable: จากการตรวจสอบ "การเขียนโค้ดที่ถูกต้อง" สู่ "การทำงานที่ถูกต้อง"Claude Mythos และ Fable 5 จาก Anthropic โดดเด่นด้านงานเอเจนต์ระยะยาว เปลี่ยนการพัฒนาจากการเน้น "โค้ดที่ถูกต้อง" สู่ "ผลลัพธ์ที่ถูกต้อง" พร้อมเจาะลึกการใช้งานร่วมกับ /goal และ Dynamic workflows เพื่อการมอบหมายงานอย่างมีประสิทธิภาพตามข้อมูลทางการ
- วิธีเลือกใช้ Fine-tuning และ RAG: คู่มือเปรียบเทียบตามต้นทุน ความแม่นยำ และการใช้งานจริงเลือกใช้ Fine-tuning หรือ RAG ดี? เปรียบเทียบ 4 ปัจจัยหลัก (ต้นทุน, ความแม่นยำ, การอัปเดต, ความปลอดภัย) พร้อมเกณฑ์การเลือกที่เหมาะสมกับธุรกิจคุณ
- คู่มือการใช้งาน Claude Code สำหรับทีม: วิธีสร้างมาตรฐานเวิร์กโฟลว์ด้วย CLAUDE.md, Skills และ Hooksขั้นตอนการนำ Claude Code มาใช้ในทีมพัฒนา เพิ่มประสิทธิภาพด้วยการจัดการบริบทผ่าน CLAUDE.md, เวิร์กโฟลว์ด้วย Skills และระบบอัตโนมัติผ่าน Hooks
คำศัพท์ที่เกี่ยวข้อง

การทดสอบ E2E
การทดสอบ E2E (End-to-End Testing) คือวิธีการทดสอบที่จำลองการกระทำของผู้ใช้เป็นจุดเริ่มต้น แล้วส่งผ่า

การทดสอบการยอมรับ
การทดสอบการยอมรับ (Acceptance Test) คือวิธีการทดสอบที่ใช้ตรวจสอบว่าฟีเจอร์ที่พัฒนาขึ้นนั้นตรงตามความ

SSM (AWS Systems Manager)
AWS Systems Manager (SSM) คือ AWS Managed Service ที่ใช้สำหรับบริหารจัดการและดำเนินการ EC2 Instance

ปัญหา N+1 Query
ปัญหา N+1 Query คือ anti-pattern ด้านประสิทธิภาพที่เกิดขึ้นเมื่อดึงข้อมูลรายการด้วย query ครั้งเดียว



