การทดสอบหน่วย

การทดสอบแบบ Unit Test คือวิธีการทดสอบที่ตรวจสอบหน่วยย่อยที่สุดของโปรแกรม เช่น ฟังก์ชันหรือเมธอด เป็นรายการ โดยแทนที่การพึ่งพาภายนอกด้วย Mock เพื่อให้สามารถตรวจสอบเฉพาะ Logic ที่ต้องการได้อย่างรวดเร็ว
"หน่วย" ในการทดสอบหมายถึงอะไร
"หน่วย" ในการทดสอบแบบ Unit Test มีระดับความละเอียดที่แตกต่างกันไปตามภาษาและ framework บางครั้งหมายถึงฟังก์ชันเดียว บางครั้งหมายถึงคลาสหนึ่งหรือทั้งโมดูล สิ่งที่มีร่วมกันคือหลักการ "ทดสอบโดยตัดการเชื่อมต่อกับ I/O ภายนอก (DB, network, file system) ออก"
การพึ่งพาภายนอกจะถูกแทนที่ด้วย mock หรือ stub เช่น การคืนค่าผลลัพธ์ query ของ Supabase ผ่าน mock object หรือการแทนที่ API call ด้วย stub วิธีนี้ทำให้เวลาในการรันอยู่ในระดับมิลลิวินาที และสามารถรันได้หลายร้อยถึงหลายพันรายการต่อ commit ใน CI pipeline
ข้อจำกัดของ Mock
เนื่องจาก mock สามารถคืนค่า object ที่มี property ใดก็ได้ตามต้องการ จึงไม่สามารถตรวจจับความไม่สอดคล้องกับ DB schema ได้ incident ที่ว่า "test ผ่านทุกรายการ แต่เกิด column does not exist ใน production" นั้นไม่ใช่เรื่องแปลก Unit test มีความแข็งแกร่งในการตรวจสอบ business logic แต่ความสอดคล้องของ system boundary จำเป็นต้องเสริมด้วย functional test หรือ E2E test
ความสัมพันธ์กับ TDD
TDD (Test-Driven Development) คือแนวทางการพัฒนาที่ใช้ unit test เป็น "เครื่องมือออกแบบ" การเขียน test ก่อนทำให้ข้อกำหนดด้านอินพุตและเอาต์พุตของฟังก์ชันถูกกำหนดขึ้นก่อนการ implement ทั้งสองสิ่งนี้ผูกพันกันอย่างใกล้ชิด เนื่องจาก TDD มี unit test เป็นพื้นฐาน
บทความที่กล่าวถึงคำศัพท์นี้
- AI Observability คืออะไร? คู่มือการตรวจสอบและดูแล LLM ในการใช้งานจริงเรียนรู้พื้นฐาน AI Observability พร้อมเจาะลึกการทำ Trace, ประเมินผล และจัดการต้นทุนสำหรับ LLM ในโปรดักชัน รวมถึงขั้นตอนการใช้งานและการเลือกเครื่องมือที่เหมาะสม
- การใช้งาน AI Observability: การบูรณาการเข้ากับการตรวจสอบแอปพลิเคชันเดิมและการนำไปใช้แบบเป็นขั้นตอนขั้นตอนการผสานรวม AI Observability เข้ากับโครงสร้างพื้นฐานการตรวจสอบแอปพลิเคชันเดิม ตั้งแต่การสร้าง Data Pipeline ไปจนถึงกลยุทธ์การใช้งานจริงกับระบบ Legacy
- AI × Synthetic Test คืออะไร? กลไกการประเมิน LLM และ AI Agent ด้วยข้อมูลสังเคราะห์Synthetic Test คือการประเมิน AI ด้วยข้อมูลสังเคราะห์ เรียนรู้บทบาทในการประกันคุณภาพ LLM และ AI Agent ความต่างจาก LLM-as-a-Judge และ 4 ขั้นตอนการใช้งานจริง
- การพัฒนาจะเปลี่ยนไปอย่างไรด้วย Claude Mythos และ Fable: จากการตรวจสอบ "การเขียนโค้ดที่ถูกต้อง" สู่ "การทำงานที่ถูกต้อง"Claude Mythos และ Fable 5 จาก Anthropic โดดเด่นด้านงานเอเจนต์ระยะยาว เปลี่ยนการพัฒนาจากการเน้น "โค้ดที่ถูกต้อง" สู่ "ผลลัพธ์ที่ถูกต้อง" พร้อมเจาะลึกการใช้งานร่วมกับ /goal และ Dynamic workflows เพื่อการมอบหมายงานอย่างมีประสิทธิภาพตามข้อมูลทางการ
คำศัพท์ที่เกี่ยวข้อง

การทดสอบ 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) คือวิธีการพัฒนาซอฟต์แวร์ที่ทีมงานทั้งหมดร่วมกันกำหนดเกณฑ์ก



