EP.5 เทคนิคการออกแบบกรณีการทดสอบ (Test Case) และ สถานการณ์การทดสอบ (Test Scenario)

Nat Ketwadee
5 min readAug 31, 2023

--

สวัสดีค่ะทุกคน ได้กลับมาเจอกันอีกครั้งใน EP.5 นี้ ผู้เขียนมาชวนทุกคนฝึกทำโจทย์กันอีกแล้วค่าา ฝึกแบบซ้ำ ๆ ซาก ๆ แถมยังใช้เทคนิคเดิม ๆ ที่เราเคยฝึกกันมาแล้ว (แต่ผู้เขียนก็ยังไม่ค่อยชินสักที5555) ซึ่งโจทย์ในบทความนี้จะเกี่ยวกับระบบประเภทของสมาชิก โดยจะเป็นการเลื่อนอันดับของสมาชิกที่มาใช้บริการระบบร้านค้าออนไลน์ จะมีการใช้เทคนิคการออกแบบหลากหลายแบบในโจทย์เดียวค่ะ เราจะนำมาประยุกต์ใช้ด้วยกันค่ะ

ตัวอย่างโจทย์ ประเภทของสมาชิก

ฝ่ายการตลาดต้องการให้มีประเภทของสมาชิก ดังต่อไปนี้

สมาชิกระดับทั่วไป (Regular)

  • ระดับเริ่มต้นของลูกค้าประเภทสมาชิก
  • สามารถขึ้นเป็นสมาชิกระดับเหรียญเงิน (Silver) ได้รับแต้มพิเศษฟรี 50 แต้ม เมื่อซื้อสินค้าครบ 1,000.00 บาท ภายในระยะเวลา 6 เดือน และจำกัดเฉพาะ 500 ท่านแรกของแต่ละเดือน

สมาชิกระดับเหรียญเงิน (Silver)

  • สามารถขึ้นเป็นสมาชิกประเภทเหรียญทอง (Gold) ได้รับแต้มพิเศษฟรี 200 แต้ม เมื่อซื้อสินค้าครบ 4 ครั้ง (ครั้งละ 1,000.00 บาทขึ้นไป) ภายในระยะเวลา 6 เดือน และจำกัดเฉพาะ 200 ท่านแรกของแต่ละเดือน
  • ได้รับแต้มพิเศษคูณ 2 เท่า เมื่อซื้อสินค้า และชำระเงินด้วย Credit Card และ Debit Card

สมาชิกระดับเหรียญทอง (Gold)

  • สามารถขึ้นเป็นสมาชิกประเภทแพลตตินั่ม (Platinum) ได้รับแต้มพิเศษฟรี 300 แต้ม เมื่อซื้อสินค้าครบ 8 ครั้ง (ครั้งละ 1,000.00 บาทขึ้นไป) ภายในระยะเวลา 6 เดือน และจำกัดเฉพาะ 100 ท่านแรกของแต่ละเดือน
  • ได้รับแต้มพิเศษคูณ 3 เท่า เมื่อซื้อสินค้า และชำระเงินด้วย Credit Card และ Debit Card

สมาชิกระดับแพลตตินั่ม (Platinum)

  • ได้รับแต้มพิเศษฟรี 1,000 แต้ม เมื่อซื้อสินค้าครบ 10,000.00 บาท ภายในระยะเวลา 1 เดือน และจำกัดเฉพาะ 30 ท่านแรกของแต่ละเดือน
  • ได้รับแต้มพิเศษคูณ 5 เท่า เมื่อซื้อสินค้า และชำระเงินด้วย Credit Card และ Debit Card

หมายเหตุ แต้มพิเศษ มีอายุ 60 วัน หลังจากแต้มถูกอนุมัติ

ทบทวนเทคนิคการออกแบบกรณีการทดสอบ (Test Case)

State Transition

จะใช้เทคนิคนี้กับโจทย์ที่มีการกำกับสถานะไว้ โดยที่เราจะต้องรู้ว่า การที่สถานะปัจจุบัน จะย้ายไปสถานะปลายทางได้นั้น จะต้องระบุว่ามีเงื่อนไขอะไรที่ทำให้ย้ายสถานะได้ หรือจะบอกถึงว่าใครเป็นคนทำให้ย้ายสถานะด้วยก็ได้ และจะต้องกำหนด Output ที่ได้ออกมา

สมาชิกระดับทั่วไป (Regular) → สมาชิกระดับเหรียญเงิน (Silver)

เงื่อนไขทางธุรกิจ คือ

  • ระดับเริ่มต้นของลูกค้าประเภทสมาชิก
  • สามารถขึ้นเป็นสมาชิกระดับเหรียญเงิน (Silver) ได้รับแต้มพิเศษฟรี 50 แต้ม เมื่อซื้อสินค้าครบ 1,000.00 บาท ภายในระยะเวลา 6 เดือน และจำกัดเฉพาะ 500 ท่านแรกของแต่ละเดือน

จากเทคนิค State Transition จะได้

สถานะปัจจุบัน: สมาชิกระดับทั่วไป (Regular)

สถานะปลายทาง: สมาชิกระดับเหรียญเงิน (Silver)

เงื่อนไขที่ทำให้เกิดการย้ายสถานะ: ซื้อสินค้าครบ 1,000.00 บาท และ ภายในระยะเวลา 6 เดือน และ จำกัดเฉพาะ 500 ท่านแรกของแต่ละเดือน

Output: ได้รับแต้มพิเศษฟรี 50 แต้ม

เราจะเห็นว่าในเงื่อนไขที่ทำให้เกิดการย้ายสถานะนั้นมีเงื่อนไขที่เป็นค่าของตัวเลข และมีขอบเขตของตัวเลขชัดเจน ดังนั้นเราจะต้องใช้เทคนิคการออกแบบ BVA มาช่วยออกแบบ โดยแยกทำทีละข้อค่ะ

สมาชิกระดับทั่วไป (Regular) → สมาชิกระดับเหรียญเงิน (Silver)

กรณีการทดสอบ (Test Case) ของ เงื่อนไข ซื้อสินค้าครบ 1,000.00 บาท (A1)

เราจะสังเกตุเห็นว่าในเงื่อนไขนี้ การซื้อสินค้านั้นอาจจะไม่ได้มีแค่กรณีซื้อน้อยกว่า/มากกว่า/เท่ากันกับ 1,000.00 บาท เท่านั้น อาจจะต้องคำนึงถึงที่จำนวนรายการซื้อที่จะทำให้ครบ 1,000.00 บาทด้วย

A1–TC1

เงื่อนไขที่จะถูกทดสอบ: ซื้อสินค้าเท่ากันกับ 1 รายการ ราคารวมเท่ากันกับ 1,000.00 บาท

ข้อมูลที่ใช้ในการทดสอบ: ซื้อสินค้า 1 รายการ ราคารวม 1,000.00 บาท

ผลลัพธ์ที่คาดหวัง: ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ได้รับแต้มพิเศษฟรี 50 แต้ม

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

A1–TC2

เงื่อนไขที่จะถูกทดสอบ: ซื้อสินค้าเท่ากันกับ 1 รายการ ราคารวมมากกว่า 1,000.00 บาท

ข้อมูลที่ใช้ในการทดสอบ: ซื้อสินค้า 1 รายการ ราคารวม 2,375.00 บาท

ผลลัพธ์ที่คาดหวัง: ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ได้รับแต้มพิเศษฟรี 50 แต้ม

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

A1–TC3

เงื่อนไขที่จะถูกทดสอบ: ซื้อสินค้ามากกว่า 1 รายการ ราคารวมเท่ากันกับ 1,000.00 บาท

ข้อมูลที่ใช้ในการทดสอบ: ซื้อสินค้า 2 รายการ ราคารวม 1,000.00 บาท

ผลลัพธ์ที่คาดหวัง: ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ได้รับแต้มพิเศษฟรี 50 แต้ม

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

A1–TC4

เงื่อนไขที่จะถูกทดสอบ: ซื้อสินค้ามากกว่า 1 รายการ ราคารวมมากกว่า 1,000.00 บาท

ข้อมูลที่ใช้ในการทดสอบ: ซื้อสินค้า 3 รายการ ราคารวม 3,450.00 บาท

ผลลัพธ์ที่คาดหวัง: ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ได้รับแต้มพิเศษฟรี 50 แต้ม

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

A1–TC5

เงื่อนไขที่จะถูกทดสอบ: ซื้อสินค้าเท่ากันกับ 1 รายการ ราคารวมน้อยกว่า 1,000.00 บาท

ข้อมูลที่ใช้ในการทดสอบ: ซื้อสินค้า 1 รายการ ราคารวม 930.00 บาท

ผลลัพธ์ที่คาดหวัง: ไม่ได้ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ไม่ได้รับแต้มพิเศษฟรี 50 แต้ม

หรือ

ผลลัพธ์ที่คาดหวัง: เป็นสมาชิกระดับทั่วไป (Regular)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

A1–TC6

เงื่อนไขที่จะถูกทดสอบ: ซื้อสินค้ามากกว่า 1 รายการ ราคารวมน้อยกว่า 1,000.00 บาท

ข้อมูลที่ใช้ในการทดสอบ: ซื้อสินค้า 2 รายการ ราคารวม 761.00 บาท

ผลลัพธ์ที่คาดหวัง: ไม่ได้ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ไม่ได้รับแต้มพิเศษฟรี 50 แต้ม

กรณีการทดสอบ (Test Case) ของ เงื่อนไข ซื้อสินค้าครบ 1,000.00 บาท (A1)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

กรณีการทดสอบ (Test Case) ของ เงื่อนไข ภายในระยะเวลา 6 เดือน (B1)

B1-TC1

เงื่อนไขที่จะถูกทดสอบ: รายการซื้อสินค้า น้อยกว่า 6 เดือน (เดือนที่ 1–5)

ข้อมูลที่ใช้ในการทดสอบ: รายการซื้อสินค้าเดือนที่ 5

ผลลัพธ์ที่คาดหวัง: ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ได้รับแต้มพิเศษฟรี 50 แต้ม

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

B1-TC2

เงื่อนไขที่จะถูกทดสอบ: รายการซื้อสินค้า เท่ากันกับ 6 เดือน

ข้อมูลที่ใช้ในการทดสอบ: รายการซื้อสินค้าเดือนที่ 6

ผลลัพธ์ที่คาดหวัง: ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ได้รับแต้มพิเศษฟรี 50 แต้ม

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

B1-TC3

เงื่อนไขที่จะถูกทดสอบ: รายการซื้อสินค้า มากกว่า 6 เดือน (เดือนที่ 7 ขึ้นไป)

ข้อมูลที่ใช้ในการทดสอบ: รายการซื้อสินค้าเดือนที่ 7

ผลลัพธ์ที่คาดหวัง: ไม่ได้ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ไม่ได้รับแต้มพิเศษฟรี 50 แต้ม

กรณีการทดสอบ (Test Case) ของ เงื่อนไข ภายในระยะเวลา 6 เดือน (B1)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

กรณีการทดสอบ (Test Case) ของ เงื่อนไข จำกัดเฉพาะ 500 ท่านแรกของแต่ละเดือน (C1)

C1-TC1

เงื่อนไขที่จะถูกทดสอบ: เป็นคนที่น้อยกว่า 500 (คนที่ 1–499) ของเดือน

ข้อมูลที่ใช้ในการทดสอบ: คนที่ 495 ของเดือน

ผลลัพธ์ที่คาดหวัง: ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ได้รับแต้มพิเศษฟรี 50 แต้ม

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

C1-TC2

เงื่อนไขที่จะถูกทดสอบ: เป็นคนที่เท่ากันกับ 500 ของเดือน

ข้อมูลที่ใช้ในการทดสอบ: คนที่ 500 ของเดือน

ผลลัพธ์ที่คาดหวัง: ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ได้รับแต้มพิเศษฟรี 50 แต้ม

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

C1-TC3

เงื่อนไขที่จะถูกทดสอบ: เป็นคนที่มากกว่า 500 (คนที่ 500 ขึ้นไป) ของเดือน

ข้อมูลที่ใช้ในการทดสอบ: คนที่ 501 ของเดือน

ผลลัพธ์ที่คาดหวัง: ไม่ได้ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver) และ ไม่ได้รับแต้มพิเศษฟรี 50 แต้ม

กรณีการทดสอบ (Test Case) ของ เงื่อนไข จำกัดเฉพาะ 500 ท่านแรกของแต่ละเดือน (C1)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

ตัวอย่างการรวม Test Case ให้เป็น Test Scenario

Test Scenario Success: ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver)

Test Scenario Alternative: ไม่ได้ปรับเป็นสมาชิกระดับเหรียญเงิน (Silver)

เมื่อเรารวมสถานการณ์การทดสอบทั้งหมดที่สามารถเป็นไปได้แล้ว เราสามารถเลือกสถานการณ์การทดสอบ แค่บางสถานการณ์ที่จะนำไปดำเนินการทดสอบได้

ทุกคนลองนำไปเขียนเป็น Test Scenarios ลง Sheet ได้นะคะ สามารถออกแบบหัวคอลัมน์ได้ตามที่เหมาะสมได้เลยค่ะ อย่างที่เราเคยบอกไปว่าแต่ละ Test Scenario ที่เราออกแบบนั้นจะไม่มี Template ที่ตายตัว สามารถปรับเปลี่ยนไปได้ตลอด

ขอบคุณทุกคนที่เข้ามาอ่านนะคะ สำหรับ EP หน้าเราจะยังอยู่กับโจทย์นี้เหมือนเดิมค่ะ

บทความที่เกี่ยวข้อง → EP.1–4

--

--

Nat Ketwadee

𝚂𝚘𝚏𝚝𝚠𝚊𝚛𝚎 𝚃𝚎𝚜𝚝𝚎𝚛 👩🏻‍💻˖ ۫ ּ