[ Portfolio ] การออกแบบ Test Case และ Test Scenario จาก Real World Requirement

Sutthinai'S
5 min readDec 11, 2023

--

Blog นี้เขียนเพื่อใช้อธิบายวิธีคิดอย่างละเอียดในการทำ Portfolio เรื่องการออกแบบ Test Case และ Test Scenario จาก Real World Requirement ที่ได้ประยุกต์จากการเรียน บวกกับประสบการณ์ส่วนตัว หากผิดพลาดตรงไหน และมีข้อเสนอแนะ ขอขอบคุณล่วงหน้าไว้ ณ ที่นี้เลยครับ :)

การออกแบบ Test Case และ Test scenario จาก Requirement เป็นเรื่องที่เจอค่อนข้างบ่อยในการทำงานจริง โดยเทคนิคที่ใช้ในการออกแบบคือ Black Box Testing ที่เราสนใจเพียงข้อมูลทดสอบ ( Input ) และผลลัพธ์ที่คาดหวัง (Expected Result) นั้น ๆ ไม่สนโค้ดที่อยู่ด้านในว่ามีการทำงานอย่างไร

ก่อนไปเจอกับ Requirement จริง เรามาทำความเข้าใจโครงสร้างของ Test Case และ Test Scenario เพื่อความเข้าใจที่ตรงกันก่อนดีกว่า

โครงสร้าง Test Case และ Test Scenario

  1. Test Case = สิ่งที่ต้องเตรียมก่อนการทดสอบ (Arrange) + ข้อมูลที่ใช้ในการทดสอบ (Test Data) + เงื่อนไขที่จะถูกทดสอบ (Tested Condition) + ผลลัพธ์ที่คาดหวัง (Expected Result)
  2. Test Scenario = Test Case + Test Case + … + Test Case

จะเห็นได้ว่า Test Scenario คือการนำ Test Case ในแต่ละกรณีมารวมเข้าด้วยกัน โดยจะมีเงื่อนไขเล็กน้อยในการหยิบมาร้อยเรียงเป็น Test Scenario ซึ่งจะอธิบายเพิ่มเติมต่อไป

Real World Requirement เงื่อนไขการจัดส่งสินค้า ร้านค้าส่ง Pet Shop

Real World Requirement เงื่อนไขการจัดส่งสินค้า ร้าน Pet Shop
  1. ลูกค้าต้องเป็นสมาชิกจึงจะได้รับสิทธิ์จัดส่งสินค้า
  2. ช่วงเวลารับออเดอร์จัดส่งสินค้าคือ 10.00–19.00
  3. เมื่อยอดสั่งซื้อน้อยกว่า 3,000 บาท จะไม่จัดส่งสินค้า
  4. เมื่อยอดสั่งซื้อเท่ากับหรือมากกว่า 3,000 บาท ขึ้นไป จะจัดส่งสินค้า ค่าจัดส่ง 250 บาท
  5. เมื่อยอดสั่งซื้อเท่ากับหรือมากกว่า 10,000 บาทขึ้นไป จะจัดส่งสินค้า ค่าจัดส่งฟรี
  6. ระยะทางจัดส่งต้องไม่เกิน 20 กิโลเมตรจากตัวร้าน หากเกินระยะทางจะไม่จัดส่งสินค้า
  7. น้ำหนักสินค้ารวมทั้งหมดจะต้องไม่เกิน 300 กิโลกรัม หากน้ำหนักเกินจะไม่จัดส่งสินค้า

เมื่อได้รับ Requirement มา เพื่อง่ายต่อการคุย ทำความเข้าใจภาพรวม ให้ตรงกันกับทีมและเป็นตัวช่วยค้นหา Bug ที่อาจเกิดขึ้นในอนาคต เราจะทำ Flow Chart ขึ้นมา ดังนี้

Flow Chart Real World Requirement เงื่อนไขการจัดส่งสินค้า ร้าน Pet Shop

ออกแบบ Test Case โดยใช้ Black Box Testing

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

Business Rule 1 : ลูกค้าต้องเป็นสมาชิกจึงจะได้รับสิทธิ์จัดส่งสินค้า ( EP )

Test Case 1.1 : เมื่อไม่ได้เป็นสมาชิก ผลลัพธ์ที่คาดหวังคือไม่ได้รับบริการจัดส่งสินค้า

Test Case 1.2 : เมื่อเป็นสมาชิก ผลลัพธ์ที่คาดหวังคือได้รับบริการจัดส่งสินค้า

Business Rule 2 : ช่วงเวลารับออเดอร์จัดส่งสินค้าคือ 10.00–19.00 ( BVA )

Test Case 2.1 : เมื่อเวลาที่ออเดอร์เข้าก่อน 10.00 น. ผลลัพธ์ที่คาดหวังคือ ไม่ได้รับบริการจัดส่งสินค้า

Test Case 2.2 : เมื่อเวลาที่ออเดอร์เข้าเท่ากันกับ 10.00 น. ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า

Test Case 2.3 : เมื่อเวลาที่ออเดอร์เข้าหลัง 10.00 น. ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า

Test Case 2.4 : เมื่อเวลาที่ออเดอร์เข้าก่อน 19.00 น. ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า

Test Case 2.5 : เมื่อเวลาที่ออเดอร์เข้าเท่ากันกับ 19.00 น. ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า

Test Case 2.6 : เมื่อเวลาที่ออเดอร์เข้าหลัง 19.00 น. ผลลัพธ์ที่คาดหวังคือ ไม่ได้รับบริการจัดส่งสินค้า

Business Rule 3 : เมื่อยอดสั่งซื้อน้อยกว่า 3,000 บาท จะไม่จัดส่งสินค้า &
Business Rule 4 : เมื่อยอดสั่งซื้อเท่ากับหรือมากกว่า 3,000 บาท ขึ้นไป จะจัดส่งสินค้า ค่าจัดส่ง 250 บาท &
Business Rule 5 : เมื่อยอดสั่งซื้อเท่ากับหรือมากกว่า 10,000 บาทขึ้นไป จะจัดส่งสินค้า ค่าจัดส่งฟรี ( BVA )

จะเห็นว่า Business Rule 3 ,4 และ 5 เป็นเงื่อนไขยอดสั่งซื้อที่เกี่ยวข้องกัน ดังนั้นจึงทำการจัดกลุ่มเพื่อช่วยในการทำความเข้าใจในภาพรวมได้ง่ายขึ้น

Test Case 3.1 : เมื่อยอดสั่งซื้อน้อยกว่า 3,000 บาท ผลลัพธ์ที่คาดหวังคือ ไม่ได้รับบริการจัดส่งสินค้า

Test Case 4.1 : เมื่อยอดสั่งซื้อเท่ากันกับ 3,000 บาท ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า มีค่าจัดส่ง 250 บาท

Test Case 4.1 : เมื่อยอดสั่งซื้อมากกว่า 3,000 บาท ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า มีค่าจัดส่ง 250 บาท

Test Case 5.1 : เมื่อยอดสั่งซื้อน้อยกว่า 10,000 บาท ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า มีค่าจัดส่ง 250 บาท

Test Case 5.2 : เมื่อยอดสั่งซื้อเท่ากันกับ 10,000 บาท ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า ไม่มีค่าจัดส่ง

Test Case 5.3 : เมื่อยอดสั่งซื้อมากกว่า 10,000 บาท ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า ไม่มีค่าจัดส่ง

Business Rule 6 : ระยะทางจัดส่งต้องไม่เกิน 20 กิโลเมตรจากตัวร้าน หากเกินระยะทางจะไม่จัดส่งสินค้า ( BVA )

ระยะทางไม่เกิน 20 กิโลเมตร .. หาก 20 กิโลเมตรพอดีจะได้รับบริการจัดส่งหรือไม่ ? หากเกิดข้อสงสัยใน Requirement แม้จะเป็นเรื่องเล็กน้อยควรถามไปถึงผู้มีสิทธิ์ตัดสินใจ เพื่อทำความเข้าใจให้ตรงกัน จะได้ไม่เกิดข้อถกเถียงกันภายหลัง

Test Case 6.1 : ระยะทางน้อยกว่า 20 กิโลเมตรจากตัวร้าน ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า

Test Case 6.2 : ระยะทางเท่ากันกับ 20 กิโลเมตรจากตัวร้าน ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า

Test Case 6.3 : ระยะทางมากกว่า 20 กิโลเมตรจากตัวร้าน ผลลัพธ์ที่คาดหวังคือ ไม่ได้รับบริการจัดส่งสินค้า

Business Rule 7 : น้ำหนักสินค้ารวมทั้งหมดจะต้องไม่เกิน 300 กิโลกรัม หากน้ำหนักเกินจะไม่จัดส่งสินค้า ( BVA )

น้ำหนักสินค้ารวมทั้งหมดต้องไม่เกิน 300 กิโลกรัม .. หาก 300กิโลเมตรพอดีจะได้รับบริการจัดส่งหรือไม่ ? หากเกิดข้อสงสัยใน Requirement แม้จะเป็นเรื่องเล็กน้อยควรถามไปถึงผู้มีสิทธิ์ตัดสินใจ เพื่อทำความเข้าใจให้ตรงกัน จะได้ไม่เกิดข้อถกเถียงกันภายหลัง

Test Case 7.1 : น้ำหนักสินค้ารวมทั้งหมดน้อยกว่า 300 กิโลกรัม ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า

Test Case 7.2 : น้ำหนักสินค้ารวมทั้งหมดเท่ากับ 300 กิโลกรัม ผลลัพธ์ที่คาดหวังคือ ได้รับบริการจัดส่งสินค้า

Test Case 7.3 : น้ำหนักสินค้ารวมทั้งหมดมากกว่า 300 กิโลกรัม ผลลัพธ์ที่คาดหวังคือ ไม่ได้รับบริการจัดส่งสินค้า

Test Case และ Test Scenario ในไฟล์ Sheet

เมื่อเราเข้าใจว่าแต่ละ Business Rule สามารถมีได้กี่ Test Case ตามเทคนิค Black Box Testing แล้ว ขั้นตอนต่อไปเราจะนำ Test Case เหล่านี้ไปเขียนในไฟล์ Sheet เพื่อง่ายต่อการจัดเก็บ และนำไปใช้งานต่อไป ดังนี้

Test Case Real World Requirement เงื่อนไขการจัดส่งสินค้า ร้าน Pet Shop

อย่างที่ได้เกริ่นไปแรก ๆ ว่าโครงสร้างของ Test Scenario = Test Case + Test Case + … + Test Case หมายถึงเราจะนำ Test Case ที่ได้มาร้อยเรียงกันให้เป็น Test Scenario โดยมีเงื่อนไข ดังนี้

  1. ในหนึ่ง Business Rule เราจะเลือก Test Case มาแค่หนึ่ง Case เท่านั้น
  2. เมื่อเลือก Case ไหนใน Business Rule ไปแล้ว ให้ทำสัญลักษณ์ว่าได้ใช้ไปแล้ว
  3. เมื่อขึ้น Test Scenario ใหม่ ให้เลือกจากตัวที่ยังไม่เคยใช้
  4. ยกเว้นในกรณีที่ Business Rule ยังถูกใช้ไม่ครบทุก Case สามารถหยิบ Case ที่ถูกใช้ไปแล้วได้

จากเงื่อนไขเมื่อเรานำ Test Case มาร้อยเรียงกันเพื่อหา Positive Test Scenario จะได้ผลลัพธ์ ดังนี้

Test Scenario 1 : ลูกค้าเป็นสมาชิก + เวลาที่ออเดอร์เข้าเท่ากันกับ 10.00 น. + ยอดสั่งซื้อเท่ากันกับ 3,000 บาท + ระยะทางจัดส่งน้อยกว่า 20 กิโลเมตร + น้ำหนักสินค้ารวมน้อยกว่า 300 กิโลกรัม

Test Scenario 2 : ลูกค้าเป็นสมาชิก + เวลาที่ออเดอร์เข้าหลัง 10.00 น. + ยอดสั่งซื้อมากกว่า 3,000 บาท + ระยะทางจัดส่งเท่ากันกับ 20 กิโลเมตร + น้ำหนักสินค้ารวมเท่ากันกับ 300 กิโลกรัม

Test Scenario 3 : ลูกค้าเป็นสมาชิก + เวลาที่ออเดอร์เข้าก่อน 19.00 น. + ยอดสั่งซื้อน้อยกว่า 10,000 บาท + ระยะทางจัดส่งน้อยกว่า 20 กิโลเมตร + น้ำหนักสินค้ารวมน้อยกว่า 300 กิโลกรัม

Test Scenario 4 : ลูกค้าเป็นสมาชิก + เวลาที่ออเดอร์เข้าเท่ากันกับ 19.00 น. + ยอดสั่งซื้อเท่ากันกับ 10,000 บาท + ระยะทางจัดส่งเท่ากันกับ 20 กิโลเมตร + น้ำหนักสินค้ารวมเท่ากันกับ 300 กิโลกรัม

Test Scenario 5 : ลูกค้าเป็นสมาชิก + เวลาที่ออเดอร์เข้าเท่ากันกับ 19.00 น. + ยอดสั่งซื้อมากกว่า 10,000 บาท + ระยะทางจัดส่งเท่ากันกับ 20 กิโลเมตร + น้ำหนักสินค้ารวมเท่ากันกับ 300 กิโลกรัม

Positive Test Scenario Real World Requirement เงื่อนไขการจัดส่งสินค้า ร้าน Pet Shop

เมื่อเราได้ Positive Test Scenario ครบ จากนั้นจะเข้าสู่การออกแบบ Template ของ เงื่อนไขการจัดส่งสินค้าร้านค้าส่ง Pet Shop เนื่องจาก Template แต่ละเงื่อนไขจะไม่เหมือนกัน เพราะมีรายละเอียดข้อมูลที่เตรียมแตกต่างกันออกไป โดย Template ที่ออกแบบก็จะไม่ตายตัวขึ้นอยู่กับเราออกแบบ

แต่ข้อมูลที่ใช้ในการทดสอบจะต้องเป็นข้อมูลที่เสมือนจริงที่สุดจะต้องไม่มีข้อมูล เช่น เทส123 ทดสอบ หรืออื่น ๆ แต่ทั้งนี้ในการทดสอบจริง การจะได้ข้อมูลที่ตรงกับ Test Scenario แบบเป๊ะ ๆ อาจเป็นเรื่องที่ยาก เช่น การหาที่อยู่ที่ห่างจากตัวร้าน 20 กิโลเมตรพอดี

ในส่วนนี้ต้องมีการคุยกับทีมเพิ่มเติมว่าสามารถใช้วิธีอื่น หรือ Mock ข้อมูลได้หรือไม่ ?

Template Positive Test Scenario Real World Requirement เงื่อนไขการจัดส่งสินค้า ร้าน Pet Shop

และนี่คือ Step by Step ในการออกแบบ Test Case และ Test Scenario จาก Real World Requirement ซึ่ง Requirement ที่ได้เป็น Requirement ที่เกือบจริง เพราะได้มีการลดทอนเงื่อนไขออกไปค่อนข้างมาก

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

--

--