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

The Five Ideals

The Five Ideals

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

By Chokchai Phatharamalai
Communication, Reliability and Modern concepts - System Design, Simply Explained

Communication, Reliability and Modern concepts - System Design, Simply Explained

บทความนี้จะอธิบายพื้นฐานของ System Design โดยต่อยอดจากตัวอย่าง Gym Application เพื่อให้เห็นภาพว่า เมื่อระบบเริ่มเติบโตและถูกแยกออกเป็นหลาย Service แต่ละ Service จะสื่อสารและทำงานร่วมกันอย่างไร งานแบบไหนควรสื่อสารแบบ Synchronous งานแบบไหนควรประมวลผลแบบ Asynchronous รวมถึงอธิบาย Concept พื้นฐานต่าง ๆ ที่ควรรู้ เช่น API

By Boonsong Srithong
Race condition

Race condition

ผมกำลังอ่านหนังสือ The Unicorn Project ซึ่งเป็นนิยายเกี่ยวกับ developer สาวคนหนึ่งที่ใช้ชีวิตในองค์กรท่ามกลางกระแส digital disruption อ่านแล้วสนุกมาก เป็นเรื่องที่ตื่นเต้น และหลาย ๆ dynamic ที่เกิดขึ้นก็คล้ายกับที่ผมพบเจอในบริษัทซอฟต์แวร์ เลยทำให้

By Chokchai Phatharamalai
Distributed Systems Concepts - System Design, Simply Explained

Distributed Systems Concepts - System Design, Simply Explained

ในช่วงแรก Product เราสามารถออกแบบระบบให้อยู่ใน Server และ Database เดียวกันได้ แต่เมื่อระบบโตขึ้น มีผู้ใช้งานเพิ่มขึ้น ข้อมูลเยอะขึ้น ระบบเริ่มทำงานช้าลดเรื่อยๆ สิ่งที่หนีไม่ได้คือการ Decomposition Service ไปเป็น Distributed System เช่น Member Service, Booking Service, Payment

By Boonsong Srithong