iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

Windows 桌面軟體 CI 實戰:從系統工具開發到 Zero-RDP 自動化測試錄影 系列

開發 Windows 系統工具與桌面應用時,如何在 GitHub Actions CI 管道中確保品質?本系列以真實開源專案為骨幹,揭密無桌面環境下的 E2E 測試挑戰。涵蓋輸入法(IME)狀態攔截、跨架構虛擬化驗證、自動關閉 OOBE 彈窗,到產出操作影片與視窗差異報告,手把手建立 Windows GUI 軟體整合測試管線。

參賽天數 26 天 | 共 26 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21:四個標的,四代技術

第五章開始。前面二十天講的每一個坑,都是我在自己的測試裡踩到的——而自己的測試有一個結構性的問題: 一個為了測函式庫而寫的應用程式,只能證明函式庫跟自己一致。...

2026-09-20 ‧ 由 mangokingTW 分享
DAY 22

Day 22:系統訊息會被 marshal,自訂訊息不會

Notepad++ 的編輯區是 Scintilla——一個被大量第三方編輯器內嵌的控制項。它在 UIA 樹裡長這樣: <Pane class='Scint...

2026-09-21 ‧ 由 mangokingTW 分享
DAY 23

Day 23:UIA 完全看不到的控制項,像素是唯一的證據

WinMerge 是四個標的裡最「乾淨」的一個:純 Win32、零外部相依、秒級啟動。它的工具列也很好測——44 個按鈕都有名字,而名字就是 tooltip:...

2026-09-22 ‧ 由 mangokingTW 分享
DAY 24

Day 24:同一個版本,兩個程式

這一天的內容是我在這整個系列裡錯得最徹底的一次,而且錯了三次。所以寫法會跟其他天不一樣:照時間順序,把每一個錯誤結論留在原位。 標的是 DB Browser f...

2026-09-23 ‧ 由 mangokingTW 分享
DAY 25

Day 25:Grid、Table,與那些真的不存在的列

回到 UIA 的複雜控制項。今天兩件事:表格相關的四個 pattern 分工不是望文生義的,以及你找不到第 150 列,是因為它真的不存在。 四個 patte...

2026-09-24 ‧ 由 mangokingTW 分享
DAY 26

Day 26:空的答案,與一條要走三步的路

第五章倒數第二天。兩個主題:API 回答了、回答得很有禮貌,而那個答案是空的,以及一個要走好幾步才能到的目標,失敗訊息該怎麼寫。 現象:支援那個 patter...

2026-09-25 ‧ 由 mangokingTW 分享