← 所有文章

FIELD NOTES / 維護與故障排查

回歸測試如何涵蓋正常邊界與中斷恢復

維護與故障排查作者:站長預估 5 分鐘閱讀

依變更影響選擇正常、門檻與中斷恢復案例,保存可重跑的回歸證據。

本文目錄

從這次改動的影響範圍選案例

修改一個逾時值後,原故障不見了,仍要確認其他情境沒有被破壞。回歸測試就是在變更後重查既有行為,案例應從需求與依賴關係選擇,不是隨便按幾個常用按鈕就結束。先列出改了什麼、誰讀取它、誰依賴它的結果。

以一般通訊讀取為例,改動可能影響成功回應、逾時判定、重試、資料品質與畫面警報。把直接修改與間接影響分開記,再對應既有案例。若共用函式服務多個站點,不能只測最先報錯的那一站。

準備已知版本、設定、測試資料與預期結果,確保前後比較同口徑。正常行為若因新需求而改變,先更新需求與驗收準則,再改期望值;不要看到新結果就自動把它存成正確答案。

本文示例不指定PLC指令,測試在核准的模擬或隔離環境進行。軟體測試、工程軟體編譯及實機連線是不同證據層次;本文方法不能代替任何特定機型的編譯或現場驗收。

正常路徑也要確認資料正確

預期值最好由獨立算式或已核准資料產生,不直接複製被測程式的輸出。兩套檢查若共用同一錯誤轉換函式,可能一起算錯卻互相一致;驗收依據的獨立性需要說明。

第一組先測正常請求、正確回應與完整完成。不要只檢查完成旗標,還核對數值、長度、站點、命令識別及品質。若舊資料被當成本次成功回應,畫面看似正常,實際上資料新鮮度已退步。

選至少一筆能辨識字序與倍率的資料,而不是全部填零。假設本例顯示值由整數253乘零點一得到25.3,預期結果須同時包含原始整數與工程值。此數字只是一筆資料案例,並不表示全部設備小數都用相同倍率。

測多次連續請求時,確認每次完成只對應自己的資料。加入不同站點或不同點位,避免共用緩衝造成交錯。結果要能以序號或其他適當識別追溯,單看最後畫面值不足以發現中間某一筆被覆蓋。

正常驗收也含執行成本。若正確但更新間隔從一秒變成十秒,仍可能違反要求。保存代表性延遲與請求負載,不能為了讓案例通過而把測試資料量縮到遠低於實際需求。

邊界要測等於門檻的那一刻

第二組從長度、範圍及時間邊界挑選案例。例如允許數量一至十六,就測一、十六及被禁止的零、十七,預期應分別接受或明確拒絕,不發出越界存取。實際上限由接口文件決定,本例十六只是說明選案方式。

時間比較需先定義規則。若需求寫經過時間大於或等於一千毫秒且尚未接受有效回應才逾時,則九百九十九、一千與一千零一毫秒都是重要案例。回應與逾時計時同時被看見時,優先次序也應明確,不能任由掃描順序偶然決定。

設備與測試器都有時間粒度。十毫秒掃描的實際系統不一定能精確注入九百九十九毫秒;可在可控的程式層測比較規則,再在實機層按可量測公差測整體時序。兩層結果分開記,不假裝實機具有未證實的精度。

再測空資料、極值與品質無效等適用邊界。無效品質不應被當成有效零值,超出表示範圍也不應悄悄截斷。若需求對這些情況沒有定義,先列設計問題,不能由測試人員臨時替正式系統發明行為。

完成這組應能說清楚各邊界的輸入、期待與實際結果。只記「極限測試通過」而沒有門檻值與版本,下一次修改時就無法重跑。

中斷前後要看狀態與未完成工作

第三組在等待回應時中斷通訊,再恢復,觀察品質、逾時、佇列及重新連線狀態。預期結果依需求先定:舊值可保留顯示但要標示失效,恢復後取得新資料才回到相應有效狀態。不能一連上就把快取當新值。

再考慮回應晚到、重複回應與停止途中恢復。晚到資料必須能與原請求關聯,不能填入下一次命令的緩衝。若協定或驅動不提供識別,系統需要適合該平台的處理策略,本文不以通用變數名稱冒充已實作方案。

涉及寫入或動作命令時,通訊中斷可能使結果未知:設備已執行,但確認沒回來。回歸案例應檢查如何核對狀態及避免不受控重送,不能把讀取的自動重試規則原封不動套到動作命令。

重啟則另外測,因為它可能清掉記憶體或保留部分步驟,與單純拔除連線不同。確認初始化、未完成命令及第一筆資料處理符合設計。需要實體設備才能確認的部分標記待實機,不用模擬成功取代。

測試結束後檢查配置與測試資料已復原,保留此次新增案例,納入後續變更的測試集。NASA測試計畫更新指引強調變更後更新受影響案例,本文用此原則建立可持續重跑的清單。

練習與常見問題

練習:只修改顯示倍率,是否仍要測斷線?先做影響分析。若倍率與品質顯示共用轉換路徑,需確認無效資料不被新倍率處理成正常數值;若能證明互不影響,可依專案規則記錄選案理由,而非一律全部重測或一律省略。

完成後應有需求到案例的對照、實際版本、原始結果、缺陷及未測項。失敗時先分清產品問題、測試器問題與預期規則錯誤,保留第一筆失敗資料,再安排修正與重測。

問:修好的案例重跑一次就夠嗎?答:還要測受影響的既有功能與恢復路徑。

問:回歸一定每次全測嗎?答:依影響及風險選案並記理由,必要的安全與驗收要求不能省略。

問:模擬通過算實機通過嗎?答:不算,涵蓋層次與限制要分開。

問:失敗案例修好後要留嗎?答:留下可重跑版本,防止相同問題再次出現。

參考:NASA Software Engineering Handbook SWE-071:依變更更新測試計畫、程序及受影響的回歸案例。

延伸閱讀