ป้ายกำกับ: Ready

Smoke Test: การทดสอบที่ช่วย “ดับไฟ” ก่อนจะลุกลามSmoke Test: การทดสอบที่ช่วย “ดับไฟ” ก่อนจะลุกลาม

ในการพัฒนาซอฟต์แวร์ หลายคนอาจเคยได้ยินคำว่า “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 ใหม่ เข้าสู่ระบบ โดยมีลำดับขั้นตอนดังนี้

  1. Developer ส่ง Build ใหม่ให้ QA
  2. QA ทำการรัน Smoke Test ( ชุดทดสอบขนาดเล็ก )
  3. ถ้าผ่าน: ดำเนินการทดสอบขั้นต่อไป ( เช่น Regression Test, Functional Test )
  4. ถ้าไม่ผ่าน: ส่ง 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 ) คือการลงทุนที่คุ้มค่าที่สุดอย่างหนึ่งครับ


อ่านเพิ่มเติม