จากการแบ่งปันใน course Full Stack Testing ที่ skooldio นั้น
มีคำถามเกี่ยวกับการทดสอบระบบงาน
ที่มีการส่ง และ กรอก OTP code ที่ได้รับผ่าน SMS
เราจะทดสอบอย่างไรดี เพื่อให้เกิดความเชื่อใจมากที่สุด
เป็นคำถามที่น่าสนใจมาก ๆ

ถ้าต้องการทดสอบแบบง่าย ๆ นั้น

เพียงพูดคุยและตกลงกับนักพัฒนา
ให้ทำการแสดง OTP code ให้รู้เลย ไม่ต้องเสียเวลาไปเปิดในมือถือก็จบแล้ว
เนื่องจากเราต้องการทดสอบว่า OTP code นั้น

  • Success
  • Fail
  • Expired

แต่ถ้าต้องการทดสอบแบบครบ loop การทำงาน คือ

  • ผู้ใช้งานทำการส่ง request มาขอ OTP code
  • ระบบทำการส่ง OTP code ผ่าน SMS ไปยังเบอร์มือถือของผู้ใช้งาน
  • ผู้ใช้งานเปิดดู OTP code ในมือถือ
  • ผู้ใช้งานนำ OTP code มากรอก และ submit เพื่อตรวจสอบในระบบ

โดยสามารถทดสอบแบบอัตโนมัติได้ด้วย
มาลองดูกันว่าทำอย่างไร ?

ขั้นตอนการทดสอบและระบบที่ต้องสร้างเพิ่มขึ้นมา เป็นดังนี้

ขั้นตอนที่ 1 ระบบทำการส่ง OTP code ยังเบอร์มือถือที่กำหนดไว้

โดยในทุก ๆ คนที่ทดสอบจะส่ง OTP code ไปยังเบอร์มือถือเดียวกัน
ตัวอย่างของข้อมูลเช่น

  • [reference code]-[OTP code]

ขั้นตอนที่ 2 ทำการสร้าง Mobile app ง่าย ๆ เพื่อทำการดักจับ SMS ที่ส่งมายังมือถือ

ทำการอ่านข้อมูล SMS
ทำการตรวจสอบรูแปแบบของ SMS ว่าถูกต้องหรือไม่
และทำการ split ข้อมูลออกมา

จากนั้นส่งข้อมูลของ reference code และ OTP code ผ่าน REST API ไปเก็บใน database
ตัวอย่างของ Mobile app ชื่อว่า SMS OTP Reader
ซึ่งลองพัฒนาด้วย Flutter และใช้งาน dependencies ต่าง ๆ เหล่านี้

ตัวอย่างหน้าจอของ App เป็นดังนี้ (ทำปุ่มเพื่อส่งข้อมูลไปยัง REST API สามารถเปลี่ยนเป็นอัตโมัติได้เลย)

ขั้นตอนที่ 3 ในฝั่งของการทดสอบระบบ web นั้น ให้ทำการดึงข้อมูล OTP code

ผ่าน REST API ด้วยการส่ง reference code มาด้วย
โดยทำการดึงแบบ interval ก็ได้ ทำไปเรื่อย ๆ จนกว่าจะได้ข้อมูล OTP code
แต่ให้กำหนดจำนวนครั้งในการดึงข้อมูลด้วย (max retry)
เพียงเท่านั้นก็จะได้ข้อมูล OTP code เพื่อทดสอบต่อไปได้แบบอัตโนมัติแล้ว

แต่สิ่งที่ควรคิดเสมอคือ สิ่งที่เราสร้างขึ้นมานั้น มันคุ้มค่าหรือไม่ ?

ลองใช้งานกันดูครับ