選單

帳單表單測試該怎麼設計?企業開票最常漏的分支

企業帳單與開票表單需要填公司名、登記號、稅務號、帳單地址與聯絡人,各國必填項與格式要求不同。本文說明為什麼個人與企業要走不同路徑,以及測試時最容易漏掉的四條分支與用例矩陣打法。

發佈於

  • 開票測試
  • 表單用例

帳單表單測試是企業功能上線前最常被低估的一段。多數團隊會把心力放在付款流程,卻讓開票欄位只有幾筆隨手填的樣本;等到真實客戶第一次要發票時,才發現欄位漏了、格式不對或路徑分流錯誤。以下說明這張表單該涵蓋哪些欄位、為什麼個人與企業不能共用一條路徑,以及用例矩陣怎麼排才有效。

企業開票表單通常包含哪些欄位?

最基本的組合是公司名、登記號、稅務號、帳單地址與聯絡人。這五項在多數流程裡都會出現,但必填與否各國不同:有些管轄區要求登記號才能開票,有些只認稅務號,有些兩者都不強制。把必填規則寫死在程式裡,是這張表單最常見的問題。

還有一類欄位容易被漏掉:聯絡人與其職稱、電話與電子郵件、採購單號、成本中心或專案代碼。這些欄位通常不是法定必填,卻是企業客戶內部核銷的必要資訊;漏掉它們不會讓表單報錯,只會讓對帳時多出很多往返。

欄位 用途 常見的測試重點
公司名 對應法定主體 長度、全形半形、超長名稱
登記號 對應登記機關紀錄 各國長度差異、前導零
稅務號 稅務與跨境用途 有號碼與沒有號碼兩條路徑
帳單地址 寄送與稅務歸屬 郵遞區號與行政區的對應
聯絡人 內部核銷與往來 多筆聯絡人、選填與停用

為什麼個人與企業要走不同路徑?

因為兩者需要的欄位集合不同。個人開票通常只需要姓名與地址,企業則可能還需要登記號與稅務號。若表單用同一條路徑處理,就會出現兩種錯誤:對個人要求不該有的欄位,或對企業漏掉必要的欄位。前者讓個人使用者放棄,後者讓企業客戶拿不到可用的單據。

正確的設計是先用主體類型分流,再各自展開欄位。分流的判斷點要放在流程夠早的位置,這樣使用者才不會填完一整頁才發現走錯路徑。分流之後,兩條路徑共用底層的地址與聯絡人欄位是可以的,但必填規則必須各自獨立。

測試時最容易漏掉哪四條分支?

第一條是「有稅務號」。這條路徑看起來最正常,卻常被寫成預設值,導致其他分支沒有被真正測到。第二條是「沒有稅務號」,這是個人與部分小規模主體會走的路徑,流程必須能在沒有這個欄位時完成開票。

第三條是跨境。跨境會牽動稅務欄位的必填規則、幣別與地址格式,也常影響單據上要顯示哪些資訊。第四條是主體類型切換,也就是使用者在流程中途改變了主體類型,系統應該正確地收起或展開欄位,並清理不再適用的值。

這四條交叉之後會形成一個矩陣。實務上的做法是為每一格準備一筆固定的虛構樣本,並在樣本命名上標明它代表哪一格,這樣失敗時就能立刻知道是哪一條分支出了問題。

本站產生的虛構主體怎麼用

在本站的公司資訊產生器裡,指定國家或地區後會產生公司名稱、行業、規模、法律形式、登記資本地址、聯絡電話,以及該國的登記號與增值稅號。整條紀錄互相對應,可以直接拿來填這張表單。內容為合成的虛構資料,不對應任何真實企業。

用它來排矩陣特別省事:挑幾個規則差異大的國家各產生一筆,就能同時覆蓋有稅務號、沒有稅務號與跨境幾條分支。若你想先確認稅務欄位本身的檢查層次,可讀稅號校驗規則;想知道哪些欄位在企業准入時會被再查一次,整理在企業准入測試檢查清單。

這些內容僅供測試、表單示範與沙箱演練使用,不得用來開立真實票據、申請真實開戶或資質,也不得冒用任何真實企業的身分。

給開發者:用例矩陣與重複提交

矩陣的兩個軸建議是主體類型與稅務資料的有無,再另外把跨境當成第三個維度。每一格至少一筆固定樣本,樣本的識別碼要穩定,內容可以依情境抽換。不要讓樣本每次執行都重新產生,否則失敗無法重現。

發票號的產生要考慮唯一性與冪等。同一次提交重試時不應該產生第二張單據,這通常靠客戶端帶入的請求識別碼或伺服器端的去重鍵來達成。重複提交、連點、網路逾時後重送,這三種情境必須各有一筆用例。

驗證順序也會影響使用者體驗。應該先檢查格式明顯錯誤的欄位,再進行需要外部查詢的檢查,並且一次回報所有可回報的錯誤,而不是讓使用者一項一項修。錯誤訊息要定位到欄位,並說明期望的形狀,而不是只說不合法。

測試資料本身要帶有明顯的虛構標記,避免被誤當成真實客戶資料。若樣本會出現在截圖或示範環境裡,這一點尤其重要。想了解樣本如何在版控裡長期保持一致,可以參考可重現的測試資料。

退款與折讓要走哪一條路?

開票流程上線之後,第二個常被漏掉的情境是退款與折讓。它們與首次開票共用大部分欄位,卻多了幾個只在後續流程才會出現的變數:原單據的參照、部分退款的金額、退款與原開票之間的幣別關係,以及折讓單是否要單獨編號。若測試只跑首次開票,這些分支會全部留到上線後才第一次被執行。

合理的做法是把退款建模成對原單據的參照,而不是另開一條獨立路徑。這樣做的好處是金額與主體欄位都能直接繼承,減少重新輸入造成的偏差;壞處是必須處理原單據被修改或作廢之後,參照該怎麼辦。兩種後果都要有對應的用例。

跨境退款還會遇到一個容易被忽略的問題:原開票與退款之間若發生匯率變動,折讓金額不一定等於原金額的一部分。測試時要能接受這種不對稱,而不是用一個比例去驗算。若系統對金額有嚴格的驗算規則,務必確認它不會把合法的部分退款擋下來。

最後,退款與折讓也應該有自己的狀態,而不是借用開票的狀態欄位。文件的生命週期不同,混用會讓查詢與報表無法分辨一筆紀錄是原始單據還是後續調整。

情境 與首次開票的差異 測試重點
全額退款 需參照原單據 參照與狀態是否正確連動
部分退款 金額小於原單據 幣別與匯率變動下的驗算
折讓單 需獨立編號 編號是否與原單據區隔
原單據作廢 參照失效 退款流程是否被正確阻擋

下一步

先把主體類型與稅務資料的有無列成矩陣,逐格檢查有沒有對應的固定樣本,缺的補上。接著演練一次重複提交,確認系統不會產生第二張單據。

如果你的開票流程後面接著企業准入審核,兩者的欄位重疊與差異整理在企業准入測試檢查清單。本系列文章僅供軟體測試與示範使用,所有企業資料均為演算法合成的虛構內容,與任何真實企業無關,也不得用於任何真實的開票、申報或資質申請。

繼續閱讀

公司資訊產生器相關文章