AnonymizedEngineering Highlight

QA Automation Tool

這是一套提供 QA 團隊測試 AI & AR Web Platform 的自動化驗證工具。平台透過可配置的測試流程,驗證可嵌入式 Web SDK 的 API 行為、UI 狀態,以及最終產生的 AR 渲染結果。

我負責這個專案的需求溝通、測試流程設計、架構規劃、功能實作、程式重構、文件撰寫及後續版本迭代。

Technical Challenges

1. 端對端測試

這個專案的主要目標,是驗證使用者完成完整操作流程後所產生的最終 AR 結果,而不只是測試單一 API 或 UI 元件。

我使用 Puppeteer 自動開啟瀏覽器,依序完成 SDK 初始化、測試資料輸入、功能操作及結果輸出等流程。測試過程也會驗證圖片不符合規範時,系統是否正確顯示對應的錯誤狀態。

完成操作後,程式會儲存最終的 AR 渲染結果,供後續自動比對或人工確認。測試可使用 Headless 模式執行,因此能整合至 Jenkins,在沒有圖形介面的 CI 環境中自動完成驗證流程。

2. 可配置機制

為了讓 QA 團隊能在不修改程式碼的情況下建立不同測試情境,我將測試輸入整理為設定檔,以及固定結構的輸入與輸出資料夾。

設定檔包含測試資料、Web SDK 版本、初始化參數及測試流程所需的其他選項。QA 可以透過調整設定檔,切換不同版本或參數組合,並重複執行相同的驗證流程。

這種設計也讓後續系統或 CI 流程能以統一的資料格式啟動測試,降低測試腳本與特定案例高度耦合的問題。

3. 特定幀驗證

部分 AR 功能需要以影片作為輸入,並驗證特定時間點的渲染結果。然而,瀏覽器中的影片播放會受到解碼速度、事件觸發時機及執行環境效能影響,僅依賴 JavaScript 控制播放進度,無法保證每次都取得完全相同的影格。

為了解決這個問題,專案引入 FFmpeg,在 Node.js Server 端預先處理輸入影片,將測試所需的指定影格轉換成可穩定使用的輸入資料。

Web SDK 也配合自動化測試需求加入相應的處理流程,使每次測試都能使用相同的畫面內容進行渲染,避免因影片播放時序差異造成測試結果不一致。

我的貢獻

我負責這個專案從需求討論、架構設計到正式實作的主要開發工作,並持續進行程式重構、測試流程調整與操作文件維護。

這套平台將原本難以穩定重現的 AR 渲染流程轉換為可自動執行的測試案例,讓 QA 團隊能以一致的輸入條件驗證不同 Web SDK 版本,並比較版本更新前後的渲染差異。

透過 Puppeteer、Jenkins 與可配置的測試機制,團隊也能重複執行相同案例,降低人工操作差異,並在版本迭代過程中更早發現 API、UI 流程或 AR 渲染結果的異常。