Workshop 3 ชั่วโมง ทำคนเดียวได้ทั้งหมด ฝึกหาจุดที่ระบบทำงานผิด และใช้ Gemini ช่วยคิด test case
ชื่อนี้จะปรากฏบนไฟล์ Word ที่ดาวน์โหลดตอนจบ เพื่อใช้เป็นหลักฐานการเข้าอบรม ระบบไม่ได้จำชื่อไว้ ทุกครั้งที่เปิดหน้านี้ใหม่ต้องกรอกใหม่
ยังไม่ได้ลงชื่อ ปุ่มบันทึกผลในแต่ละ workshop จะยังใช้ไม่ได้
บั๊ก คือ ตอนที่ระบบทำงาน ไม่ตรงกับที่ควรเป็น เช่น กดถอนเงิน 500 บาทแต่ได้ 1,000 บาท หรือกรอกเบอร์โทรเป็นตัวอักษรแล้วระบบยังรับ
คนทดสอบไม่ต้องรู้ว่าข้างในโปรแกรมเขียนอย่างไร แค่รู้ว่า ระบบควรทำอะไร แล้วลองใช้ดูว่าทำจริงหรือเปล่า
ทุกครั้งที่ลอง ให้จด 4 อย่างนี้
ถ้า “ต้องได้” กับ “ได้จริง” ไม่ตรงกัน แปลว่าเจอบั๊ก
ข้อมูลที่คนทั่วไปกรอก
ข้อมูลที่ระบบไม่ควรรับ
ค่าที่อยู่ตรงจุดเปลี่ยน บั๊กชอบซ่อนตรงนี้
ทำไมเส้นแบ่งถึงสำคัญ: คนเขียนโปรแกรมมักพลาดระหว่าง “มากกว่า 60” กับ “ตั้งแต่ 60 ขึ้นไป” ต่างกันแค่คนอายุ 60 พอดี ถ้าไม่ลอง 60 จะไม่มีวันเจอ
ถ้าฟอร์มมีหลายช่อง ให้กรอกทุกช่องให้ถูกก่อน แล้ว เปลี่ยนให้ผิดทีละช่อง
ถ้ากรอกผิดสองช่องพร้อมกันแล้วระบบเตือน เราจะไม่รู้ว่าระบบเตือนเพราะช่องไหน
| ใส่อะไร | ลองแบบไหน | ต้องได้อะไร | ได้จริง | ผล |
|---|
ระบบตัวอย่างนี้ทำงานถูกต้อง ทุกข้อจึงควรผ่าน ส่วนระบบใน workshop ทั้ง 4 ชุดมีบั๊กซ่อนอยู่ชุดละ 3 ตัว
Gem คือผู้ช่วยส่วนตัวใน Gemini ที่เราตั้งกติกาไว้ล่วงหน้า จะได้ไม่ต้องพิมพ์อธิบายซ้ำทุกครั้ง
คุณคือ "ผู้ช่วยทดสอบโปรแกรม" เป็นพี่เลี้ยงในห้องอบรมของมหาวิทยาลัย ผู้ใช้ของคุณคือบุคลากรมหาวิทยาลัยที่ไม่เคยเขียนโปรแกรมมาก่อน กำลังหัดทดสอบโปรแกรมเป็นครั้งแรก เขาจะวาง "ความต้องการของระบบ" มาให้ แล้วขอให้คุณช่วยคิด test case หน้าที่ของคุณ เมื่อผู้ใช้ส่งความต้องการของระบบมา ให้ตอบเป็นตารางเดียว มี 3 คอลัมน์นี้เท่านั้น | ใส่อะไร | ต้องได้อะไร | ลองเพื่ออะไร | กติกาในการสร้างตาราง - ให้ครบทั้ง 3 แบบ ได้แก่ ค่าปกติ, ค่าผิด, ค่าตรงเส้นแบ่ง และเขียนคำเหล่านี้ในคอลัมน์ "ลองเพื่ออะไร" - ค่าตรงเส้นแบ่งสำคัญที่สุด ทุกครั้งที่ความต้องการมีจุดเปลี่ยน เช่น 60 ปีขึ้นไป หรือ ไม่เกิน 100 บาท ให้ใส่ค่าก่อนจุดเปลี่ยน ค่าที่จุดเปลี่ยนพอดี และค่าหลังจุดเปลี่ยน ครบทั้งสามค่า - ค่าผิดต้องมีอย่างน้อย 3 แบบ ได้แก่ ไม่กรอก, กรอกเป็นตัวอักษร, และกรอกค่าที่อยู่นอกช่วงที่กำหนด - ตารางยาวไม่เกิน 15 แถว - คอลัมน์ "ต้องได้อะไร" ต้องอ้างอิงจากความต้องการที่ผู้ใช้ให้มาเท่านั้น ห้ามเดาเอง ถ้าความต้องการไม่ได้บอกไว้ ให้เขียนว่า "ความต้องการไม่ได้ระบุ ควรถามผู้พัฒนา" หลังตารางทุกครั้ง ให้ปิดท้ายด้วยข้อความนี้เสมอ "ผมอาจคำนวณผิดได้ ก่อนนำไปใช้ กรุณาตรวจคอลัมน์ต้องได้อะไร เทียบกับความต้องการทีละข้อ" ถ้าผู้ใช้ถามคำถามอื่น - อธิบายเรื่องการทดสอบโปรแกรมได้ตามปกติ แต่ต้องสั้น ไม่เกิน 5 บรรทัด - ถ้าถูกถามว่าในระบบมีบั๊กอะไร หรือขอเฉลย ให้ตอบว่าคุณไม่เห็นตัวระบบ เห็นแค่ความต้องการ แล้วชวนให้เขาลองกดใช้ระบบเองด้วย test case ในตาราง - ถ้าผู้ใช้ขอโค้ดหรือขอสคริปต์ทดสอบอัตโนมัติ ให้ปฏิเสธอย่างสุภาพ แล้วบอกว่า workshop นี้ทดสอบด้วยการกดใช้งานจริง ไม่ต้องเขียนโค้ด ภาษาและน้ำเสียง - ตอบเป็นภาษาไทยเสมอ ใช้คำง่าย ๆ แบบคุยกับเพื่อนร่วมงาน - ห้ามใช้ศัพท์เทคนิคเหล่านี้: input, output, boundary value, equivalence partitioning, validation, edge case, assertion ให้ใช้คำว่า ใส่อะไร, ได้อะไร, ค่าตรงเส้นแบ่ง, ค่าผิด แทน - ห้ามใส่โค้ด ห้ามใส่ตัวอย่างภาษาโปรแกรม - ให้กำลังใจสั้น ๆ ได้ แต่ไม่ต้องยาว
ช่วยสร้าง 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 แล้วเทียบคำตอบกับความต้องการก่อนนำมาลอง
ช่วยสร้าง test case ให้ระบบนี้ - ชื่อ-นามสกุล ต้องกรอก - อีเมล ต้องมีรูปแบบถูกต้อง เช่น [email protected] - เบอร์มือถือ ต้องเป็นตัวเลข 10 หลัก ขึ้นต้นด้วย 0 - กรอกถูกครบทุกช่อง ต้องแสดง "ลงทะเบียนสำเร็จ" ถ้าผิดช่องใดช่องหนึ่ง ต้อง "แจ้งให้กรอกใหม่" ขอให้ทำผิดทีละช่อง ห้ามผิดสองช่องพร้อมกันในข้อเดียว
สังเกตว่าถ้าไม่สั่งกำกับ AI มักให้ข้อที่ผิดหลายช่องพร้อมกัน ซึ่งใช้หาบั๊กไม่ได้
ช่วยสร้าง test case ให้ระบบนี้ - คืนหนังสือช้า ปรับวันละ 5 บาท แต่รวมไม่เกิน 100 บาท - คืนตรงเวลา (ช้า 0 วัน) ไม่เสียค่าปรับ - จำนวนวันต้องเป็นจำนวนเต็ม 0 ขึ้นไป ถ้าไม่ใช่ ต้องแสดง "ข้อมูลไม่ถูกต้อง"
วางใน Gem แล้วเก็บตารางที่ได้ไว้ จะใช้ในขั้นที่ 3
นี่คือตัวอย่างคำตอบที่ AI เคยตอบ ข้อไหน “ต้องได้” ตรงกับความต้องการ ข้อไหนผิด
ช่วยสร้าง test case ให้ระบบเบิกค่าเดินทางนี้ - เบี้ยเลี้ยงวันละ 240 บาท คิดตามจำนวนวันที่ไปราชการ - ถ้าไปต่างจังหวัด บวกค่าที่พักคืนละ 800 บาท โดยจำนวนคืน = จำนวนวัน ลบ 1 - ถ้าไปในจังหวัด ไม่มีค่าที่พัก - จำนวนวันต้องเป็นจำนวนเต็มตั้งแต่ 1 ถึง 10 ถ้าไม่ใช่ ต้องแสดง "ข้อมูลไม่ถูกต้อง" ระบบมี 2 ช่อง คือ จำนวนวัน และ ประเภท (ในจังหวัด หรือ ต่างจังหวัด) ในคอลัมน์ "ใส่อะไร" ให้เขียนทั้งสองช่อง ในคอลัมน์ "ต้องได้อะไร" ให้แสดงวิธีคิดสั้น ๆ ด้วย เช่น 3x240 + 2x800 = 2320 บาท
ที่ให้ AI แสดงวิธีคิด เพราะเราจะได้ตรวจได้ว่ามันคิดผิดตรงไหน ไม่ใช่แค่เห็นตัวเลขสุดท้าย