การทดสอบฟังก์ชัน

การทดสอบเชิงฟังก์ชัน (Feature Test) คือวิธีการทดสอบที่ตรวจสอบพฤติกรรมของระบบในระดับฟังก์ชันหรือ Use Case ที่เฉพาะเจาะจง โดยครอบคลุมขอบเขตที่กว้างกว่าการทดสอบแบบ Unit Test และมุ่งยืนยันว่าโมดูลหลายตัวทำงานร่วมกันได้อย่างถูกต้อง
ระหว่าง Unit Test และ E2E Test
ชั้นกลางของ Test Pyramid คือ Functional Test โดยที่ Unit Test รับประกันความถูกต้องในระดับฟังก์ชัน และ E2E Test ตรวจสอบการทำงานของระบบโดยรวม ส่วน Functional Test นั้นทำหน้าที่ตรวจสอบ "ผลลัพธ์ที่เกิดจาก User Action หนึ่งรายการ"
ตัวอย่างเช่น Functional Test สำหรับ "การสร้างพนักงาน" จะครอบคลุมตั้งแต่การเรียก Server Action ไปจนถึง Validation, การบันทึกลง DB และการส่ง Response กลับ อย่างไรก็ตาม ไม่จำเป็นต้องเปิด Browser แต่ใช้การจำลอง HTTP Request หรือการเรียก Server Action โดยตรงแทน
ขอบเขตของ Functional Test
แม้ว่าขอบเขตของ "1 ฟีเจอร์" มักจะไม่ชัดเจน แต่เกณฑ์การตัดสินนั้นเรียบง่าย คือ การเรียก Server Action หนึ่งครั้ง หรือ API Endpoint หนึ่งรายการ จะสอดคล้องกับ Functional Test หนึ่งกรณี ส่วนกรณีที่มีการเชื่อมต่อ Action หลายรายการต่อเนื่องกัน เช่น "สร้างแผนก → สร้างตำแหน่งงาน → สร้างพนักงาน" จะจัดอยู่ในประเภท Integration Test
ความแตกต่างจาก Acceptance Test
Functional Test ตรวจสอบจากมุมมองของนักพัฒนาว่า "การ Implementation ตรงตาม Specification หรือไม่" ส่วน Acceptance Test ตรวจสอบจากมุมมองทางธุรกิจว่า "ตอบสนองต่อ Requirement หรือไม่" แม้จะตรวจสอบการดำเนินการเดียวกัน แต่มุมมองในการตรวจสอบและระดับความละเอียดในการบรรยายนั้นแตกต่างกัน
บทความที่กล่าวถึงคำศัพท์นี้
คำศัพท์ที่เกี่ยวข้อง

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

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

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

ATDD
ATDD (Acceptance Test-Driven Development) คือวิธีการพัฒนาซอฟต์แวร์ที่ทีมงานทั้งหมดร่วมกันกำหนดเกณฑ์ก
