Normal OJ 軟體工程專案:測試組組長
軟體工程課程第 1 組(12 人)為系上維護的線上評測系統 Normal Online Judge 開發五項功能:AI 助教、類 LeetCode 練習模式、API 權杖、自動評分管線、題目討論區。本人任測試組組長(三人),負責整組事項。
- 期間
- 2025-09 至 12(測試執行期 2025-12-01 至 12-29)
- 角色
- 測試組組長(三人);主筆測試計畫書與測試報告書,親自執行弱點掃描
- 技術
- Pytest 與 pytest-cov、Poetry、Docker、Playwright(前端端對端);HCL AppScan Standard 10.9.1(校方授權)
- 規模
- 測試計畫書四版(v1.2 至 v2.1,79 頁);測試報告書 V2.2(137 頁);六份弱點掃描報告
書審對應:附件 C-2
專案與角色
開發組同時開發五項功能,需求與設計在學期中持續變更;測試組必須在功能定案前先定出驗收標準,並在學期最後四週內完成全部功能的驗證與安全性測試。測試組三人由本人擔任組長,負責計畫書與報告書的主筆、測試分工與進度、與開發組的介面,以及弱點掃描的執行。
測試計畫書
依需求書與各功能設計書逐項做需求審查(正確性、精確性、一致性、完整性)與設計審查(資料結構、演算法、介面一致性、可測試性);規劃 51 項測試案例摘要,界定各類測試的方法、通過準則、異常回報流程與時程:
- 單元、整合、端對端(Playwright)
- 黑箱與白箱
- 效能、負載與壓力
- 安全性與相容性
計畫書歷經四版迭代(v1.2、v1.3、v2.0、v2.1),每版對應開發組的設計變更,以 Linear 追蹤並建檔。
測試執行與報告書
測試期間四週又一日(2025-12-01 至 12-29),依計畫書對五項功能逐案例執行並記錄:每案例載明先前條件、步驟、預期結果與執行結果。
| 功能 | 執行案例 | 通過 |
|---|---|---|
| AI 助教 | 22 | 22 |
| 類 LeetCode 練習模式 | 17 | 17 |
| API 權杖 | 30 | 30 |
| 自動評分管線 | 35 | 35 |
| 題目討論區 | 22 | 22 |
| 合計 | 126 | 126 |
測試環境:前端 Ubuntu 22.04、Vue 與 Vite;後端 Flask 與 Gunicorn、Pytest 與 pytest-cov、MongoDB、Docker。報告書歷經三版修訂,由本人最後定稿。
安全性測試
以校方授權的 HCL AppScan Standard 對系統執行六輪 Web 弱點掃描(2025-12-22 至 12-28),結果納入測試報告書的安全性測試章節,供開發組修正。本人因在師大資訊中心工讀而能操作該軟體,也把校內對外服務弱點掃描的經驗用在課程專案上。
與專題的關聯
先訂驗收標準、再執行、再據實報告,與 APKSec Pro 的判定合約設計為同一原則;以掃描工具做安全性測試的經驗,也是專題選題的起點之一。