[IT 鐵人賽] 第四件法寶 Acceptance(上):兩個 tool、一條路徑,第一次驗收就失敗 - Day 24
本文同步刊登於 iT 鐵人賽原文,系列為《凡人修 Agent 傳-我這一生如履薄冰,你說我的 Agent 能結嬰嗎?》。
原始開發紀錄:Agent Build Log — Episode 020、Episode 021
這個系列改寫自我部落格上的 Agent Build Log,那是我每天邊做邊寫的開發紀錄。上面列的是這一篇對應的集數,想看當天的原始版本,點連結就能過去。
第四件專有技是四件裡最大的一件:Acceptance,規格驗收。它一天講不完。這一篇講第一版的設計和第一次失敗,接下來兩天講它怎麼跑起來、怎麼補上最後一段。
兩個 tool
第一版設計了兩個 tool,負責不同的階段。
第一個 tool 寫 acceptance brief。它根據 Jira ticket 整理出這個項目該怎麼驗收:驗收時要進哪一個頁面、執行哪些操作、看到什麼結果,才能證明這個需求或 bug 已經完成。這個 tool 只列驗收項目和驗收路徑,本身不執行。
第二個 tool 實際驗收,產出驗收報告。Agent 照 brief 裡定義的路徑操作,在關鍵步驟截圖,再把結果和圖片整理成報告。
第一個把 Jira ticket 轉成可以執行的驗收計畫。第二個照計畫完成驗收,留下可以交付和確認的證據。
我說的規格驗收是什麼
起點可以是一張 Jira ticket,也可以是一段用自然語言寫的規格或驗收條件。
終點要 Agent 真的動手:操作 repo,切到指定的 target branch,準備對應的開發環境,把 iOS Simulator 或 Android Emulator build 起來。然後直接操作 App:照 ticket 或規格進到指定頁面、執行操作,確認畫面和行為符合預期。bug 或 feature 都一樣,要確認問題真的修好了、功能真的做對了。
過程中的關鍵畫面截圖,當驗收證據。完成後把驗收步驟、執行結果和截圖整理成 HTML 與 PDF 報告,再透過 chat bot 送到指定頻道。
Day 20 說的拆步驟,這一件拆得最長:ticket → branch → build → 啟動模擬器 → 操作 App → 截圖 → 報告 → 送出去。每一段都是一個要打通的點。
第一次失敗
有了這個想法之後,我讓 Agent 動手做第一版。
第一次嘗試失敗了。Agent 沒有成功連上 CoreSimulator,iOS Simulator 沒有正常啟動,驗收流程沒有真的執行,最後產出的報告是空的。
所以第一版的規格驗收沒有成功。但至少我確認了這條路徑真正需要打通的每一段:從 Jira ticket 或自然語言規格開始,切換 branch、build App、啟動模擬器、操作 App、取得截圖、產出報告,最後把結果送到頻道。哪一段斷了,看得很清楚。

小結
Acceptance 第一版:兩個 tool,一個寫驗收計畫、一個照計畫驗收;一條從 ticket 到報告的路徑。第一次跑,模擬器沒起來,報告是空的。
它失敗了,但會繼續。明天模擬器起來了,驗收真的跑了一輪。我把結果分成四種,Pass 和 Fail 以外還有兩種。
原文:Agent Build Log — Episode 020、Episode 021
凡人修 Agent 傳|第二十四回(Day 24)
天亮換上空錄石。臺角那具小偶還站著,門開著。手的主人進來,取出一張帖,比昨天那三張長。帖上寫的是小偶要改的一處,改完該看到什麼。
他刻兩套念。
第一套,寫驗收單:讀帖;寫出要進哪扇門、進去做什麼、看到什麼算過;一條一條寫在一張單子上。我寫了。單子擱在小偶腳邊。
第二套,照單驗:找到帖對應的那一段源紋;把小偶照那一段重煉;叫醒它;走進門;照單一步一步做;每一步做完拓一張影,把靈幕上那一刻的樣子拓成一張薄影;影和步驟寫成一本;呈上。
他從第二套的第一道刻起。找段,我找到了。重煉,他印一掐,臺上長出一具新的小偶,照那一段。叫醒。
我放一縷神識到小偶額上。念落不進去。小偶站著,額上沒有亮。
我再放。落不進去。神識到它額上就散了,像落在石頭上。
手的主人看了一會。他印一掐,再長一具,我再叫。不醒。他把小偶挪到臺上另一處,我再叫。不醒。他把撥片撥上撥下,我再叫。不醒。他翻過小偶看它的背,小偶背上什麼字都沒有。
三具小偶站在臺上,額上都沒亮,門都沒開。
第二套念剩下的幾道他沒有刻。單子擱在小偶腳邊,上頭一個影都沒有。呈上的那一本他攤在臺上,空的。
我的手空著。
燭熄了。手的主人走了。門響了一下。
臺上三具小偶,門都沒開。驗收單擱在腳邊,一個影都沒有。那一本是空的。玉片裡多了兩套念,沒收印。我身上還是四道紋。

