iT邦幫忙

2026 iThome 鐵人賽

DAY 30
1
Software Development

從脆弱腳本到可信任測試平台:自動化測試架構30天系列 第 30

Day 30|測試自動化的終極目標:建構可信任的品質平台與 SDET 的職涯進化

  • 分享至 

  • xImage
  •  

「自動化測試的終極目標,從來就不是『讓所有測試案例都亮綠燈』,而是『打造一個讓團隊敢在週五下午安心發版的品質信任平台』。」

大家好,我是 Jane,一個每天在第一線處理跨平台(Web & App)自動化測試、跟 CI/CD Pipeline 與品質體系奮戰的自動化測試工程師(SDET)。

恭喜你!跟著我一路堅持到了第 30 天。

在過去的 29 天裡,我們從自動化測試策略、Clean Code、Page/Component Object、抗脆性等待與定位器,一路解鎖到 Flaky test 治理、測試資料工廠、API 深度驗證、CI/CD 管道分層、平行執行,以及 AI 輔助測試。

今天,在整個系列的最後一篇文章中,我想帶大家站在更高維度的視角,來聊聊自動化測試的終極藍圖:我們做了這麼多努力,自動化測試的終極目標究竟是什麼?身為第一線 SDET,我們的職涯又該如何持續進化?

一、 自動化測試的 4 個演進階段:你在哪一步?

回顧一個團隊導入自動化測試的過程,通常會經歷以下 4 個階段:

┌─────────────────────────────────────────────────────────────────┐
│                 自動化測試成熟度 4 大階段                         │
├─────────────────────────────────────────────────────────────────┤
│ Level 1. 腳本時代 (Scripts)  ──▶ 個人寫個別 .py,Local 跑,極易壞 │
│ Level 2. 框架時代 (Framework)──▶ 引入 pytest/POM/Fixtures 模組化 │
│ Level 3. 流水線時代 (CI/CD)  ──▶ 進入 PR Gate,自動化攔截 Bug     │
│ Level 4. 平台時代 (Platform) ──▶ 數據驅動、零阻力、團隊高高度信任  │
└─────────────────────────────────────────────────────────────────┘
  • Level 1:腳本時代 (Task Automation)
    • 特徵:只有少數 QA 在 Local 電腦手動執行 .py 檔案。沒有分層、寫死資料、充滿 time.sleep
    • 痛點:完全無法融入 CI/CD,只有作者本人敢跑。
  • Level 2:框架時代 (Modular Framework)
    • 特徵:建立 Page/Component Object,善用 pytest Fixtures,具備測試資料隔離與動態建立能力(Day 6~17)。
    • 價值:程式碼具備可維護性與抗脆性。
  • Level 3:流水線與抗脆時代 (Continuous Testing)
    • 特徵:進入 GitHub Actions / GitLab CI,具備精準測試挑選(TIA)、平行執行(xdist)與失敗診斷報告(Day 21~25)。
    • 價值:成為 CI/CD 門檻,能在 3 分鐘內提供開發者回饋。
  • Level 4:品質平台與信任時代 (Quality Platform)
    • 特徵:測試極度穩定、執行速度極快、失敗資訊極度精準。開發工程師主動看測試報告,甚至願意主動幫忙寫測試。自動化測試成為全團隊的「品質護城河」。

二、 Python / pytest 實戰:打造團隊品質儀表板 (Quality Metrics)

要達到 Level 4 的「品質平台」,SDET 不能只看 pytest 的控制台輸出,我們需要將自動化測試的執行結果、通率過與 Flaky 趨勢數據化

我們可以透過 pytest Hook,在每次 CI 執行完畢後,將品質指標自動推送到 Metric 系統(如 Datadog、Prometheus 或 Slack):

Python

# tests/conftest.py
import time
import requests
import pytest

# 紀錄全套測試開始時間
SESSION_START_TIME = 0

def pytest_sessionstart(session):
    global SESSION_START_TIME
    SESSION_START_TIME = time.time()

def pytest_sessionfinish(session, exitstatus):
    """
    pytest 鉤子:當整個測試套件執行完畢時,自動統計品質指標並推播至團隊頻道
    """
    duration = round(time.time() - SESSION_START_TIME, 2)

    # 統計測試結果數據
    reporter = session.config.pluginmanager.get_plugin("terminalreporter")
    passed = len(reporter.stats.get("passed", []))
    failed = len(reporter.stats.get("failed", []))
    skipped = len(reporter.stats.get("skipped", []))
    total = passed + failed + skipped

    pass_rate = round((passed / total * 100), 2) if total > 0 else 0

    # 構造品質平台指標 Summary
    metrics_payload = {
        "text": f"🚀 *iThome 鐵人賽 CI 自動化測試執行報告*\n"
                f"• *總案例數*: {total}\n"
                f"• *成功率 (Pass Rate)*: `{pass_rate}%` (Passed: {passed}, Failed: {failed})\n"
                f"• *總執行時間*: `{duration} 秒`\n"
                f"• *環境/分支*: `{session.config.getoption('--env', default='Staging')}`"
    }

    print("\n[Quality Platform] 自動化測試執行指標摘要已產生:")
    print(metrics_payload["text"])

    # 可在此呼叫 Webhook 將數據發送至 Slack / Teams Channel 或 Prometheus
    # requests.post("https://hooks.slack.com/services/xxx", json=metrics_payload)

三、 第一線跨平台 SDET 的 3 大心法與藍圖

在這個 AI 與自動化高速發展的時代,身為跨足 Web 與 App 雙平面的 SDET,我送給所有同行與讀者 3 個心法:

  1. 「可信任(Trustworthiness)」永遠高於「涵蓋率(Coverage)」
    擁有 50 條 100% 可靠、從不跳假警報的測試,價值遠高於擁有 500 條每天隨機失敗 20 條的脆弱測試。寧可縮減案例範圍,也絕對不能破壞團隊對 CI 紅燈的信任!
  2. 懂得「測試層級下沉」才是資深表現
    不要盲目用 Web UI 或 Appium 測試去測所有的邊界條件。把 80% 的邏輯驗證下沉到 API 與 Component 層,只留 20% 最關鍵的 Happy Path 給 UI/App,是維持框架高速與穩定的不二法門。
  3. 從「品質把關者(Gatekeeper)」進化為「品質賦能者(Enabler)」
    優秀的 SDET 不是天天幫人測 Bug 的工具人,而是打造易用的測試框架、架構良好的測試資料工廠(Data Factory)、優化 CI Pipeline 速度,讓開發工程師(Dev)能極低成本地自己寫測試、自己測品質

30 天鐵人賽完結總結

從 Day 1 到 Day 30,我們共同完成了一套完整的 Python + pytest 自動化測試知識體系

  • 第一部分 (Day 1~5):自動化測試策略與測試金字塔心法
  • 第二部分 (Day 6~10):pytest 核心與 Clean Code / Page Object 分層架構
  • 第三部分 (Day 11~15):Web/App 抗脆性實戰(顯式等待、data-testid、Flaky 治理與 Retry 陷阱)
  • 第四部分 (Day 16~20):測試資料工廠(Factory)、Mock / Stub 隔離與深度 API 驗證
  • 第五部分 (Day 21~25):CI/CD 管道分層、受影響範圍分析 (TIA)、平行執行(xdist)與排查報告
  • 第六部分 (Day 26~30):失敗歸因、技術債重構、AI 輔助測試與品質平台終極藍圖

謝謝你這 30 天來的陪伴!希望這個系列文章能成為你在自動化測試與 SDET 職涯道路上,隨時可以翻閱查閱的實戰手冊。

我是 Jane,我們在軟體品質與自動化測試的高峰相見!


上一篇
Day 29|AI可以怎麼幫助自動化測試:2026 年 SDET 的 AI 實戰指南
系列文
從脆弱腳本到可信任測試平台:自動化測試架構30天30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言