Test Scenario vs Test Case แยกไม่ออกสักที? มาดูตัวอย่างง่ายๆ กัน

Share
Test Scenario vs Test Case แยกไม่ออกสักที? มาดูตัวอย่างง่ายๆ กัน
Test Scenario vs Test Case

QA Knowledge Series

5 นาทีกับบทความนี้ จะเปลี่ยนวิธีเขียน test document ของคุณไปตลอดกาล — เพราะ QA หลายคนเขียน Test Case ได้คล่อง แต่พอถามว่า Test Scenario คืออะไร ก็ตอบว่า "เหมือนกันนั่นแหละ"

ถ้าคุณเคยถูกถามว่า "Test Scenario กับ Test Case ต่างกันยังไง?" แล้วรู้สึกว่าตอบได้ แต่อธิบายให้คนอื่นเข้าใจยาก — บทความนี้เขียนมาให้คุณโดยเฉพาะค่ะ

ความเข้าใจผิดนี้พบบ่อยมาก และมันส่งผลต่อคุณภาพงาน QA โดยตรง เพราะถ้าแยกไม่ออก เราก็จะเขียน Test Case โดยไม่มีโครงสร้าง หรือเขียน Scenario ที่ละเอียดเกินจนกลายเป็น Test Case ไปโดยไม่รู้ตัว

เริ่มจากอุปมาง่ายๆ ก่อน

ลองนึกภาพว่าคุณกำลังวางแผนขับรถจากบ้านไปห้างสรรพสินค้าค่ะ

🗺️
Test Scenario
จุดหมายปลายทาง
"ขับรถจากบ้านไปห้างสรรพสินค้าให้ถึงที่หมายสำเร็จ"
→
📋
Test Case
วิธีขับแต่ละช่วง
"เลี้ยวซ้ายที่สี่แยก, ตรงไป 2 กม., จอดชั้น B2"

Scenario คือ ภาพรวมของสิ่งที่ต้องการทดสอบ ในมุมมองของผู้ใช้ ส่วน Test Case คือ ขั้นตอนละเอียดที่บอกว่าทำอย่างไร ทีละ step เพื่อให้ได้ผลลัพธ์ที่ต้องการ

นิยามที่ชัดเจน

หัวข้อ Test Scenario Test Case
คือ สิ่งที่จะทดสอบ (What) วิธีทดสอบ (How)
มุมมอง User Journey / Business Flow Step-by-step Technical
ระดับ High-level / กว้าง Detailed / ละเอียด
คนเขียน QA + BA / PO QA เป็นหลัก
จำนวน น้อย — ครอบคลุม flow มาก — 1 Scenario → หลาย TC

ตัวอย่างจริง — ตู้ ATM

มาดูตัวอย่างที่จับต้องได้กันค่ะ สมมติเราต้องทดสอบ ฟีเจอร์ "ถอนเงิน" ของตู้ ATM

Test Scenarios — ภาพรวมทั้งหมดที่ต้องทดสอบ
TS-01 ถอนเงินสำเร็จเมื่อยอดเงินในบัญชีเพียงพอ
TS-02 ถอนเงินไม่สำเร็จเมื่อยอดเงินในบัญชีไม่เพียงพอ
TS-03 ถอนเงินไม่สำเร็จเมื่อกด PIN ผิดครบ 3 ครั้ง
TS-04 ถอนเงินด้วยการพิมพ์จำนวนเองแบบ custom amount
TS-05 ถอนเงินเกินวงเงินสูงสุดต่อวันที่กำหนด
Test Cases — จาก TS-01 เพียงข้อเดียว
TC-01 ถอนเงินจำนวนปกติ
Pre-conditionมียอดเงินในบัญชี 1,000 บาท
Steps1. ใส่บัตร ATM   2. กด PIN ถูกต้อง   3. เลือก "ถอนเงิน"   4. เลือก 500 บาท   5. ยืนยัน
Expected✓ PASS  ได้เงิน 500 บาท, ยอดเหลือ 500 บาท
TC-02 ถอนเงินจำนวนขั้นต่ำ
Pre-conditionมียอดเงินมากกว่า 100 บาท
Steps1. ใส่บัตร   2. กด PIN   3. เลือกถอน 100 บาท   4. ยืนยัน
Expected✓ PASS  ได้เงิน 100 บาท, รายการบันทึกสำเร็จ
TC-03 ถอนเงินและรับสลิป
Pre-conditionทำรายการถอนเงินสำเร็จแล้ว
Steps1. ถอนเงินสำเร็จ   2. เลือก "รับสลิป"
Expected✓ PASS  สลิปแสดงยอด วันที่ และยอดคงเหลือถูกต้อง
💡

จาก Scenario "ถอนเงินสำเร็จ" เพียง 1 ข้อ เราสามารถ breakdown ได้เป็น Test Case หลายข้อ ถ้าไม่มี Scenario เป็นโครงก่อน เราจะเขียน Test Case แบบกระจัดกระจาย ไม่รู้ว่าครอบคลุมครบหรือเปล่า

ข้อผิดพลาดที่เจอบ่อย

❌ ข้อผิดพลาดที่ 1 — เขียน Scenario ละเอียดเกินไป
เขียน Scenario ว่า "กด PIN 1234 เลือกถอน 500 บาท กดยืนยัน รับเงิน" — นี่คือ Test Case แล้ว ไม่ใช่ Scenario
✅ แก้ไข: Scenario ควรเป็นแค่ "ผู้ใช้ถอนเงินสำเร็จเมื่อยอดเพียงพอ" เท่านั้น
❌ ข้อผิดพลาดที่ 2 — เขียน Test Case โดยข้าม Scenario
เริ่มเขียน TC-001, TC-002 โดยไม่มี Scenario เป็นโครง พอ requirement เปลี่ยน หา impact ไม่เจอ และไม่รู้ว่า flow ไหนยังไม่ครอบคลุม
✅ แก้ไข: เริ่มจาก Scenario ก่อนเสมอ แล้วค่อย breakdown เป็น Test Case ทีหลัง
❌ ข้อผิดพลาดที่ 3 — Scenario กับ Test Case ปะปนกันในเอกสารเดียว
เขียนรวมกันในตารางเดียว ทำให้ทีมสับสนว่าอันไหนคือ high-level flow อันไหนคือ step ที่ต้อง execute จริง
✅ แก้ไข: แยก section ให้ชัดเจน พร้อม label ที่อ่านแล้วรู้ทันที

🎯 สรุปให้จำง่าย

Test Scenario
→ ตอบคำถาม "ทดสอบอะไร?"
→ มุมมองของ User / Business
→ เขียนก่อน — เป็นโครงสร้าง
→ จำนวนน้อย ครอบคลุม flow
Test Case
→ ตอบคำถาม "ทดสอบยังไง?"
→ มุมมองเชิง Technical / Step
→ เขียนหลัง — ขยายจาก Scenario
→ จำนวนมาก ละเอียดทุก step

เริ่มต้นด้วย Scenario เสมอ — มันคือแผนที่ของการทดสอบ
ส่วน Test Case คือเส้นทางย่อยที่พาไปถึงจุดหมายแต่ละจุด

— Aoffy | ODT · QA Knowledge Series · 5 min read

Read more

เริ่มต้นกับ Functional Programming

เริ่มต้นกับ Functional Programming

ก่อนหน้านี้ผมเจอโพสต์หนึ่งถามว่า สำหรับคนที่เคยใช้แต่ OOP จะเริ่มต้นกับ Functional Programming ควรเริ่มยังไงดี ผมชอบคำตอบที่ตัวเองตอบไป เลยอยากเอามาจดเก็บไว้ ฝันร้ายของโปรแกรมเมอร์ ก่อนจะเข้าไปใน programming แต่ละ paradigm ผมอยากเริ่มต้นที่ปัญหาก่อน หนึ่งในปัญหาที่หลอกหลอนโปรแกรมเมอร์มากที่สุด คื

By Chokchai Phatharamalai
Values ของ Framework ต่าง ๆ

Values ของ Framework ต่าง ๆ

ผมหาคุณค่า (Values) ของผมเจอจากการสังเกตความต้องการที่มักจะมาหาผมบ่อย ๆ ทั้งตอนที่มันได้รับการตอบสนองและทำให้ผมรู้สึกดีมาก ๆ รวมถึงตอนที่มันไม่ได้รับการตอบสนองและทำให้ผมปั่นป่วนมาก ๆ พอความต้องการไหนมาเคาะประตูใจผมบ่อย ๆ ผมก็เริ่มพิจารณาว่าความต้องการนี้แหละที่เป็น Value หนึ่งสำหรั

By Chokchai Phatharamalai
Accepted Responsibility

Accepted Responsibility

ช่วงนี้ผมกำลังอ่านหนังสือ Extreme Programming Explained ของ Kent Beck แล้วก็ได้เจอหัวข้อหนึ่งที่กระทบใจ คือ principle ที่เรียกว่า Accepted Responsibility Principle คืออะไร? ในหนังสืออธิบายว่า Principle คือหลักการที่ทำให้ Values ของ XP กลายเป็น Practices ได้

By Chokchai Phatharamalai
The Five Ideals

The Five Ideals

จากหนังสือ The Unicorn Project ในนั้นจะมีที่ปรึกษาเก่ง ๆ คนหนึ่งชื่อ Erik เป็นเหมือนเซ็นเซหาตัวยาก เดี๋ยวก็มา เดี๋ยวก็ไป ถ้าโชคดีก็จะเจอเค้าว่าง แล้วเค้าก็จะสอนอะไรที่สำคัญ ๆ แต่ฟังดูล้ำ ๆ และลึกซึ้ง

By Chokchai Phatharamalai