Doppio Tech OTP Test Automation Framework

Doppio_Toasty-EDlT0R

Automation Test

March 24, 2026

Table of Content

ว่ากันด้วยเรื่องของ Test Automation กับการ test อะไรก็ตามที่ต้องใช้ OTP ส่วนใหญ่คนที่ทำ test automation น่าจะต้องเคยมีจุดที่ปวดหัวกับ OTP ไม่มากก็น้อย เพราะว่า มันเป็นส่วนที่ต้อง interact ระหว่าง test automation ที่เราเขียน กับ SMS ที่ได้ข้อมูลมาจาก sim card ของค่ายโทรศัพท์มือถือ เท่าที่ดูๆ Solution ที่มีคนแนะนำใน internet ทั่วๆไปก็จะมีประมาณนี้

1. ให้ Dev ในทีมช่วย Fix ค่า OTP ให้ใน code เลย คือประมาณว่าถ้าใส่ 1234 คือให้ผ่านนะ อะไรแบบนี้ วิธีนี้ ข้อดีคือ ง่าย (ถ้าสามารถคุยกับ Dev ให้ช่วยทำได้) ส่วนข้อเสียคือ 1. ยาก (ถ้าไม่สามารถคุยกับ Dev ให้ช่วยทำได้) 2. ต้องมีการแก้ code ทำให้ code ที่เรา test ไม่ใช่เวอร์ชั่นที่จะเอาขึ้น production เป๊ะๆ 3. ความเสี่ยงในการเอา code test fix OTP นี้ขึ้น production โดยไม่ได้ตั้งใจ

2. ให้ Dev ช่วย provide API ให้ โดยจะเป็น API ที่เราเรียกเพื่อส่ง parameter แล้วขอ OTP ที่ทาง product generate ส่งไป SMS นั่นแหล่ะ วิธีนี้ ข้อดีคือ ไม่ต้องแก้ไขตัว product under test ดังนั้นจะเป็นการ test ที่เสมือนจริง ข้อเสียคือ ต้องพึ่งพา Dev ที่จะ provide API ตัวนี้ให้ คือถ้าเค้าไม่ทำให้ก็จ๋อย ทำไม่ได้จ้า

3. ท่าอ้อมโลก แต่ก็ทำได้ถ้าจะทำ คือให้มี automation script 2 scripts แล้วให้ script แรกรัน test ไป พอถึงจุดที่เป็นการขอและรอ OTP ก็ไปเรียก อีก script (เป็น Appium ก็ได้) ให้ control มือถือเครื่องนึงที่มี sim card อยู่ แล้วให้ไปเปิด message box อ่าน OTP มา แล้วให้ script นี้ส่ง OTP ไปให้ script แรกใช้กรอกข้อมูลแล้วไปต่อ ข้อดีคือ ก็ทำได้ ไม่ต้องการความช่วยเหลือจากใคร ข้อเสีย คือ ทำยาก และโอกาสเจอ flaky test สูงมากเพราะ script มีโอกาสตายได้จากหลายๆส่วน ถ้าสะดุดที่นึงไม่ว่าจะจาก script 1 หรือ 2 ข้อนั้นทั้งข้อก็จะ fail ไปเลย และด้วยความเป็น Appium มันจะทำให้เทสรันนานมาก กว่าจะรัน case OTP ได้แต่ละ case จะใช้เวลานานนน น หนูล้านตัว

พอมีโจทย์แบบนี้ Doppio ทีมก็เลยสนุก ช่วยกันคิด Framework ขึ้นมาอันนึง ซึ่งน่าจะเป็นตัวเลือกที่ 4 และน่าจะเป็น solution ที่ใช้ได้สำหรับหลายๆคนขึ้นมา

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

สิ่งที่ต้องมี/เตรียม

1. โทรศัพท์มือถือหนึ่งเครื่องใส่ sim card ไว้ สมมติในตัวอย่างนี้ ใส่ sim เบอร์ 081–1111111 ไว้ และโทรศัพท์เครื่องนั้น install Doppio OTP application ไว้

2. API server ซึ่งมี Doppio OTP api รันอยู่

คำอธิบายสั้นๆของ tool สองตัวนี้

Doppio OTP mobile app คือ App ง่ายๆ ที่เราเขียนให้มันดัก SMSจากโทรศัพท์แล้วเอา content ที่ได้ไป post ข้อมูลเข้า api server

Doppio OTP api server คือ service ที่เราเขียนขึ้นเพื่อรับ Post จาก mobile app แล้วเอา data ที่ได้ไปเก็บใน DB และสามารถให้ automate script ยิง api มา Get ค่านั้นได้ โดย parameter เบื้องต้นคือ 1. เบอร์โทรศัพท์ 2. SMS sender (ในคลิปตัวอย่างคือ Shopee) 3. Date/Time (from-to) ใส่เป็น range เพื่อช่วยหา SMS ที่เรา target

มาไล่ step การทำงานกัน

Step (1) ตัว automate script ของเราไปใส่เบอร์โทรในช่องเบอร์โทรศัพท์ของ product under test เพื่อขอ OTP กด submit

Step (2) ตัว web/product under test ก็จะไปทำงานของมัน สุดท้ายก็จะมีการส่ง OTP ผ่านระบบโทรศัพท์มือถือมาที่ตัวโทรศัพท์ที่เราเตรียมไว้

Step (3) Doppio OTP app ที่รันไว้เป็น background บนโทรศัพท์เครื่องนั้นจะดักเจอ SMS ที่วิ่งเข้ามาแล้วเอาข้อมูลใน sms พร้อมทั้ง sender ส่ง Post request ไปที่ Doppio OTP api server ซึ่งข้อมูลจะถูกเอาไปเก็บไว้ใน Database

Step (4) ตัว automate script หลังจาก submit เบอร์โทรศัพท์ไปใน Step (1) ก็วนหลูปคอย Get OTP information จาก API server ด้วย parameter ต่างๆตามที่บอกไว้ด้านบน

Step (5) พอเจอข้อมูล OTP ของตัวเองก็เอารหัส OTP มากรอกที่ Product under test แล้วก็ไหล flow ต่อไปตาม script ได้ เย่

จะเห็นว่าด้วย Framework นี้ไม่ใช่แค่ test OTP แต่ใช้ test SMS feature ได้หมดเลย เช่น SMS ที่ส่งเพื่อ confirm การสั่งซื้อ การจ่ายตังค์ อะไรพวกนี้

ตัว solution นี้ เหมือนจะยุ่งยาก ต้องมีการเขียนทั้ง mobile app และ api server แต่มันเป็น solution ที่ทำแล้วจบ ตัว automate script ที่ใช้ solution นี้ จะทำ test ได้เสมือนจริงเพราะไม่มีการไปแตะ ไปแก้ code ของ product under test และเป็น solution ที่ stable และเร็ว ไม่ต้องไปสร้าง dependency กับ appium script อีกหนึ่งตัว ส่วนปัญหาที่ต้อง implement ตัว app กับ api server ก็ไม่ต้องห่วง เดี๋ยวแจก Doppio OTP app ให้ใช้จ้า ซึ่งจะมาต่อกับ api server ที่เราตั้งไว้ให้ใช้ได้โดยอัตโนมัติ ขอเวลาทำตัว app กับ api ให้พร้อม support คนใช้หลากหลายอีกนิส แล้วเดี๋ยวแจกให้เอาไปใช้ได้เน้อ ไปรอของกันได้ที่ page ของ Doppio Tech ได้นะครับ ไว้จะไปประกาศแจกที่ช่องทางนั้นละกัน

Related Blog

Other

QA career — Soft Skill กับ Attitude นั้นสำคัญไฉน

จากประสบการณ์การทำงานมา 20 ปีของพี่ (พูดแล้วก็รู้สึกแก่ 😅) ทำงาน QA มาตั้งแต่เรียนจบเป็น Junior ตัวกระจ๊อย จนมาทำงานในบริษัทยักษ์ใหญ่ สร้างทีม QA ร้อยกว่าคน จนสร้างบริษัทที่มี QA ร่วม 200 คน สิ่งที่สังเกตุเห็นมาตลอดและแอบเป็นสิ่งน่าเศร้าคือ ไม่ค่อยมีใครสอน หรือ พูดถึงความสำคัญของ Attitude หรือ Soft skill ที่จำเป็นสำหรับสายงานนี้ (จริงๆคือไม่ค่อยเห็นการพูดถึงเรื่องพวกนี้ในงาน Tech ทั้งหมดด้วยแหล่ะ) ทั้งๆที่มันเป็นสิ่งสำคัญมากนะ เริ่มตั้งแต่ทำให้คนๆนึงได้งาน ถัดมามันเป็น skill ที่ทำให้คนๆนั้นอยู่รอดกับการทำงานในช่วงแรก และในที่สุดมีส่วนสำคัญในการแยกความแตกต่างระหว่าง QA ธรรมดาที่เดินไปถึงจุดตัน (ถึงแม้จะมี technical skill ที่ดีเยี่ยมก็ตาม) กับ QA ที่เติบโตไปเรื่อยๆจนเป็น A player ใน market ทุกวันนี้ส่วนตัวพี่เอง แทบไม่ได้สอน Technical skill ให้น้องๆด้วยตัวเองละนะเพราะมีคนช่วยสอนเยอะหล่ะ แต่จะใช้เวลาส่วนใหญ่ในการค่อยๆสอน Soft Skill…

QA

QA คนไหนมี Hardskill ดีแล้ว อย่าลืมฝึก Softskill ไว้ด้วยนะ #doppiotech #สายเทค #softwaretester

QA เก่งแค่ Hard Skill พอไหม? ทำไม Soft Skill ถึงเป็นอาวุธลับที่ทำให้คุณกลายเป็น "Star" ในทีม ในคอมมูนิตี้ของคนทำงานสายเทคและ QA มักจะมีคำถามยอดฮิตว่า "ถ้าอยากเก่งขึ้นต้องเรียนรู้อะไร?" หรือ "อยากย้ายสายต้องฝึกสกิลไหน?" ซึ่งคำตอบส่วนใหญ่มักจะพุ่งเป้าไปที่ Hard Skill เช่น การทำ Automation, การเรียนรู้เครื่องมือใหม่ๆ หรือเทคนิคการเขียน Test Case แต่ในมุมมองของผู้สัมภาษณ์งานและหัวหน้าทีม ความจริงที่น่าสนใจคือ มีผู้สมัครจำนวนมากที่ไปเรียนรู้ทักษะทางเทคนิคมาสารพัด แต่กลับไม่มีความโดดเด่นเพียงพอที่ทำให้บริษัทรู้สึกว่า "ต้องรับคนนี้เข้าทำงานให้ได้" Hard Skill คือพื้นฐาน แต่ความเก๋าอยู่ที่ "การจัดการ" สำหรับ QA ที่มีประสบการณ์ 4-5 ปี การเขียน Test Case ให้ดีเป็นเรื่องที่ควรทำได้อยู่แล้ว แต่ความแตกต่างระหว่าง Test Case ที่สมบูรณ์แบบ (Perfect) กับเกือบสมบูรณ์แบบนั้นไม่ได้สร้างความแตกต่างให้ตัวคุณดู "เฉิดฉาย" ในสายตาหัวหน้าเท่ากับ "สกิลในการจัดการ"…

Automation Test

Full Stack Automation Engineer @ Doppio

สวัสดีครับ หลายคนอาจจะเคยดูคลิปการสอน Automation ของผมใน Youtube channel ของ Doppio tech ไปบ้างแล้ว (อย่าลืมกดติดตาม และ กด Subscribe ให้ด้วยน้า) สำหรับวันนี้เลยอยากจะมาเล่าเรื่องหน้าที่และความรับผิดชอบของ Full stack automation engineer ที่ Doppio เพื่อแชร์ประสบการณ์ให้หลายๆ คนที่กำลังเริ่มศึกษาหรือมองหางานด้าน Automation test engineer ได้รู้จักกับงานในสายนี้มากขึ้น รวมทั้งรู้จักกับ Doppio มากขึ้นด้วย Full stack automation engineer คืออะไร ? หลายคนอาจจะเคยได้ยินงานในลักษณะตำแหน่งที่เรียกว่า QA automation enginner / QA automation / Automation tester แต่พอมาได้ยินคำว่า Full stack automation engineer ที่จั่วหัวในบทความนี้ ก็เกิดความสงสัยว่า มันต่างกันยังไง…