自動化管理
EP.09

Test Management System (TMS)
從 Legacy Code 到實驗室核心基礎設施

從維護上萬行 legacy code,到逐步推動 Python3 與 React 現代化遷移。
這篇文章分享我如何在不中斷實驗室運作的前提下,重構一套每天被大量使用的測試管理系統。

Joseph Chen

2024 - 2025
10 min read
系統開發

在手機測試實驗室中,每天都會產生大量測試資料、問題回報與驗證紀錄。

在導入 TMS 之前,許多流程仍依賴 Excel、手動文件與口頭溝通,不但難以追蹤,也容易發生資訊不同步與版本混亂的問題。 這篇文章將帶你深入了解這套系統如何從一套典型大型 Legacy System,逐步演進為實驗室成員每天必用的核心平台。

TMS 解決了什麼問題?

TMS 將原本分散的測試流程全面資訊化,提供了一個企業級的標準化協作平台。

📝

測試報告管理

工程師透過網頁記錄問題、步驟與附件,系統自動產生標準化報告,大幅減少重複撰寫文件的時間。

🔗

內部系統資料同步

與客戶內部系統進行資料同步與狀態驗證,降低人工更新與資訊錯誤風險。

📅

排程與進度追蹤

即時追蹤全實驗室測試進度與排程,確保生產線各環節專案都能如期交付。

📦

倉庫與物料追蹤

精確追蹤實驗室中的設備與物料狀態,避免測試流程因資源調度不當而中斷。

典型大型 Legacy System 的維護問題

TMS 是一套運行多年的核心系統,當我接手時,面對的是典型的技術債挑戰:

診斷系統現況

  • 大量硬編碼 (Hard Code):許多查詢條件與流程邏輯直接寫死於程式中,導致維護與擴充困難。
  • 高耦合架構:單一頁面包含大量業務邏輯與資料處理流程,缺乏模組化設計。
  • 缺乏文件與命名一致性:變數與函式命名不統一,且缺少註解與技術文件,增加後續維護成本。
💡重構策略:由於系統已經是實驗室日常運作的核心基礎設施,因此全面重寫的風險極高。 我採取的是「漸進式重構 (Incremental Refactoring)」策略:先從小功能與低風險模組開始整理,逐步補上註解、拆分邏輯與降低耦合度,確保在不影響既有流程的前提下持續改善系統品質。

我實際參與的開發工作

Legacy Code 重構

整理高耦合程式邏輯、補上註解與逐步模組化,大幅降低後續維護與新功能開發成本。

測試流程功能開發

根據現場測試工程師的反饋,開發新功能與優化既有作業流程,提升整體作業效率。

UI / UX 改善

重新調整介面排版、配色與表單流程,將複雜的資訊以更直覺的方式呈現,優化操作體驗。

系統現代化升級

逐步推動核心架構從 Python2 向 Python3 遷移,並規劃引入 React 進行前端組件化升級。

技術棧 (Tech Stack)

BackendPython 2.x / Django (Legacy)
FrontendjQuery / HTML / CSS
DatabasePostgreSQL
ServerNginx / Internal Server

實戰反思

維護大型 Legacy System 讓我深刻體會到:真正困難的工程問題,通常不是「如何重新設計」, 而是如何在系統持續運作、多人依賴與需求不斷變動的情況下,安全地持續演進。

堅持漸進式重構降低風險
透過技術升級解決長遠債務

延伸閱讀:更多 AI 技術分享