iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0
佛心分享-SideProject30

Vibe Code與context engineering來打造個人專屬夥伴系列 第 24

Day 24 — 從混亂到秩序:E2E 測試與文檔重構的極限修煉

  • 分享至 

  • xImage
  •  

🧪 Day 24 — 從混亂到秩序:E2E 測試與文檔重構的極限修煉

今天我過得像個 DevOps + 檔案管理員的混合體。
一邊跑 E2E 測試、一邊在 docs 資料夾裡考古。
簡直像是在打《程式碼文明 VI》——文明從「雜亂文檔時代」一路進化到「自動化測試紀元」。


🧠 前情提要:昨天才剛砍完 BatchService

昨天(Day 23)我剛砍掉 BatchService、重構 Redis 架構。
今天接著趁熱打鐵,把整個專案從頭到尾「文檔大掃除 + 測試重生」。

有種「家裡剛斷捨離完,又馬上開派對」的既視感。
結果真香。🍾


📚 第一回合:文檔重生術

我做的第一件事,是把 docs/ 目錄重新整編成六大門派。
看起來像是武林盟主召開文檔大會——人人各有定位:

docs/
├── 01_REQUIREMENTS/     # 需求文檔
├── 02_ARCHITECTURE/     # 架構文檔  
├── 03_DESIGN/          # 設計文檔 (合併API和DB)
├── 04_TEST/            # 測試文檔
├── 05_DEPLOYMENT/      # 部署文檔
└── 06_USER_GUIDE/      # 用戶指南
  • 🧩 01_REQUIREMENTS:新生三兄弟 PRD / SRS / USECASE
  • 🏗️ 02_ARCHITECTURE:清掉重複檔,只留 Architecture.md 當老大
  • 🧱 03_DESIGN:所有 API、DB、sequence-flow 通通歸一
  • 🧪 04_TEST:放進新的 E2E 測試指南
  • 📦 05_DEPLOYMENT:部署三寶 (installation, config, quick-start)
  • 📖 06_USER_GUIDE:給人類看的使用說明書

看著整個結構從八層地獄變成六宮格,我差點流下重構者的眼淚。😭


🧩 第二回合:清除古文卷軸(舊文檔)

你知道一個專案成長三個月會長出多少沒人敢動的 Markdown 檔嗎?
我清完之後,Git commit 上寫著:

28 files changed, 9779 insertions(+)
14 files renamed
1706 deletions(-)

我甚至懷疑自己是不是在寫考古論文。
但當 SystemDesign.md 終於成為唯一真經,整個 03_DESIGN/ 乾淨得能當範本時,
我只想大喊:「這是架構文檔界的 Marie Kondo!」✨


🔬 第三回合:E2E 測試的誕生

終於,進入今天的主菜。
我正式建立了完整的 E2E 測試方案,從零到報告全自動化。

🧰 工具鏈一覽

scripts/testing/
├── e2e_test.sh
├── setup_test_env.sh
├── load_test.js
├── generate_test_report.sh
└── run_e2e_tests.sh

Makefile 也升級了:

make test-e2e     # 一鍵跑全測試
make test-report  # 自動出報告
make test-load    # k6 壓測走起

這比自助餐還好選。🍱


⚡️ 測試結果:15 / 15 通過!全壘打!

是的,E2E 全數通過。
Redis、Postgres、API、Actor,全員表現完美。

  • 功能測試:通知發送、佇列狀態、錯誤處理
  • 效能測試:單一請求 + 併發請求
  • 資料一致性:通知紀錄、專案與目的地比對
  • 系統整合:Redis + API 全流程無卡頓
  • 報告輸出:HTML / JSON / Text 三種格式自動生成

測完之後我真的懷疑自己是不是在跑 CI/CD pipeline 的 cosplay。


🐞 同場加映:踩過的坑

  1. 資料庫名稱錯誤
    測試腳本裡的 teamsnotify 被我手滑留著。改成 notification_center 後瞬間復活。

  2. User API 崩潰
    password_hash 欄位是 NULL,Go 說:「我拒絕轉 string!」
    解法:修正 Scan 邏輯 + 加預設值。

  3. Queue API 404
    原來是路由註冊遺漏。
    我懷疑當初移除 BatchService 時把它也順便帶走了(合情合理地悲劇)。


🧠 技術領悟:測試讓架構更誠實

E2E 測試有點像照妖鏡。
它不僅測出 bug,更讓我看到整個系統的「真相」——
哪裡耦合太深、哪裡命名太亂、哪裡的 timeout 不合理。

最棒的是,E2E 測試讓我開始信任自己的系統
這是一種工程師的自信,不是自戀,而是穩定的快感。😌


🏁 結語:從亂中取靜的快樂

今天的主題其實不只是測試或文件,而是「整潔」。
我從混亂的文檔、複雜的測試流程,
一路走到「一鍵跑測試、一目了然的架構圖」。

有種禪意:

刪繁就簡三秋樹,留白成全萬行 code 🌿


今日成就:

  • ✅ 文檔結構重生
  • ✅ 完成 E2E 全流程測試
  • ✅ 修正三個系統問題
  • ✅ 自動化報告輸出
  • ✅ 100% 測試通過

明日目標:

  • 修正 user API NULL 處理
  • 加入 k6 壓測數據
  • 完善監控與報告分析

上一篇
Day 23 — 刪掉 1982 行程式碼後,我靈魂都變輕了!
系列文
Vibe Code與context engineering來打造個人專屬夥伴24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言