地址測試資料放進固定裝置之後,真正的挑戰才開始:命名方式會決定半年後有沒有人敢改它,來源會決定這份資料能不能留在版控裡。以下說明命名、可重現、隱私與邊界樣本四個面向,以及讓固定裝置活得久一點的組織方式。
固定裝置為什麼要按國家與場景命名?
名稱是固定裝置唯一的老師。當一筆樣本只叫「地址範例」時,後人無法判斷它為什麼存在、能不能改、改了會不會讓某個測試失去意義。若名稱裡同時帶上國家與場景,例如標明是某國的表單必填案例或某國的郵遞區號邊界案例,用途就一目瞭然。
場景命名也讓覆蓋率變得可檢查。把樣本名稱列出來,就能看出哪些國家只有一筆、哪些情境完全沒有樣本,而不必逐筆閱讀內容。
命名時建議避免只寫序號。序號在新增與刪除之間很容易重排,參照它的測試也會跟著失效,而名稱只要維持語意,就能承受內容的調整。
可重現比看起來真實重要
測試資料的第一優先是可重現:同一份裝置在每台機器、每次執行都應該產生相同的結果。若樣本每次都不同,失敗就很難重現,也很難比對兩次執行之間的差異。
因此固定裝置裡的地址應該是靜態的、寫死的,而不是每次跑測試才隨機產生。需要大量隨機樣本時,可以另外用產生器,但別把產生結果直接寫回固定裝置,否則版控裡會出現大量沒有意義的變動。
若真的需要隨機產生的樣本,就把產生的結果固定在檔案裡,或把產生的條件記錄下來,讓其他人能重跑出同一批資料。判準很簡單:另一個人拿到這份裝置,能不能得到和你完全一樣的結果。做不到的話,測試失敗時就只能靠運氣重現。
看起來真實與可重現其實不衝突:只要格式符合該國慣例、欄位彼此一致,讀起來就像真的地址。本站的隨機地址產生器產生的內容只供測試,不能投遞,但格式符合當地寫法,可以拿來產生樣本後再固定下來。
真實客戶地址為什麼不能放進去?
因為那是真實個人的資料,一旦進了版控,就會跟著複製到每一台開發機、每一個分支與每一份備份,日後想收回幾乎不可能。即使只是為了重現某個客訴而暫時放進去,也常常就留下來了。
替代方案有三種:用合成資料自己造、把真實資料去識別化後再使用、或直接在測試環境接一份受控的資料來源。三者的成本與風險不同,但不論選哪一種,都應該避免讓完整地址出現在程式碼、測試檔與紀錄檔裡。相關原則整理在地址資料與隱私。
比較常見的疏忽是錯誤訊息的快照:測試失敗時把整筆輸入印出來,這等同於把真實地址寫進紀錄檔。若樣本本身是合成的,這個問題就不存在。
邊界樣本該涵蓋哪些情況?
邊界才是測試真正的價值所在。常見需要涵蓋的情況包括:最短與最長的值、含有特殊字元或空格的值、缺少選填欄位的值、以及欄位之間互相矛盾的值。
郵遞區號與電話號碼尤其值得單獨準備樣本,因為它們的格式在跨國情境下差異最大,也最容易在正規化過程中被改壞。若你的表單會依國家切換欄位,還要準備切換前後的值,確認舊值不會被錯誤保留。
這些樣本不需要很多,但要能各自代表一種失敗模式。與其準備一批長得差不多的地址,不如準備五筆各有明確目的的邊界案例。
具體來說,值得涵蓋的類型包含:不使用郵遞區號的國家、郵遞區號帶前導零的國家、以行政區代碼為主要層級的國家、需要羅馬化的國家,以及郵遞區號與行政區對不上的矛盾案例。這幾類各自會踩到不同的程式路徑,也各自容易在不同的處理階段出錯。
固定裝置該怎麼組織與更新
建議把地址樣本放在一起,並在檔案開頭說明這批資料的用途、涵蓋的國家與最後更新時間。當有人要新增國家時,他能一眼看出該放在哪裡、要不要同步調整測試。
更新時盡量只改內容、不改結構。若真的需要改變結構,就一次改完並同步調整所有引用它的測試,避免出現一半新一半舊的過渡狀態。那些只被一個測試使用的樣本,也值得考慮是否直接寫在測試裡,減少間接層級。
固定裝置是會被讀的程式碼,不是倉庫。定期刪掉已無用途的樣本,比不斷新增更能維持它的價值。
固定樣本與即時產生要怎麼取捨?
兩者解決的是不同問題。固定樣本負責穩定:同一份資料每次跑都一樣,失敗可以被重現,也能比對兩次版本之間的差異。即時產生負責廣度:它能在短時間內造出大量組合,找出人工想不到的破口。
取捨的方式通常是分層。核心流程用固定樣本,因為它們需要長期穩定;探索性測試與壓力情境用產生器,發現問題後再把造成問題的那一筆固定下來成為樣本。這樣既能保住可重現性,也不會讓手寫樣本成為唯一的資訊來源。
要小心的是把產生器直接接進固定裝置。一旦兩者混在一起,每次調整產生邏輯都會讓整批樣本變動,審查的人看到的是一大片差異,而不是一個有意義的新案例。
給開發者:讓樣本自己說明用途
- 名稱包含國家與場景,避免只用序號。
- 樣本保持靜態,隨機資料另外用產生器取得。
- 不放真實客戶地址,也不要讓它出現在紀錄檔或快照裡。
- 每個邊界樣本都要對應一種明確的失敗模式。
- 檔案開頭寫清楚用途、涵蓋範圍與更新時間。
要接著設計完整的表單測項,讀收貨地址表單測試案例;想知道可重現測試資料在流程上怎麼運作,可以參考可重現的測試資料這篇說明。
下一步
打開你的固定裝置,把地址樣本的名稱逐筆念出來,看看有沒有哪一筆說不出用途;再把含有真實地址的檔案找出來換成合成資料。要確認換過之後驗證規則還站得住,讀地址驗證與正規化。