บันทึกความคืบหน้าอัตโนมัติในเบราว์เซอร์นี้

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

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 เป็นผู้ช่วยคิด ไม่ใช่กรรมการตัดสิน

ทฤษฎีที่ใช้กับแบบฝึกหัดนี้

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

1. Black-box testing: ทดสอบจากพฤติกรรมที่มองเห็น

ใช้ข้อกำหนดเป็นหลัก แล้วเปรียบเทียบผลที่ควรได้กับผลจริง โดยไม่ต้องอ่านโค้ดภายใน ทั้ง 4 Workshop ใช้แนวทางนี้ ตัวอย่างเช่น ระบบเกรดรับคะแนนแล้วแสดงเกรด เราจึงทดสอบความสัมพันธ์ระหว่างคะแนนกับเกรด

ก่อนกดทุกครั้ง: ระบุข้อมูลที่จะใส่ → อ่านกติกาที่เกี่ยวข้อง → คิดผลที่ควรได้ → ทดลอง → เปรียบเทียบและบันทึก

ข้อกำหนดไม่ชัดต้องถามให้ชัดก่อน เช่น “เบอร์ถูกต้อง” หมายถึงรูปแบบถูกต้อง หรือเป็นเบอร์ที่มีผู้ใช้งานจริง? แบบฝึกหัดนี้ตรวจเฉพาะรูปแบบ ไม่ตรวจเจ้าของเบอร์ เครือข่าย หรือการรับ OTP

2. Equivalence Partitioning (EP): แบ่งข้อมูลเป็นกลุ่ม

แบ่งข้อมูลตามพฤติกรรมที่คาดว่าระบบควรจัดการเหมือนกัน แล้วเลือกตัวแทนจากแต่ละกลุ่ม ช่วยลดการลองข้อมูลซ้ำลักษณะเดิม ควรมีทั้งกลุ่มที่ยอมรับและกลุ่มที่ต้องปฏิเสธ [1]

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

การเลือกตัวแทนเป็นวิธีออกแบบการทดสอบ ไม่ได้รับประกันว่าค่าอื่นในกลุ่มจะไม่มีบั๊ก

3. Boundary Value Analysis (BVA): ลองตรงขอบและค่าข้างเคียง

เมื่อข้อมูลมีลำดับและมีจุดเปลี่ยนกติกา ให้ทดสอบค่าที่ขอบและค่าติดกัน เพราะการใช้เงื่อนไขมากกว่า/มากกว่าหรือเท่ากับผิดอาจทำให้พฤติกรรมผิดเฉพาะบริเวณนั้น [1]

ขอบเขตชุดตัวอย่างสำหรับออกแบบ test caseสิ่งที่ต้องตรวจ
คะแนนเริ่มเกรดใหม่ถ้าจุดเปลี่ยนคือคะแนน k ให้ลอง k−1, k, k+1อ่านตารางเกรดเพื่อกำหนดผลของแต่ละค่า ไม่เดาจากระบบ
ความยาวเบอร์ 10 หลัก9, 10 และ 11 หลัก โดยรักษารูปแบบอื่นให้ถูกต้องรับเฉพาะความยาวที่โจทย์กำหนด
เพดานค่าปรับหาวันที่ค่าปรับแตะเพดาน แล้วลองวันก่อนหน้า วันนั้น และวันถัดไปผลรวมต้องไม่เกินเพดาน และต้องไม่ปัดลงก่อนถึงเพดาน
เดินทาง 1–10 วัน0, 1, 2 และ 9, 10, 11ค่าผิดนอกช่วงต้องถูกปฏิเสธทั้งสองประเภทการเดินทาง

ความยาวถูกไม่ได้แปลว่ารูปแบบถูก เช่น ตัวอักษรครบ 10 ตัว ก็ยังต้องถูกปฏิเสธถ้ากติกาต้องการเลขล้วน

4. Decision Table: คิดผลจากหลายเงื่อนไขร่วมกัน

ตารางเงื่อนไขช่วยแสดงว่าชุดเงื่อนไขต่างกันควรนำไปสู่ผลอะไร เหมาะกับกติกาที่มีหลายช่องหรือหลายทางเลือก [1]

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

ขั้นฝึก: เริ่มผิดทีละช่องเพื่อแยกสาเหตุ แล้วจึงเพิ่มกรณีหลายช่องผิดพร้อมกันเพื่อตรวจการทำงานร่วมกัน สำหรับค่าเดินทาง ให้จับคู่วันในช่วง/นอกช่วงกับในจังหวัด/ต่างจังหวัด

5. Test oracle และการอ่านผลผ่าน/ไม่ผ่าน

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

สถานการณ์ผลการทดสอบระบบความหมาย
ข้อมูลถูก และระบบยอมรับระบบตรงข้อกำหนดพฤติกรรมถูกต้อง
ข้อมูลผิด และระบบปฏิเสธระบบตรงข้อกำหนดการทดสอบด้วยข้อมูลผิดสำเร็จ ไม่ใช่พบบั๊ก
ข้อมูลผิด แต่ระบบยอมรับระบบผิดข้อกำหนดมีหลักฐานความผิดปกติให้รายงาน
ผู้เรียนคาดหวังผิดพิจารณาระบบจากข้อกำหนดแยกต่างหากทบทวนคำตอบก่อนนับเป็นบั๊กที่จับได้
อ่านสองคอลัมน์แยกกัน: “คำตอบที่คาดหวัง” บอกว่าผู้เรียนคิดถูกหรือไม่ ส่วน “ผลระบบตามข้อกำหนด” บอกว่าระบบทำถูกหรือไม่ การพบบั๊กเป็นความสำเร็จของผู้ทดสอบ แม้ผลระบบจะแสดงว่าผิดข้อกำหนด

6. รายงานบั๊กให้ทดสอบซ้ำได้

รายงานควรมีหัวข้อชัดเจน สภาพแวดล้อม ขั้นตอนและข้อมูลที่ใช้ ผลที่คาดหวัง ผลจริง และผลกระทบ พร้อมอ้างถึง test case เพื่อให้ผู้รับตรวจซ้ำได้ [2]

แม่แบบ: “เมื่อเปิด [ระบบ/เบราว์เซอร์] แล้วกรอก [ข้อมูล] และกด [ปุ่ม] ตามข้อกำหนดควรได้ [ผล] แต่ได้ [ผลจริง] ทำให้ [ผลกระทบ] อ้างอิง TC…”

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

ความรุนแรง (severity) คือระดับผลกระทบ ส่วนลำดับแก้ไข (priority) คือควรจัดการก่อนหลังเพียงใด ทั้งสองอย่างอาจต่างกันได้

7. ตรวจซ้ำหลังแก้ และดูความครอบคลุม

หลังแก้บั๊ก ให้ลองกรณีเดิมเพื่อยืนยันว่าปัญหาหาย (confirmation testing) และตรวจกรณีอื่นที่อาจได้รับผลกระทบ (regression testing) [2] เช่น แก้การตรวจเบอร์แล้วต้องยังสมัครด้วยข้อมูลถูกได้ และยังปฏิเสธชื่อว่างได้

จำนวน test case บอกปริมาณการลอง แต่ไม่บอกว่าครบทุกกติกา ลองเบอร์ถูกซ้ำ 20 ครั้งอาจครอบคลุมน้อยกว่าลอง 5 กรณีที่เลือกจากคนละกลุ่ม ตัวเลขบนเว็บเป็นจำนวนรายการแยกประเภท ไม่ใช่เปอร์เซ็นต์ความครอบคลุมตามมาตรฐาน และการจับบั๊กครบตามที่ฝังไว้ไม่ได้พิสูจน์ว่าซอฟต์แวร์ไม่มีบั๊กอื่น

จำนวนครั้งจนพบบั๊กใช้สะท้อนกระบวนการเรียนรู้ ไม่ควรใช้ตัดสินความสามารถเพียงอย่างเดียว การทดลองที่ผ่านและการตรวจข้อมูลผิดอย่างถูกต้องก็มีคุณค่า

แหล่งอ้างอิงและการนำมาใช้

คำอธิบายภาษาไทยและตัวอย่างในหน้านี้เรียบเรียงสำหรับ Workshop นี้ ตัวอย่างไม่ได้เป็นข้อสอบรับรองของ ISTQB

  1. ASTQB: ISTQB Foundation Level — 4.2 Black-Box Test Techniques — EP, BVA และ Decision Table
  2. ISTQB Testing Body of Knowledge — Defect report และ Testing and Debugging — รายงานบั๊กและตรวจซ้ำหลังแก้
  3. ISTQB CTFL Syllabus v4.0.1 — อ่านเนื้อหาฉบับเต็ม

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

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

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

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

Test case ที่ควรลอง

ใส่อะไรลองแบบไหนต้องได้อะไรได้จริงผล
30ค่าปกติไม่ได้ส่วนลด –
70ค่าปกติได้ส่วนลด –
59ตรงเส้นแบ่งไม่ได้ส่วนลด –
60ตรงเส้นแบ่งได้ส่วนลด –
61ตรงเส้นแบ่งได้ส่วนลด –
-5ค่าผิดแจ้งว่ากรอกผิด –
หกสิบค่าผิดแจ้งว่ากรอกผิด –
(ไม่กรอก)ค่าผิดแจ้งว่ากรอกผิด –

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

https://gemini.google.com/gems/

ตั้งค่า 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 ให้ใช้คำว่า ใส่อะไร, ได้อะไร, ค่าตรงเส้นแบ่ง, ค่าผิด แทน
- ห้ามใส่โค้ด ห้ามใส่ตัวอย่างภาษาโปรแกรม
- ให้กำลังใจสั้น ๆ ได้ แต่ไม่ต้องยาว

เข้า Gemini Gem: https://gemini.google.com/gems/

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 ต้องแสดง "ข้อมูลไม่ถูกต้อง"

เข้า Gemini Gem: https://gemini.google.com/gems/

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

ระบบคำนวณเกรด
ยังไม่ได้ลอง
–
รหัสคะแนนต้องได้ได้จริงคำตอบที่คาดหวังผลระบบตามข้อกำหนดลบ
ยังไม่มี test case เริ่มจากค่าปกติก่อน

บั๊กที่จับได้ 0 / 3

นับว่าจับบั๊กได้เมื่อระบบ “ผิดข้อกำหนด” และผู้เรียนคาดหวังคำตอบถูกต้อง · การปฏิเสธข้อมูลผิดได้ถูกต้องคือ “ตรงข้อกำหนด”

ยังไม่พบ
ยังไม่พบ
ยังไม่พบ

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

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

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

  • ชื่อ-นามสกุล ต้องกรอก
  • อีเมล ต้องมีรูปแบบถูกต้อง เช่น name@sut.ac.th
  • เบอร์มือถือ ใช้เลข 0–9 จำนวน 10 หลัก ขึ้นต้นด้วย 06, 08 หรือ 09 ไม่ใส่ขีด เว้นวรรคภายใน หรือ +66 (ละช่องว่างหัวท้ายได้)
  • กรอกถูกครบทุกช่อง ต้องแสดง “ลงทะเบียนสำเร็จ” ถ้าผิดช่องใดช่องหนึ่ง ต้อง “แจ้งให้กรอกใหม่”

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

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

Prompt สำหรับ Workshop 2

ช่วยสร้าง test case ให้ระบบนี้
- ชื่อ-นามสกุล ต้องกรอก
- อีเมล ต้องมีรูปแบบถูกต้อง เช่น name@sut.ac.th
- เบอร์มือถือ ใช้เลข 0–9 จำนวน 10 หลัก ขึ้นต้นด้วย 06, 08 หรือ 09 ไม่ใส่ขีด เว้นวรรคภายใน หรือ +66 (ละช่องว่างหัวท้ายได้)
- กรอกถูกครบทุกช่อง ต้องแสดง "ลงทะเบียนสำเร็จ" ถ้าผิดช่องใดช่องหนึ่ง ต้อง "แจ้งให้กรอกใหม่"

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

เข้า Gemini Gem: https://gemini.google.com/gems/

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

อ่านผลทดสอบฟอร์มอย่างไร

เบอร์สั้นหรือยาวเกินไปควรถูกปฏิเสธ ถ้าระบบปฏิเสธถูกต้องจะแสดงว่า “ตรงข้อกำหนด” ไม่ได้แปลว่าเบอร์นั้นถูกต้อง ส่วนการจับบั๊กต้องพบว่าระบบรับข้อมูลที่ควรปฏิเสธ และเลือกผลที่คาดหวังได้ถูกต้องด้วย

ใช้ข้อมูลสมมติในการฝึก ไม่ต้องกรอกเบอร์จริง แบบฝึกหัดตรวจรูปแบบเท่านั้น ไม่ยืนยันว่าเบอร์มีผู้ใช้งานจริง

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

บั๊กที่จับได้ 0 / 3

นับว่าจับบั๊กได้เมื่อระบบ “ผิดข้อกำหนด” และผู้เรียนคาดหวังคำตอบถูกต้อง · การปฏิเสธข้อมูลผิดได้ถูกต้องคือ “ตรงข้อกำหนด”

ยังไม่พบ
ยังไม่พบ
ยังไม่พบ

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

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

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

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

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

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

เข้า Gemini Gem: https://gemini.google.com/gems/

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

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

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

1. ใส่ ช้า 0 วัน (คืนตรงเวลา) AI บอกว่าต้องได้ 0 บาท
2. ใส่ ช้า 1 วัน AI บอกว่าต้องได้ 5 บาท
3. ใส่ ช้า 20 วัน AI บอกว่าต้องได้ 100 บาท
4. ใส่ ช้า 21 วัน AI บอกว่าต้องได้ 105 บาท
5. ใส่ ช้า -3 วัน AI บอกว่าต้องได้ 0 บาท
6. ใส่ พิมพ์ว่า “สองวัน” AI บอกว่าต้องได้ ข้อมูลไม่ถูกต้อง

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

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

บั๊กที่จับได้ 0 / 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 บาท

เข้า Gemini Gem: https://gemini.google.com/gems/

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

ระบบเบิกค่าเดินทาง
ยังไม่ได้ลอง
–
บาท
รหัสจำนวนวันประเภทต้องได้ได้จริงคำตอบที่คาดหวังผลระบบตามข้อกำหนดลบ
ยังไม่มี test case เริ่มจากค่าปกติก่อน

บั๊กที่จับได้ 0 / 3

นับว่าจับบั๊กได้เมื่อระบบ “ผิดข้อกำหนด” และผู้เรียนคาดหวังคำตอบถูกต้อง · การปฏิเสธข้อมูลผิดได้ถูกต้องคือ “ตรงข้อกำหนด”

ยังไม่พบ
ยังไม่พบ
ยังไม่พบ