如何自動化測試 AI 開發的 WordPress 外掛
最近看到很多朋友都開始在用 AI 寫 WordPress 外掛,向他們請教在開發的過程中有沒有遇到什麼難題?大部分獲得的回應都是:AI 寫的東西不能百分之百信任,還是必須要人工手動測試。
在還沒有 AI 開發的年代,已經有一套非常成熟的測試框架,可以做到將每段程式碼中的每個函式或是方法,驗證其輸出的結果是否符合預期。有了 AI 之後更能快速地撰寫測試腳本,並且透過 AI 自動執行測試,這樣就能很快地知道每次的產出結果是否正確。
如果是開發 WordPress 外掛的話,要執行 AI 自動化測試需要準備以下項目:
- 需要在本機開發並確保本機環境已安裝 WP-CLI
- 使用 Composer 管理檔案載入與安裝相關測試套件
- 本機資料庫的存取權限,每次跑測試都會寫入測試資料在測試資料庫中
一、安裝 Skills
Skills 是一套提供給 AI 的輔助工具,與以往的 Prompt(提示詞)不同,它可以指定在什麼情況下要讓 AI 使用這個技能,一個 Skill 裡面包含了:觸發時機、參考文件與程式碼範例。
我設計了一個專為 WordPress 外掛開發測試用的 Skills。只要跟 AI 說:「請幫我初始化 WordPress 外掛開發配置」,系統就會自動安裝並設定撰寫測試所需的工具套件,並且整合 GitHub 的部署打包流程。
該 Skills 做的事:
- 偵測並自動擷取待測試外掛的相關資訊
- 使用 WP-CLI 來建立測試環境
- 安裝測試套件
- 建立並部署自動測試發布流程
二、撰寫測試腳本
在進行任何新功能的開發前,請 AI 先根據即將執行的功能來撰寫測試腳本,然後再開始實際進行開發,當功能開發完成後再請 AI 跑測試。
以操作資料庫的類別為例,通常會有寫入、讀取、修改、刪除的四個動作,透過自動化測試來驗證這四個動作,並驗證動作執行完成之後是否都有回傳預期的結果。
在請 AI 設計程式時,就要將每個函式執行完成後會回傳的結果明確地定義好。基本原則是不要在一個函式之中放太多任務,秉持著一個函式只做一件事情的原則。
其次是儘量請 AI 以物件導向的方式來進行設計,使用物件導向搭配命名空間,除了可以讓程式碼易於重複利用外,還可以避免命名衝突,更重要的是可以方便測試。
三、打包發佈
在實務上的建議做法是使用 Tag 增加版本號以及說明此次修改內容,再發布 Release 將外掛進行打包。當在本機開發完成並 git push 上去後,就會自動觸發 GitHub Action 進行測試,測試完之後會自動打包 Release,確保每個發布的版本都有通過測試且只保留必要的程式碼。
小結
開始將 AI 寫的內容導入測試並以方便測試的方式進行開發,在開發初期就能有效的組織檔案結構,避免之後發生難以維護的狀況。AI 寫測試的速度非常驚人,只要請 AI 遵循著方便測試的邏輯下去開發,就能大幅增加專案的穩定度。如果是想要長期維護的專案,請務必一定要導入自動化測試。