ATDD (Acceptance Test-Driven Development) คือวิธีการพัฒนาซอฟต์แวร์ที่ทีมงานทั้งหมดร่วมกันกำหนดเกณฑ์การทดสอบการยอมรับ (Acceptance Test) ก่อนเริ่มการพัฒนา จากนั้นจึงทำการ Automate การทดสอบดังกล่าว แล้วจึงดำเนินการ Implement ต่อไป
ในขณะที่ TDD มุ่งขับเคลื่อนการออกแบบโค้ดของนักพัฒนา ATDD มีจุดประสงค์เพื่อให้ทีมทั้งหมดมีความเข้าใจตรงกันในข้อกำหนดทางธุรกิจ เช่นเดียวกับที่ TDD มีวงจร "RED→GREEN→Refactor" ATDD ก็มีวงจรที่ชัดเจนเช่นกัน
แก่นของ ATDD อยู่ที่ "การประชุมสามฝ่าย" ก่อนการพัฒนา การอภิปรายเกณฑ์การยอมรับจากมุมมองของสามฝ่าย ได้แก่ ฝ่ายธุรกิจ นักพัฒนา และผู้ทดสอบ ช่วยขจัดความคลุมเครือของข้อกำหนดและความเข้าใจที่คลาดเคลื่อนได้ตั้งแต่เนิ่นๆ ส่งผลให้ลดการทำงานซ้ำที่เกิดจากความเข้าใจผิด เช่น "ไม่ได้หมายความแบบนั้น" หลังจากเริ่มเขียนโค้ดไปแล้วได้อย่างมีประสิทธิภาพ
เนื่องจาก ATDD ส่งผลกระทบต่อกระบวนการพัฒนาทั้งหมด จึงไม่ใช่สิ่งที่เริ่มต้นได้เพียงแค่นำเครื่องมือมาใช้ ทีมทุกคนจำเป็นต้องคุ้นเคยกับวิธีการเขียนเกณฑ์การยอมรับ และการมีส่วนร่วมอย่างแข็งขันของ Product Owner ก็เป็นสิ่งที่ขาดไม่ได้ แนวทางที่เป็นจริงคือการเริ่มทดลองกับ User Story เพียงหนึ่งรายการก่อน แล้วจึงขยายขอบเขตออกไปหลังจากได้สัมผัสกับประสิทธิผลที่เกิดขึ้น


TDD (Test-Driven Development) คือวิธีการพัฒนาซอฟต์แวร์ที่เขียน Test ก่อนเขียนโค้ดจริง โดยวนซ้ำในวงจรสั้น ๆ ได้แก่ Test ล้มเหลว (RED) → การ Implement (GREEN) → การ Refactor (Refactor)

การทดสอบแบบ Unit Test คือวิธีการทดสอบที่ตรวจสอบหน่วยย่อยที่สุดของโปรแกรม เช่น ฟังก์ชันหรือเมธอด เป็นรายการ โดยแทนที่การพึ่งพาภายนอกด้วย Mock เพื่อให้สามารถตรวจสอบเฉพาะ Logic ที่ต้องการได้อย่างรวดเร็ว

การทดสอบการยอมรับ (Acceptance Test) คือวิธีการทดสอบที่ใช้ตรวจสอบว่าฟีเจอร์ที่พัฒนาขึ้นนั้นตรงตามความต้องการทางธุรกิจและ User Story หรือไม่ โดยพิจารณาจากมุมมองของ Product Owner และ Stakeholder

ปิดช่องโหว่ "เส้นทางโจมตีที่มองไม่เห็น" ใน AI Chat — คู่มือการป้องกัน Prompt Injection ผ่าน DB

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