ในการพัฒนาซอฟต์แวร์ หลายคนอาจเคยได้ยินคำว่า “Smoke Test” ซึ่งเป็นหนึ่งในขั้นตอนที่สำคัญที่สุดของการทำ Software Testing บทความนี้จะสรุปให้เข้าใจง่าย ๆ ว่ามันคืออะไร ทำไปเพื่ออะไร และควรเริ่มทำตอนไหนครับ
Smoke Test คืออะไร ?
Smoke Test ( หรือ Build Verification Testing ) คือการทดสอบเบื้องต้นเพื่อยืนยันว่า “ฟังก์ชันหลักที่สำคัญที่สุด” ของซอฟต์แวร์ทำงานได้ถูกต้องหลังจากที่มีการ Deploy build ใหม่ลงใน Environment สำหรับทดสอบ
ที่มาของชื่อ: มาจากแวดวงวิศวกรรมฮาร์ดแวร์ เมื่อประกอบวงจรเสร็จแล้วลองเสียบปลั๊กดู ถ้า “ไม่มีควันพุ่งออกมา” ( No Smoke ) แสดงว่าผ่านด่านแรกและพร้อมสำหรับการทดสอบที่ละเอียดขึ้น
ทำไปเพื่ออะไร? ( Objectives )
เป้าหมายของ Smoke Test ไม่ใช่การหาบั๊กทุกจุดในระบบ แต่คือการ คัดกรอง ( Gatekeeping )
- ประหยัดเวลา: หากฟังก์ชันหลักพัง ( เช่น ล็อกอินไม่ได้ ) ทีม QA ไม่จำเป็นต้องเสียเวลาไปทดสอบฟังก์ชันย่อยอื่น ๆ
- หาข้อผิดพลาดระดับวิกฤต: ตรวจสอบว่า Build ที่ส่งมา “ใช้งานได้จริง” ( Stable enough to test )
- ลดความเสี่ยง: ป้องกันไม่ให้บั๊กที่ร้ายแรงหลุดไปถึงขั้นตอนการทดสอบที่ซับซ้อนกว่าเดิม
เมื่อไหร่ที่ควรทำ Smoke Test ?
ควรทำทุกครั้งที่มีการ เปลี่ยนแปลง Code หรือมีการ Deploy Build ใหม่ เข้าสู่ระบบ โดยมีลำดับขั้นตอนดังนี้
- Developer ส่ง Build ใหม่ให้ QA
- QA ทำการรัน Smoke Test ( ชุดทดสอบขนาดเล็ก )
- ถ้าผ่าน: ดำเนินการทดสอบขั้นต่อไป ( เช่น Regression Test, Functional Test )
- ถ้าไม่ผ่าน: ส่ง Build คืนให้ Developer แก้ไขทันที ( Stop Testing )
ตัวอย่างการทำ Smoke Test ( Scenario )
สมมติว่าคุณกำลังทดสอบแอปพลิเคชัน E-commerce
| ลำดับ | รายการทดสอบ | ผลลัพธ์ที่คาดหวัง |
| 1 | การเปิดแอปพลิเคชัน | แอปฯ ต้องเปิดได้ ไม่ค้างหรือ Crash ตั้งแต่หน้าแรก |
| 2 | การเข้าสู่ระบบ ( Login ) | ผู้ใช้สามารถ Login เข้าสู่ระบบได้สำเร็จ |
| 3 | การค้นหาสินค้า | พิมพ์ชื่อสินค้าแล้วต้องมีรายการปรากฏขึ้นมา |
| 4 | การเพิ่มสินค้าลงตะกร้า | สินค้าต้องเข้าไปอยู่ในตะกร้าได้ |
| 5 | ระบบชำระเงิน | สามารถเข้าถึงหน้าชำระเงินได้ ( ไม่ต้องเช็คทุกช่องทาง ) |
ข้อดีและข้อจำกัด
ข้อดี
- ให้ผลลัพธ์ที่รวดเร็ว ( Quick Feedback )
- ช่วยลดภาระงานของทีม Testing
- ทำได้ง่าย ( มักจะทำเป็น Automation เพื่อความรวดเร็ว )
ข้อจำกัด
- ไม่ละเอียด: ไม่ครอบคลุมบั๊กเล็กน้อย หรือบั๊กที่ซ่อนอยู่ในฟังก์ชันรอง
- ไม่ใช่ตัวตัดสินคุณภาพทั้งหมด: แม้ Smoke Test จะผ่าน แต่ไม่ได้หมายความว่าซอฟต์แวร์นั้นพร้อมปล่อย ( Production Ready ) 100%
สรุป
Smoke Test เปรียบเสมือนการ “ตรวจสุขภาพเบื้องต้น” ของซอฟต์แวร์ เป็นด่านหน้าที่ช่วยให้ทีมพัฒนาและทีมทดสอบทำงานร่วมกันได้อย่างมีประสิทธิภาพ หากคุณต้องการลดเวลาแฝงในการทำงาน การมีชุดทดสอบ Smoke Test ที่ดี ( โดยเฉพาะที่เป็น Automation ) คือการลงทุนที่คุ้มค่าที่สุดอย่างหนึ่งครับ
อ่านเพิ่มเติม
