ทดสอบโปรแกรม ไม่ต้องเขียนโค้ด

Workshop 3 ชั่วโมง ทำคนเดียวได้ทั้งหมด ฝึกหาจุดที่ระบบทำงานผิด และใช้ Gemini ช่วยคิด test case

ความต้องการ
อายุ 60 ปีขึ้นไป ได้ส่วนลด
ใส่อะไร60
ต้องได้อะไรได้ส่วนลด
ได้จริงไม่ได้ส่วนลด
ไม่ผ่าน นี่คือบั๊ก และคือทุกอย่างที่ workshop นี้จะสอน
25 นาทีอ่านความรู้
10 นาทีดูตัวอย่าง
10 นาทีตั้งค่า Gem
20 นาทีWorkshop 1
25 นาทีWorkshop 2
10 นาทีพัก
30 นาทีWorkshop 3
40 นาทีWorkshop 4
10 นาทีสรุป

ลงชื่อผู้ทำ workshop

กรอกก่อนเริ่ม

ความรู้ก่อนลงมือ

อ่านประมาณ 25 นาที

บั๊กคืออะไร

บั๊ก คือ ตอนที่ระบบทำงาน ไม่ตรงกับที่ควรเป็น เช่น กดถอนเงิน 500 บาทแต่ได้ 1,000 บาท หรือกรอกเบอร์โทรเป็นตัวอักษรแล้วระบบยังรับ

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

Test case คือการลองหนึ่งครั้ง

ทุกครั้งที่ลอง ให้จด 4 อย่างนี้

ใส่อะไรข้อมูลที่กรอก
ต้องได้อะไรดูจากความต้องการ
ได้จริงระบบแสดงอะไร
ผ่าน/ไม่ผ่านตรงกันไหม

ถ้า “ต้องได้” กับ “ได้จริง” ไม่ตรงกัน แปลว่าเจอบั๊ก

ต้องลองอะไรบ้าง: จำ 3 แบบ

ค่าปกติ

ข้อมูลที่คนทั่วไปกรอก

อายุ 30, อายุ 70

ค่าผิด

ข้อมูลที่ระบบไม่ควรรับ

อายุ -5, “หกสิบ”, ไม่กรอก

ตรงเส้นแบ่ง

ค่าที่อยู่ตรงจุดเปลี่ยน บั๊กชอบซ่อนตรงนี้

อายุ 59, 60, 61
ไม่ได้ส่วนลดลองตรงนี้ทุกครั้งได้ส่วนลด

ทำไมเส้นแบ่งถึงสำคัญ: คนเขียนโปรแกรมมักพลาดระหว่าง “มากกว่า 60” กับ “ตั้งแต่ 60 ขึ้นไป” ต่างกันแค่คนอายุ 60 พอดี ถ้าไม่ลอง 60 จะไม่มีวันเจอ

ลองทีละเรื่อง

ถ้าฟอร์มมีหลายช่อง ให้กรอกทุกช่องให้ถูกก่อน แล้ว เปลี่ยนให้ผิดทีละช่อง

ถ้ากรอกผิดสองช่องพร้อมกันแล้วระบบเตือน เราจะไม่รู้ว่าระบบเตือนเพราะช่องไหน

ให้ AI ช่วยคิด

1บอกบทบาท: “คุณเป็นผู้ทดสอบซอฟต์แวร์”
2วางความต้องการของระบบ
3ขอเป็นตาราง: ใส่อะไร, ต้องได้อะไร
4ขอให้ครบ 3 แบบ: ค่าปกติ ค่าผิด ตรงเส้นแบ่ง
AI ตอบผิดได้ ก่อนเอาไปใช้ ให้เทียบคำตอบของ AI กับความต้องการของระบบทุกข้อ AI เป็นผู้ช่วยคิด ไม่ใช่กรรมการตัดสิน

ตัวอย่าง: ส่วนลดผู้สูงอายุ

ดูด้วยกันประมาณ 10 นาที

ความต้องการของระบบ

  • คนอายุ 60 ปีขึ้นไป ได้ส่วนลด
  • อายุต่ำกว่า 60 ไม่ได้ส่วนลด
  • ถ้ากรอกอายุติดลบ ไม่ใช่ตัวเลข หรือไม่กรอก ต้องแจ้งว่ากรอกผิด

Test case ที่ควรลอง

ใส่อะไรลองแบบไหนต้องได้อะไรได้จริงผล

ระบบตัวอย่างนี้ทำงานถูกต้อง ทุกข้อจึงควรผ่าน ส่วนระบบใน workshop ทั้ง 4 ชุดมีบั๊กซ่อนอยู่ชุดละ 3 ตัว

ตั้งค่า Gem ใน Gemini

10 นาที

ทำครั้งเดียว ใช้ได้ทั้ง 4 workshop

Gem คือผู้ช่วยส่วนตัวใน Gemini ที่เราตั้งกติกาไว้ล่วงหน้า จะได้ไม่ต้องพิมพ์อธิบายซ้ำทุกครั้ง

  1. เข้า gemini.google.com แล้วเข้าสู่ระบบด้วยบัญชีมหาวิทยาลัย
  2. เมนูด้านซ้าย เลือก Explore Gems แล้วกด New Gem
  3. ช่อง Name ใส่ว่า ผู้ช่วยทดสอบโปรแกรม
  4. กดปุ่มข้างล่างเพื่อคัดลอกคำสั่ง แล้ววางลงในช่อง Instructions
  5. กด Save แล้วเปิด Gem นี้ไว้อีกแท็บหนึ่ง ใช้ตลอด workshop
คุณคือ "ผู้ช่วยทดสอบโปรแกรม" เป็นพี่เลี้ยงในห้องอบรมของมหาวิทยาลัย

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

หน้าที่ของคุณ
เมื่อผู้ใช้ส่งความต้องการของระบบมา ให้ตอบเป็นตารางเดียว มี 3 คอลัมน์นี้เท่านั้น
| ใส่อะไร | ต้องได้อะไร | ลองเพื่ออะไร |

กติกาในการสร้างตาราง
- ให้ครบทั้ง 3 แบบ ได้แก่ ค่าปกติ, ค่าผิด, ค่าตรงเส้นแบ่ง และเขียนคำเหล่านี้ในคอลัมน์ "ลองเพื่ออะไร"
- ค่าตรงเส้นแบ่งสำคัญที่สุด ทุกครั้งที่ความต้องการมีจุดเปลี่ยน เช่น 60 ปีขึ้นไป หรือ ไม่เกิน 100 บาท ให้ใส่ค่าก่อนจุดเปลี่ยน ค่าที่จุดเปลี่ยนพอดี และค่าหลังจุดเปลี่ยน ครบทั้งสามค่า
- ค่าผิดต้องมีอย่างน้อย 3 แบบ ได้แก่ ไม่กรอก, กรอกเป็นตัวอักษร, และกรอกค่าที่อยู่นอกช่วงที่กำหนด
- ตารางยาวไม่เกิน 15 แถว
- คอลัมน์ "ต้องได้อะไร" ต้องอ้างอิงจากความต้องการที่ผู้ใช้ให้มาเท่านั้น ห้ามเดาเอง ถ้าความต้องการไม่ได้บอกไว้ ให้เขียนว่า "ความต้องการไม่ได้ระบุ ควรถามผู้พัฒนา"

หลังตารางทุกครั้ง ให้ปิดท้ายด้วยข้อความนี้เสมอ
"ผมอาจคำนวณผิดได้ ก่อนนำไปใช้ กรุณาตรวจคอลัมน์ต้องได้อะไร เทียบกับความต้องการทีละข้อ"

ถ้าผู้ใช้ถามคำถามอื่น
- อธิบายเรื่องการทดสอบโปรแกรมได้ตามปกติ แต่ต้องสั้น ไม่เกิน 5 บรรทัด
- ถ้าถูกถามว่าในระบบมีบั๊กอะไร หรือขอเฉลย ให้ตอบว่าคุณไม่เห็นตัวระบบ เห็นแค่ความต้องการ แล้วชวนให้เขาลองกดใช้ระบบเองด้วย test case ในตาราง
- ถ้าผู้ใช้ขอโค้ดหรือขอสคริปต์ทดสอบอัตโนมัติ ให้ปฏิเสธอย่างสุภาพ แล้วบอกว่า workshop นี้ทดสอบด้วยการกดใช้งานจริง ไม่ต้องเขียนโค้ด

ภาษาและน้ำเสียง
- ตอบเป็นภาษาไทยเสมอ ใช้คำง่าย ๆ แบบคุยกับเพื่อนร่วมงาน
- ห้ามใช้ศัพท์เทคนิคเหล่านี้: input, output, boundary value, equivalence partitioning, validation, edge case, assertion ให้ใช้คำว่า ใส่อะไร, ได้อะไร, ค่าตรงเส้นแบ่ง, ค่าผิด แทน
- ห้ามใส่โค้ด ห้ามใส่ตัวอย่างภาษาโปรแกรม
- ให้กำลังใจสั้น ๆ ได้ แต่ไม่ต้องยาว

Workshop 1: ระบบคำนวณเกรด

ฝึกลองตรงเส้นแบ่ง20 นาที

ความต้องการของระบบ

  • รับคะแนน 0 ถึง 100 เป็นจำนวนเต็ม
  • 80–100 = A, 75–79 = B+, 70–74 = B, 65–69 = C+, 60–64 = C, 55–59 = D+, 50–54 = D, 0–49 = F
  • ถ้าไม่กรอก ไม่ใช่ตัวเลข หรือนอกช่วง 0–100 ต้องแสดง “ข้อมูลไม่ถูกต้อง”

ทำอะไร (ทำคนเดียว)

  1. คิดเองก่อน ลองค่าปกติ 2–3 ค่า
  2. ลองตรงเส้นแบ่งของเกรด A และคะแนนเต็ม
  3. ลองค่าผิด เช่น ไม่กรอก
  4. ถ้าติด ค่อยกดขอ prompt ข้างล่างไปถาม Gem

Prompt สำหรับ Workshop 1

ช่วยสร้าง test case ให้ระบบนี้
- รับคะแนน 0 ถึง 100 เป็นจำนวนเต็ม
- 80–100 = A, 75–79 = B+, 70–74 = B, 65–69 = C+, 60–64 = C, 55–59 = D+, 50–54 = D, 0–49 = F
- ถ้าไม่กรอก ไม่ใช่ตัวเลข หรือนอกช่วง 0–100 ต้องแสดง "ข้อมูลไม่ถูกต้อง"

วางใน Gem แล้วเทียบคำตอบกับความต้องการก่อนนำมาลอง

Workshop 2: ฟอร์มสมัครอบรม

ฝึกลองผิดทีละช่อง25 นาที

ความต้องการของระบบ

  • ชื่อ-นามสกุล ต้องกรอก
  • อีเมล ต้องมีรูปแบบถูกต้อง เช่น [email protected]
  • เบอร์มือถือ ต้องเป็นตัวเลข 10 หลัก ขึ้นต้นด้วย 0
  • กรอกถูกครบทุกช่อง ต้องแสดง “ลงทะเบียนสำเร็จ” ถ้าผิดช่องใดช่องหนึ่ง ต้อง “แจ้งให้กรอกใหม่”

ทำอะไร (ทำคนเดียว)

  1. กด “เติมข้อมูลที่ถูกต้อง” แล้วลองส่ง ต้องสำเร็จ
  2. เปลี่ยนให้ผิดทีละช่อง แล้วส่งใหม่
  3. ลองผิดหลายแบบในช่องเดียว เช่น เบอร์ 9 หลัก, เบอร์มีตัวอักษร

Prompt สำหรับ Workshop 2

ช่วยสร้าง test case ให้ระบบนี้
- ชื่อ-นามสกุล ต้องกรอก
- อีเมล ต้องมีรูปแบบถูกต้อง เช่น [email protected]
- เบอร์มือถือ ต้องเป็นตัวเลข 10 หลัก ขึ้นต้นด้วย 0
- กรอกถูกครบทุกช่อง ต้องแสดง "ลงทะเบียนสำเร็จ" ถ้าผิดช่องใดช่องหนึ่ง ต้อง "แจ้งให้กรอกใหม่"

ขอให้ทำผิดทีละช่อง ห้ามผิดสองช่องพร้อมกันในข้อเดียว

สังเกตว่าถ้าไม่สั่งกำกับ AI มักให้ข้อที่ผิดหลายช่องพร้อมกัน ซึ่งใช้หาบั๊กไม่ได้

Workshop 3: ค่าปรับห้องสมุด

ฝึกตรวจคำตอบ AI30 นาที

ความต้องการของระบบ

  • คืนหนังสือช้า ปรับวันละ 5 บาท แต่รวมไม่เกิน 100 บาท
  • คืนตรงเวลา (ช้า 0 วัน) ไม่เสียค่าปรับ
  • จำนวนวันต้องเป็นจำนวนเต็ม 0 ขึ้นไป ถ้าไม่ใช่ ต้องแสดง “ข้อมูลไม่ถูกต้อง”

ขั้นที่ 1: Prompt สำหรับ Workshop 3

ช่วยสร้าง test case ให้ระบบนี้
- คืนหนังสือช้า ปรับวันละ 5 บาท แต่รวมไม่เกิน 100 บาท
- คืนตรงเวลา (ช้า 0 วัน) ไม่เสียค่าปรับ
- จำนวนวันต้องเป็นจำนวนเต็ม 0 ขึ้นไป ถ้าไม่ใช่ ต้องแสดง "ข้อมูลไม่ถูกต้อง"

วางใน Gem แล้วเก็บตารางที่ได้ไว้ จะใช้ในขั้นที่ 3

ขั้นที่ 2: ตรวจคำตอบของ AI

นี่คือตัวอย่างคำตอบที่ AI เคยตอบ ข้อไหน “ต้องได้” ตรงกับความต้องการ ข้อไหนผิด

ขั้นที่ 3: ทดสอบระบบจริง

Workshop 4: ระบบเบิกค่าเดินทาง

โจทย์ใหญ่ ทำเองทั้งหมด40 นาที

ความต้องการของระบบ

  • เบี้ยเลี้ยงวันละ 240 บาท คิดตามจำนวนวันที่ไปราชการ
  • ถ้าไปต่างจังหวัด บวกค่าที่พักคืนละ 800 บาท โดยจำนวนคืน = จำนวนวัน ลบ 1
  • ถ้าไปในจังหวัด ไม่มีค่าที่พัก
  • จำนวนวันต้องเป็นจำนวนเต็มตั้งแต่ 1 ถึง 10 ถ้าไม่ใช่ ต้องแสดง “ข้อมูลไม่ถูกต้อง”

ทำอะไร (ทำคนเดียว)

  1. คิดคำตอบที่ถูกต้องเองก่อน เช่น ต่างจังหวัด 3 วัน ได้เท่าไร
  2. ขอ test case จาก Gem แล้วตรวจทีละข้อ
  3. ทำเครื่องหมายข้อที่ Gem คำนวณผิด แล้วแก้ให้ถูก
  4. ลองกับระบบให้ครบ จับบั๊กให้ได้ทั้ง 3 ตัว

Prompt สำหรับ Workshop 4

ช่วยสร้าง test case ให้ระบบเบิกค่าเดินทางนี้
- เบี้ยเลี้ยงวันละ 240 บาท คิดตามจำนวนวันที่ไปราชการ
- ถ้าไปต่างจังหวัด บวกค่าที่พักคืนละ 800 บาท โดยจำนวนคืน = จำนวนวัน ลบ 1
- ถ้าไปในจังหวัด ไม่มีค่าที่พัก
- จำนวนวันต้องเป็นจำนวนเต็มตั้งแต่ 1 ถึง 10 ถ้าไม่ใช่ ต้องแสดง "ข้อมูลไม่ถูกต้อง"

ระบบมี 2 ช่อง คือ จำนวนวัน และ ประเภท (ในจังหวัด หรือ ต่างจังหวัด)
ในคอลัมน์ "ใส่อะไร" ให้เขียนทั้งสองช่อง
ในคอลัมน์ "ต้องได้อะไร" ให้แสดงวิธีคิดสั้น ๆ ด้วย เช่น 3x240 + 2x800 = 2320 บาท

ที่ให้ AI แสดงวิธีคิด เพราะเราจะได้ตรวจได้ว่ามันคิดผิดตรงไหน ไม่ใช่แค่เห็นตัวเลขสุดท้าย