地區代理測試即使順利下載CSV,也可能取得錯誤報表。試算表軟體可能將商品編號改成數字、把小數逗號誤當欄位分隔,或在開檔時掩蓋編碼異常。驗收應以一組已知的小型資料核對下載內容,不能只看檔案能否開啟。

這套程序適用於自有報表系統或已明確取得授權的測試環境,並非98IP實測結果。代理負責提供測試路徑;匯出語言、CSV格式與業務資料,仍取決於應用程式及其設定。

三筆已知報表資料與下載CSV表格逐欄比對,其中一個不符的儲存格暫停驗收

一、先定義匯出規格,再選測試地區

記錄已授權的租戶、帳號角色、篩選條件、日期區間及時區、資料快照,並確認按鈕匯出的是勾選項目、目前頁面,還是全部符合條件的記錄。比較期間固定這些條件。畫面顯示十列,並不表示匯出十筆就是完整結果。

規格應包含預期編碼、是否允許位元組順序標記BOM、分隔符號、引號規則、標頭順序與空值意義。先區分欄名固定的機器讀取格式,以及提供使用者閱讀的在地化報表。使用分號分隔可能符合產品設計,不能一概要求逗號。

二、用少量資料揭露無聲的變化

在測試租戶準備三筆資料,固定鍵為A01、A02、A03。放入00123這類文字編號、同時含重音字母與漢字的名稱,以及包含逗號、雙引號、實際換行的備註。再加入空白選填欄位與幣別明確的金額。將每欄精確預期值保存在下載檔以外、可信任的測試資料清單。

機器讀取格式可約定1234.50這類明確的小數表示,並把幣別放在獨立欄位。若產品刻意將金額或日期在地化,就應逐一約定各語言環境的表示方式。不要只看外觀就判定1,234是小數還是千分位數字。

三、分開控制路徑與語言

  1. 以固定帳號、資料快照、篩選條件及瀏覽器設定執行基準組,記錄應用語言與匯出選項。
  2. 僅改用一個指定地區的代理,其餘設定不變。確認測試瀏覽器使用預期路徑,記錄匯出請求主機與最終下載主機。獨立啟動的下載程式可能使用不同代理設定。
  3. 需要驗證語言行為時,另做一輪僅改應用語言的測試。清楚標示「只改路徑」與「只改語言」,理解控制組後,再擴充組合情境。
  4. 同一次匯出交易維持同一工作階段。若系統非同步產生報表,保留工作識別碼,下載該授權工作對應的輸出;等待較久時,不要逕自重按產生按鈕。

安排地區路徑比對時,可先查看98IP動態住宅代理產品頁,再於實際設定核對地區供應與工作階段選項。網站測試情境頁也與這項用途相關。這些頁面不能證明特定報表應用必定相容;路徑可用也不等於CSV資料正確。

四、開啟試算表前,保留下載原檔

每輪測試使用獨立目錄,以本機指定的名稱存檔。記錄回應狀態、最終主機、回應媒體類型、位元組數,以及應用可提供的工作或請求識別碼。分享證據前移除憑證、帶簽章的查詢字串、Cookie及個人資料。即使HTTP回傳200,把登入HTML存成.csv仍應判定失敗。

保留未修改的副本;可行時以密碼學雜湊識別取得的檔案。雜湊不同不必然代表業務資料錯誤,換行、BOM或規格允許變動的時間戳記都可能改變位元組。檔名相同也無法證明內容一致。完成原始位元組檢查前,不要用試算表軟體覆存原件。

五、依序解碼、解析及逐欄比對

  1. 使用規格指定的編碼嚴格解碼。若發生解碼錯誤或出現替代字元,保留證據調查。依規格處理BOM,避免它被當成第一個標頭的一部分;不要假設所有輸出都必須包含BOM。
  2. 使用理解CSV引號規則的解析器,明確設定分隔符號與引號參數。例如Python應指定編碼,並以newline=''開啟文字檔,再交給csv.reader。預設讀取值為字串,有助保留編號。不要用split(',')拆欄,也不要按實體行數計算筆數:加上引號的欄位可能含逗號與換行。
  3. 先比對標頭名稱及順序,再確認每筆邏輯記錄的欄位數。依A01、A02、A03配對,在任何預定的數值或日期轉換之前,逐欄比對文字值。核對鍵值涵蓋範圍、重複記錄、空值意義、編號前導零、Unicode名稱、備註、金額、幣別與日期邊界。
  4. 只正規化規格明確允許的差異。產品承諾排序時檢查順序,否則按鍵值比對。列出排除的動態欄位,避免過度處理把真正錯誤藏起來。

六、另外檢查實際的試算表匯入流程

解析驗收通過後,對副本使用試算表軟體明確的文字/CSV匯入流程,設定編碼及分隔符號;匯入器支援時,將編號欄指定為文字。記錄實際軟體版本和匯入選項。如果一般雙擊開檔會把00123變成123,應另外回報使用端匯入問題,同時保留原始檔案真實值的證據。

查看測試匯出時,不要啟用巨集或跟隨外部連結。測試資料保持無執行作用,並遵循應用既有的不可信儲存格處理規則。這項檢查不代表所有試算表軟體及其預設設定都會以相同方式解讀資料。

七、用受控失敗驗證檢查能力

僅在測試資料的本機副本製作三種故障:改掉一個已知Unicode名稱、刪除一筆記錄,以及破壞備註解析後應保留的換行。檢查程序應指出受影響的鍵或欄位。之後恢復正確匯出,再用同一方法複驗。這些是建議執行的練習,本文並未宣稱已實際完成測試。

只有代理組失敗時,先比較保留的回應與工作證據,再判斷是否需要更換IP。原檔正確而匯入異常,先查匯入設定;兩條路徑都匯出錯誤記錄,查匯出範圍與資料狀態;只有語言組不同,查在地化規格。這些模式有助縮小調查範圍,但不能單獨證明根因。

常見問題與上線檢查清單

HTTP 200就算報表通過嗎?不算。傳輸、檔案格式、記錄涵蓋範圍、欄位值與實際匯入流程,必須分別驗收。

不同地區的檔案必須逐位元組相同嗎?只有規格如此要求時才需要。通常應核對約定的語義值,並分別解釋允許的呈現差異。

  • 測試資料及匯出範圍已固定,路徑與語言變數清楚標記。
  • 原始位元組已保留,內容確為CSV,並非登入頁或錯誤文件。
  • 嚴格解碼、依規格解析、鍵值涵蓋與逐欄比對均通過。
  • 已驗證目標試算表的匯入方式,且未覆寫原始證據。
  • 失敗可重現,修正後能通過相同檢查。

僅使用已授權帳號、核准地區及合成或最小化資料。遵守應用限速與下載權限;地區代理不會賦予存取其他租戶報表的權限。依資料保留政策刪除匯出檔,不要在支援單公開工作階段機密。