點擊上方的語言選單以切換語言

全端軟體品質保證 (QA) 技術文件

外語書商城專案:單元測試架構、狀態管理與業界實踐規範

一、 專案架構:src/main vs. src/test

本專案嚴格遵循 Maven 與 Vite 的標準目錄規範,確保開發輔助程式碼運行環境程式碼物理隔離:

💡 為什麼 Push 測試程式碼是安全的?

當執行 mvn packagenpm run build 時,建置工具會自動忽略 test 目錄。測試程式碼不會被打包進最終的執行檔中,因此對生產環境的效能與安全性零負擔

二、 測試重心:為什麼是 Service 與 Controller?

我們根據軟體工程中的「測試投資報酬率 (ROI)」來分配測試資源:

組件名稱 測試權重 品質保證目標
Service / Store ★★★★★ 驗證核心商業邏輯(如購物車重複檢查、登入狀態持久化、ISBN 重複判定、以輸入框呈現的關鍵字搜尋、以下拉式選單呈現的 14 種語言分類搜尋)。
Controller / API JS ★★★★☆ 確保 API 契約(Contract)正確,驗證 HTTP 狀態碼與 JSON 格式符合前後端規範。
Entity / DTO / Config ★☆☆☆☆ 此類組件多為結構定義,不含運算邏輯,透過編譯器檢查即可確保正確性,不需額外測試。

三、 前端狀態管理測試:Pinia Store

針對 Vue 3 的狀態管理,我們針對 AuthStoreCartStore 進行了深度邏輯驗證:

1. 身分驗證 (Auth Store)

驗證登入後 userEmailrole 的存儲正確性,以及 logout 時本地緩存 (LocalStorage) 是否確實清除,防止隱私洩露。

2. 購物車邏輯 (Cart Store)

特別測試了「重複加入攔截」功能:當書籍已在購物車時,前端應正確觸發 Alert 並阻止無效的 API 請求。此外,驗證了浮點數價格在加總時的精確度。

🔍 架構說明:為何沒有 Book Store?

本專案對「書籍資料」採取按需加載(On-demand Load)策略。書籍列表資料通常是唯讀且高頻變動的,直接透過組件與 BookService 交互能減少內存佔用,確保使用者始終看到最新的庫存狀態,這是基於效能考慮的設計決策。

四、 業界現狀與測試價值

五、期末報告檔案

期末報告檔案開啟連結(手機瀏覽):軟體品質與測試的期末報告D1397102.pdf
期末報告檔案瀏覽(桌機瀏覽):
分享到 Facebook | 分享到 Line | 分享到 X
作者:周彥廷
創作日期:西元二零二五年十二月二十九日
自拍