ข้ามไปที่เนื้อหา
Clinford Jordano Valencia
โปรเจกต์ทั้งหมด
แพลตฟอร์ม

Saga เครื่องมือฉีดสถานะสำหรับการทดสอบ

การฉีดสถานะจากฝั่งเซิร์ฟเวอร์ ให้ QA และระบบอัตโนมัติข้ามไปยังขั้นตอนใดก็ได้ของโฟลว์ยืนยันตัวตนที่ยาว ลดเวลาเตรียมการทดสอบถดถอยจากสูงสุด 20 นาทีเหลือไม่ถึง 1 นาที

บทบาท
Senior Frontend Engineer
ช่วงเวลา
2025–ปัจจุบัน
เทคโนโลยี
TypeScript · Playwright · BFF · Test database

ปัญหา

หากต้องการตรวจบั๊กที่ขั้นที่ 5 ของโฟลว์ KYC คุณต้องกรอกข้อมูลส่วนตัวที่ถูกต้อง อัปโหลดเอกสาร และผ่านการตรวจ liveness ในขั้นที่ 1 ถึง 4 ก่อน ทุกครั้ง สำหรับทุก pull request และทุกรอบการทดสอบอัตโนมัติ

แนวทาง

Saga ทำให้ผู้ทดสอบหรือสคริปต์เปิดแอปได้ในสถานะที่ต้องการทันที

  1. สคริปต์ Playwright หรือวิศวกร QA โหลดหน้าเว็บพร้อมโทเค็นทดสอบที่ปลอดภัย เช่น ?state=step_4_ready
  2. ฟรอนต์เอนด์ตรวจพบโทเค็นตอน hydration และส่งต่อผ่านเฮดเดอร์ไปยัง BFF
  3. BFF ตรวจว่าเป็นสภาพแวดล้อมที่ไม่ใช่โปรดักชันอย่างเคร่งครัด แล้วเตรียมเซสชันของผู้ใช้ในฐานข้อมูลทดสอบ ขั้นที่ 1 ถึง 3 เสร็จแล้ว และตัวชี้อยู่ที่ขั้นที่ 4
  4. BFF ส่งโทเค็นเซสชันจริงกลับมา และ UI แสดงขั้นที่ 4 ทันที

เลือกฉีดสถานะจากเซิร์ฟเวอร์แทนการจำลอง localStorage ฝั่งไคลเอนต์ แอปสมัยใหม่ตรวจสอบเซสชันที่แบ็กเอนด์ การจำลองเฉพาะฝั่งไคลเอนต์จึงค่อย ๆ ห่างจากความจริง และทำให้ได้เทสต์ที่ผ่านที่นี่แต่ล้มเหลวในโปรดักชัน

ผลลัพธ์

เวลาเตรียมการทดสอบถดถอยลดจาก 10–20 นาทีต่อรอบเหลือไม่ถึงหนึ่งนาที เมื่อคิดจากการรัน pull request และชุดทดสอบอัตโนมัติหลายสิบรอบต่อสัปดาห์ เท่ากับได้เวลางานวิศวกรรมคืนมาหลายร้อยชั่วโมงต่อไตรมาส