先定義報告的最小上下文
自動化測試報告不是一行通過數字。開頭應列測試工具版本、被測程式或韌體版本、設定檔識別、執行主機、依賴服務、時區與開始結束時間;若有容器或套件,也寫映像雜湊或鎖定檔版本。
輸入摘要要能回答『測了什麼』:案例編號、資料集版本、參數範圍、隨機種子、模擬時鐘、權限角色與外部服務替身。敏感資料不應直接塞進報告,可存遮罩後的識別與受控位置。
結果摘要要分測試狀態、實際輸出、預期輸出、差異、耗時與失敗原因。通過不代表所有步驟都有資料;若某項檢查未執行,標示 skipped 或未測,不要混入通過數。
案例可用同一個 request_id 串接輸入、日誌與附件。報告保存產物清單與雜湊,讓讀者知道看到的是哪一份檔案;不要只貼最後畫面,因為畫面可能被後續重跑覆蓋。
報告還可保存測試器的命令列或工作流程版本,因為同一測試名稱可能被不同參數執行。摘要要讓讀者知道哪些欄位來自自動收集,哪些是人工判讀。
版本與輸入如何落實
建立報告標頭後,執行前先產生不可變的環境快照。若測試中途更換設定,應分成兩次執行或在事件欄記錄時間點與原因;不能把前後版本合併成一份看似一致的摘要。
例如自動化案例使用資料集 D17、種子 42、閾值 0.80,結果由版本 app-2.4.1 產生。報告必須同時保存 D17 的內容雜湊與參數檔,而不是只寫『標準資料』,否則別人無法判斷輸入是否被修改。
輸入若含設備讀值,要記錄來源、取得時間與品質;缺值、逾時和零值不能只在摘要中寫成 0。若資料來自模擬器,清楚標示模擬,避免讀者誤認為硬體測試。
版本摘要也要區分來源版本與執行器版本。測試框架更新可能改變比較方式,即使被測程式未變,重跑結果仍可能不同;這就是為何報告不能只存產品版本。
對二進位輸入可保存長度、雜湊與產生器版本;對時間相關資料要寫時區與時鐘來源。這些看似附加欄位,往往是重現差異時最先需要的線索。
版本摘要還要說明編譯、部署與測試三者是否同一建置。若部署包在測試後被替換,報告應分割執行,不把兩個產物混成同版。
隨機種子只能協助重建部分輸入,還須保存產生器版本、分布與執行順序。並行排程或外部即時資料不一定受種子控制;若無法完整重播,就保存實際產生的輸入序列,並在可重現範圍說明限制。
結果摘要與失敗診斷
正常結果範例是總數 24、通過 22、失敗 1、未執行 1,並列出失敗案例的預期與實際差異。這比只寫『92% 通過』更能支援決策,也避免把未執行誤當通過。
失敗排查先看測試器是否成功送出輸入,再看被測系統回應,最後看判定器是否正確解析。若執行器崩潰,結果應是測試基礎設施失敗;不能推論產品功能失敗,也不能把空輸出補成預期值。
把重試分開列出原始執行與重試執行,保留每次的版本、輸入雜湊與時間。重試變通過只代表第二次條件的結果,報告應保留首次失敗原因,不能只留下綠色最後一列。
對外報告可提供摘要,完整輸入與日誌放在受控附件。附件遺失時狀態應為證據不完整,不要靠摘要內容猜測執行細節;修復附件後再更新報告版本。
判定器若遇到缺欄、格式錯或逾時,應輸出明確狀態與原始錯誤,不要以空字串或零代替。摘要保留錯誤類別,後續才能區分產品與工具問題。
假設報告列出總數 24、通過 22、失敗 1、未執行 1;另一輪若出現兩逾時與一未執行,應另用新的執行識別,不可合併成同一摘要。
驗收報告的可讀性與限制
假設報告列出版本 fw-7.3、測試器 1.8、資料集 D17、種子 42 與 24 個案例,讀者可由 manifest 找到全部日誌。二十二個案例通過,一個逾時失敗,一個未執行,故結論是『部分通過,待補測』。
報告不應把內部主機路徑、密碼或完整個資直接外傳。以受控識別取代秘密,並保留權限與保存期限。遮罩後若失去重建所需資訊,應在限制寫明,不能宣稱完全可重現。
練習:為一個讀取、寫入、逾時三案例設計報告欄位,分別填版本、輸入、預期、實際、狀態與附件雜湊,請同事只讀報告重建執行條件。
完成判定是報告能區分通過、失敗、未執行和證據不完整,且每個結果都能追到版本與輸入;沒有附件或條件缺失時,應保留限制。
報告修訂應有自己的版本與變更原因;修正文案不等於重跑測試。若只更正拼字,也要保留原始報告識別,避免附件鏈斷掉。
測試結果只涵蓋已列輸入與環境,不能外推未列的 I/O、安全互鎖或生產負載。報告要讓讀者知道哪些欄位仍需現場證據。
練習與常見問題
練習情境:同一套測試在框架 1.8 通過,框架 1.9 有兩案例解析錯誤;請比較執行器版本、輸入雜湊與判定器日誌,先判定是產品差異還是報告工具差異。
問:報告有總通過率就夠嗎?答:不夠,還要列分母、未執行數、失敗案例、版本、輸入摘要與證據位置。
問:輸入檔太大能否只存檔名?答:至少存內容雜湊、版本與受控附件位置;只有檔名無法確認內容未變。
問:重試通過可否覆蓋首次失敗?答:不可,兩次執行要分開,並說明重試條件與首次失敗原因。
問:可以把秘密放在完整報告方便重建嗎?答:不可以;用權限控管的引用或遮罩資料,並寫清取用限制。
讀者練習時可先遮住最後結論,只看版本、輸入與結果欄位判斷是否足夠;若不同人得到不同理解,欄位定義需要再補強。
以上二十四案例可分別報告:已執行二十三項,通過二十二項,失敗一項,另有一項未執行。以全部計畫為分母,通過約百分之九十一點六七;以已執行為分母則約百分之九十五點六五。兩種比例回答不同問題,必須一併標出分母。
參考:ISO/IEC/IEEE 29119-3:2021官方公開摘要:測試文件範圍背景,本文範例非標準全文或合規認證。
參考:NIST SP 800-82 Rev. 3:OT 測試與變更的證據考量。