測試技藝 | 在 AI 極速發展下重塑

40岁的测试小学生發表於2025-03-13

摘要:

隨著人工智慧技術的快速發展,軟體測試工程師面臨著前所未有的挑戰和機遇。作為擁有 20 年測試行業經驗的從業者,透過回顧測試技術與 AI 協同發展的歷史,深入探討了 AI 時代下測試變革溯源和根基。並分享了 10 年的 AI 驅動測試創新方面的實踐。最後,對 AI 改造測試技藝的未來進行了大膽的遐想,提出了三個與軟體測試密切相關的問題,並展望了測試技藝的持續探索之路。

閱讀建議:

文章總共 17,000 字,閱讀時長建議是 1 小時。

文正:

測試技藝 | 在 AI 極速發展下重塑
2025 年 1 月,Deepseek R1 正式版橫空出世,席捲了整個中國大陸,並撬動了美國及全球科技界。它以風捲殘雲之勢衝擊各個行業和領域,深刻影響著每個人的學習、工作與生活。與此同時,在享受神經網路帶來的激情與便利之餘,作為 IT 從業者的我們也不免產生擔憂和困惑。尤其是對於軟體測試工程師這一角色,當看到 “AI 能自動生成測試用例、自主迭代測試指令碼、自動發現缺陷” 等報導時,大家不自覺地產生了強烈的職業危機感。AI 迭代速度之快,令人不禁思考:我是否也應追趕這股潮流?該如何追趕?未來,在 AI 時代中,測試人員究竟將扮演怎樣的角色?

作為一名擁有 20 年測試行業經驗的從業者,我和大家有著相似甚至更為強烈的感受。如何破局?這一問題引發了我一系列深入的思考與研究。昨天的記憶、今天的故事、明天的遐想,這三者不斷交織、相互碰撞,逐漸使我觸及到一些內在的脈絡與邏輯。儘管仍存在許多未知和不確定性,讓我一時理不出頭緒,但轉念一想,正是這種不穩定與穩定之間的撕扯,為我和每一位測試工程師帶來了無限可能,而所有這一切,難道不正是測試技藝的魅力所在嗎?

  1. 以史為鑑:測試發展與 AI 崛起這二十年

位測試匠人都數十年如一日地研習測試的 “技” 與 “藝”,在各種系統中不斷探索,只為挖掘深藏在軟體中的缺陷與不完美。你不斷學習、不斷挑戰自我,那份對卓越質量的執著與匠心精神,化作了一則則動人的故事。當後人翻閱這些故事時,依然令人流連忘返,並激勵著他們不斷前行。

2005 年至 2010 年,測試自動化迅速崛起,但尚未與 AI 形成交集。2005 年被視為中國軟體測試發展的關鍵起點。勞動部將 “軟體測試工程師” 列為新職業,ISTQB 認證體系也同步引入,推動了行業標準化程序。微軟 Vista 因測試不足導致產品缺陷的案例,促使業界反思測試流程,促使更早引入自動化測試與效能測試。大型企業開始採用 LoadRunner、QTP、JMeter 等工具實現迴歸測試自動化,測試人員的角色逐步從基礎執行轉向兼具開發能力的 SDET 專家。同時,專業培訓機構的興起加速了測試知識體系的構建,形成了涵蓋功能測試與效能測試的認證標準。在這五年間,傳統測試體系趨於完善,而自動化技術的崛起也為軟體測試從 “輔助環節” 向質量保障核心環節的轉型奠定了基礎。這段時間,AI 則處於由傳統機器學習向深度學習過渡的階段,對測試的影響相對間接,主要為自動化工具提供基礎技術支援。

2010 年至 2015 年,倡導質量左移,探索 AI 輔助測試。全球金融危機與軟體事故倒逼金融、電商等領域提升軟體質量。測試流程標準化加速推進,自動化測試成為主流;Appium、Jenkins 等工具支撐了移動測試與持續整合的爆發。TDD/BDD 理念落地促進了跨團隊協作,測試左移融入 DevOps 全生命週期,技術社群推動了效能測試等最佳實踐的體系化建設。這五年是 “質量左移” 與持續測試崛起的轉型期。伴隨著深度學習突破(如 AlexNet、Word2Vec),AI 技術邁入新階段,IBM Watson 等落地案例紛紛湧現。在測試領域,AI 開始探索缺陷智慧預測(基於程式碼庫訓練風險模型)、自動化用例生成(透過遺傳演算法最佳化測試序列),部分工具嘗試整合影像識別以定位介面元素,但整體仍處於實驗性輔助階段,尚未形成規模化應用。

2015 年到 2020 年,移動/雲測試革新,智慧測試生態初顯。隨著移動網際網路與雲服務的爆發,使用者體驗與系統效能成為市場競爭的關鍵,企業加大全鏈路自動化、效能測試與安全測試的投入,構建起覆蓋前端至中介軟體的端到端測試體系。Appium 主導了移動端自動化,而 Sauce Labs、BrowserStack 等雲端平臺實現了跨裝置與跨瀏覽器的測試。Docker 容器化與微服務架構推動了契約測試和服務虛擬化的落地,全鏈路壓測(如阿里雙 11)成為效能驗證的重要標杆。測試外包逐步專業化,企業借力外部資源進一步最佳化質量管控。與此同時,AI 的深度學習持續的突破著自我的邊界,實現了指令碼智慧生成(如 Testim.io),並推進了視覺驗證自動化(如 Applitools)。這五年既是移動測試深化、全鏈路架構驗證、與 AI 融合探索的關鍵期,也是智慧化測試生態初現雛形的重要階段。

2020 年到 2025 年,測試開啟虛擬化,AI 引領測試新一輪變革。2020 年開始,受疫情推動,越來越多的企業轉向雲測試環境。基於雲的測試平臺以及基於 Docker、Kubernetes 的測試環境逐步普及,使測試人員能夠在虛擬化環境中迅速搭建多樣化測試場景,確保跨平臺、跨瀏覽器測試的一致性。隨著微服務架構和容器技術在雲原生領域的推廣,軟體系統變得愈發複雜,服務間耦合與異構環境測試成為關鍵挑戰。此外,服務網格和混沌工程也成為測試的新焦點。2022 年 11 月,AI 領域推出了基於 Transformer 架構的生成式大語言模型 ChatGPT,震撼業內。AI 賦能測試正式開啟,並迅速推動和完善了智慧化測試生態。一些測試平臺開始引入 AI 元件,以自動生成、維護和最佳化測試用例。新型工具(如 Testim、Mabl)利用機器學習演算法自動識別應用變化,自動更新指令碼,從而減少手工維護工作量。AI 應用不僅限於指令碼維護,還擴充套件到日誌分析、缺陷預測(如 Google 的 BugSpot)以及智慧監控(如 AI 驅動的 APM 工具)。


圖 1:二十年測試技術和 AI 創新重要事件發展時間線

AI 與測試行業的協同發展,本質上是技術創新與質量需求同步推進的過程。早期,測試自動化初步形成體系,以規則驅動的指令碼取代手工操作,而當時的 AI 尚處於萌芽階段,僅能透過基礎資料分析輔助風險預測。隨後,複雜系統與敏捷流程催生了更高層次的測試需求,AI 藉助演算法突破,逐步涉足缺陷定位、用例生成等核心環節,但受限於技術成熟度不高,更多地扮演著實驗性助手的角色。隨著軟體架構向分散式與智慧化演進,AI 開始深度融入測試各個流程,從視覺驗證到日誌分析,從指令碼自愈到使用者行為模擬,其角色由單一工具擴充套件為全流程協作者。同時,測試行業透過海量場景資料和不斷提升的質量要求,再次倒逼 AI 攻克幻覺生成和泛化能力等難題,推動 AI 逐步從實驗室走向工程化落地。

回望過去的二十年,軟體測試領域經歷了多次變革。測試從業者不斷享受著測試技術和 AI 革新帶來的紅利,產品質量和使用者體驗持續改進,一個又一個的測試實踐被寫入這二十年的歷史長卷。我們不禁要問,這些測試的變革究竟因何而起?是誰在背後推動著它們從開啟萌芽到引領時尚?

  1. 冰山之下:以技術變革的溯源看 AI

每位測試匠人,面對著版本快速迭代的列車,在程式碼的反覆更新和使用者期待逐步膨脹中,與幽靈般的偶發缺陷博弈。這迫使你放下眼前的工作,不停地尋求變革,希望走在下次意外發生之前。有時你會願意屈從於眼前的繁華,但是你更希望撥開這迷霧,找到深藏的本源。

今天,生成式 AI 正處在期望膨脹期,許多未知和不確定依然環繞。我們不妨從已經成熟且廣泛使用的技術——行為驅動開發(BDD)出發,來一次溯源之旅。這有助於我們以類似的模式重新審視 AI 這次變革。

2003 年,Dan North 提出行為驅動開發(BDD)。它源於測試驅動開發和驗收測試驅動開發,是一種敏捷軟體開發方法。BDD 倡導將需求轉化為使用者故事和場景,場景通常使用 GWT(Given-When-Then)結構來描述,隨後許多工具和框架支援 BDD 的實踐和測試自動化。2010 年以後,BDD 的中文教程和文件開始在中國出現,並被廣泛傳播和普及。

在此,我們可以停下來思考一下,為什麼要學習和掌握 BDD 呢?我們可能會聯想到更早期的一種軟體開發和測試的正規化——模型驅動架構和基於 UML 的測試,它屬於二十年前的大瀑布過程和方法論範疇的技術。將 GWT 和 UML 對照,從目的、建模關注點、語言和受眾、建模深度、適用場景等方面進行比較,可以看到,BDD 只是測試建模的一種方法(相對靠近自然語言),而 UML 也是一種(相對靠近計算機語言)。BDD 與敏捷相互選擇,就如同 UML 與大瀑布相互吸引一樣。然而,我們要進一步問自己一個問題——為什麼要順應敏捷而去選擇 BDD 呢?

選擇敏捷是大勢所趨。如果這是你的答案,算是合理。可為什麼它會流行?敏捷方法強調迭代和增量開發,旨在快速地交付產品,然後收集使用者反饋,再進入下一個迴圈迭代週期。這種有機體的世界觀、不確定性的擁抱適應性和價值驅動,造就了目前的網際網路應用,或者說是網際網路應用本身的 DNA 造就了敏捷開發的實踐發展。然而,我們的軟體行業並未完全拋棄大瀑布的方式,它一直在默默執行(例如航天軟體,依靠雄厚的資金支援更加安全和穩健的開發測試過程)。當然,我們也不能忘記,還有許多介於兩者之間的中間態,例如汽車軟體、嵌入式軟體、金融行業軟體等。也許,我們該繼續向自己發問:為什麼網際網路應用可以支援高速的迭代敏捷方式呢?

網際網路應用本身的基因和使用者期望成就了敏捷測試大行其道,或者相互成就了彼此。大部分網際網路產品都是面向最終客戶,主要提供生活和娛樂相關的產品和服務。網際網路使用者習慣於應用的頻繁更新,也樂於見到應用不斷進步和完善。這種使用者特質,加上互聯的特質,使得缺陷的召回成本遠遠小於傳統行業,這又進一步推高了應用迭代的速度。此外,網際網路使用者數量龐大且廣泛分佈,透過資料驅動的決策和改進也成為敏捷的最佳實踐。當然,背後的另一個至關重要的因素是激烈的行業競爭,快速推出產品和試錯被廣泛接受(例如某些網頁打不開的軟體不影響其他亮點功能的上線)。客戶在這種充分競爭的環境下,選擇體驗和價值,而不是完美。到這裡,我們還不能停下來對自己的追問——網際網路的使用者為什麼會這樣選擇呢?

我們來到了人類需求的層面。網際網路使用者具有生理需求(外賣訂餐應用、線上醫療服務)、安全需求(支付安全、資訊未被洩露)、歸屬與愛的需求(社交媒體、即時通訊、線上社群)、尊重需求(內容創作平臺、遊戲競技)和自我實現需求(線上教育平臺、知識分享平臺)。這些需求的滿足,是網際網路應用所首要關注和實現的(如果與汽車軟體和航天軟體對比,網際網路應用就不需要考慮人身的安全)。

從 BDD 的變革,引發我一次的上述思辨之旅。在探究本源的過程中,我們不僅看到了技術本身,還有其背後涉及的資源、質量、組織、環境和人性。每個變革都按照 “承前啟後” 的時間線,在 “左鄰右舍” 的相互吸引下,不斷 “發光發亮”,影響著每個變革的受益者。

  1. 技術正規化

測試作為軟體工程的一個環節,計算機和軟體設計的任何變革都可以應用到測試的革新中。換言之,絕大多數的測試技術創新,都可以理解為計算機領域的一種應用技術。例如,Appium 的架構基於軟體設計模式中的關注點分離(Separation of Concerns)原則,是測試自動化架構設計上的一次成功應用。而基於大型語言模型生成測試用例,也可視為生成式人工智慧技術在模型驅動測試(MDT)中的一次實踐。

  1. 資源平衡

測試工作是一種在資源投入與產出之間尋求平衡的藝術。這種平衡的目標是讓有限的資源發揮最大效能,這也是測試技術從手工到自動化再到智慧化不斷進化的內在動力之一。例如,契約測試定義了服務之間的介面規範,確保各個服務在滿足契約要求的前提下可以獨立執行,極大地避免了因各服務狀態不一致而導致的資源浪費,從而使有限的測試資源得到更充分的利用。同樣地,基於 AI 改造測試時,必須權衡投入(如使用昂貴的 GPU 訓練模型,或人力標註訓練樣本)和產出(如測試用例更新代價下降 50%,或手工測試人員減少 30%)。

  1. 質量標準

測試的變革始終是為了適應質量目標的驅動而產生的。例如,應用熱啟動的介面載入速度必須在 100 毫秒以內,這決定了進行效能測試的方法和工具的精度必須控制在 10 毫秒的量級。再比如,航天器軟體的可靠性對於確保航天任務的成功至關重要,這決定了航天領域無法應用敏捷測試的方法論,而需要採用更加嚴謹的可靠性工程方法來保證軟體質量。目前,AI 在測試領域的應用創新,主要集中在降低成本和提高效率方面,本質上也要符合軟體的質量標準的發展趨勢。

  1. 組織價值

在傳統的大瀑布軟體流程下,測試更多地被組織定義為執行和驗證環節。而在敏捷環境下,測試不再僅僅是發現問題的步驟,而是成為提升過程效率、為組織增加整體價值的重要手段。一些組織被重流程、重自動化的價值觀所左右,測試的 “藝” 可能退化為重複和機械的操作。而另一些更看重人的組織,每個測試人員都能發揮主觀能動性。在這種價值觀下,基於上下文的探索式測試更容易推進。在 AI 發展的背景下,機器的重複執行與人的創造力協同作用,將測試從 “被動驗證” 轉向 “主動風險挖掘”,可以進一步推動組織形成質量共建的文化,使測試價值從成本中心升級為業務保障的動力。

  1. 外部環境

外部環境包括市場動態、競爭壓力、法規政策等多重因素。例如,在測試環境中使用真實使用者資料可能導致隱私洩露。為此,企業採用資料脫敏和匿名化技術,確保在測試過程中使用的資料已被處理,無法追溯到個人身份,從而保護使用者隱私。再比如,TikTok 憑藉敏捷迭代和 A/B 測試策略,在 3 年內全球使用者突破 10 億。而 Instagram Reels 因過度依賴母公司 Meta 的原有測試流程,初期功能迭代緩慢,錯失先機。同樣地,AI 在測試中的應用和創新(如資料生成、用例最佳化、安全攻防)正成為企業應對外部監管、競爭和安全挑戰的核心工具,同時外部環境壓力也加速了 AI 測試技術的場景化落地與迭代。

  1. 人性需求

所有技術最終都回歸於滿足人類的情感與本能需求。我們可以採用馬斯洛的需求層次理論,將技術改革的路徑最終對映到人類需求的動機上。例如,遊戲玩家在玩電腦遊戲時,8K 的解析度、240FPS 的重新整理速度、50 毫秒的操作反饋速度,這些遠超過單純的功能性需求,因為他們能從極致的體驗中得到愉悅和滿足。再比如,程式設計學習平臺 Coursera,確保使用者從 “小白” 到 “開發者” 的成長體驗,這契合了使用者的能力提升和自我實現的心理期望。AI 在測試中的應用不僅要以提升效率為動機,更應該透過增強測試者的決策權與成就感,回應其對能力成長、職業價值的高階需求,並最終讓技術進化達到 “人的解放與昇華”。


圖 2:“以 GPT-3 生成測試用例” 的技術變革溯源路徑

綜上所述,測試領域的變革受到技術正規化、資源平衡、質量標準、組織價值、外部環境和人性需求等多重因素的影響。每次變革都是在特定時間線下,在相關因素的相互作用中不斷發展,影響著每個變革的受益者。而每個測試技術 “變” 的背後,總有 “不變” 與之匹配。

  1. 始終如一:AI 無法改變的固化根基

每位測試匠人都選擇擁抱變化和不確定性,只有這樣才能不斷地去應對挑戰。然而,你也渴望擁有穩定且可靠的工具,因為它們是我們的根基。也只有它們的穩定,你構建的測試才更值得信賴,才能有信心創造更大的價值。

如果您嘗試去深究 AI,探討人工智慧對測試領域帶來的變革,可能會在第一步 “技術正規化” 上遇到瓶頸。確實,人工智慧(作為當今的前沿技術)對測試所帶來的革新,與十年前成熟的技術如行為驅動開發(BDD)所引發的思考有所不同。我們就不妨暫時聚焦於 “技術正規化”,深入剖析其底層的構建。

假設你是一名新入職 DeepSeek 的人工智慧演算法研究員,你眼中的世界將被人工智慧演算法所主導。你無需深究基於 Python 語言編寫的人工智慧演算法是如何被轉換為機器語言,並最終在 Nvidia 的 GPU 上高效執行的,因為這些技術已經成熟且系統穩定。然而,你是否曾考慮過,坐在美國 Nvidia 辦公室的測試工程師,正為了確保高效能和穩定性,一遍又一遍地執行基於 Python 的自動化測試?此時,這位 Nvidia 的測試工程師不一定會想到,在遙遠的中國臺灣,臺積電的 2nm 製程生產線是如何穩定且成熟地運轉,造就了雲端計算中心中高效能執行的晶片。而無論是 DeepSeek 的演算法工程師,還是 Nvidia 的測試工程師,他們所使用的 Python 程式語言,到 2025 年的今天,已有 35 年的歲。同樣,物件導向程式設計思想自提出至今,已過去 58 年。

今天,當我們激情澎湃地擁抱人工智慧的爆發式時,也應理性看待背後那些默默 “奉獻”、已被固化的技術正規化。

1) 人機互動方式:儘管近年來語音和手勢識別、擴充套件現實(XR)以及腦機介面逐漸進入大眾視野,但基於傳統鍵盤、滑鼠和觸控式螢幕的人機互動方式仍然是主流,約佔據 80% 的市場份額。自 1973 年首次研發圖形使用者介面(GUI)以來,基於這些物理輸入輸出裝置的人機互動方式並未發生本質性變化。人機互動作為研究人與計算機系統之間互動的學科,長期關注如何設計使用者友好的介面,以提高使用者體驗和工作效率。目前,大型語言模型的應用仍離不開這些傳統的人機互動方式,文字輸入、滑鼠點選,以及檢視生成的文字、圖片、語音和影片等仍然被延續。人機互動方式的相對穩定,使得使用者體驗測試得以持續發展和創新(例如透過 A/B 測試比較不同介面設計的效果)。

2) 軟體工程方法和測試:軟體工程作為一門工程學科,旨在系統化、規範化、量化地進行軟體的開發和維護。從大瀑布模型到近年來流行的敏捷開發流程,這些方法都遵循 “需求→實現→驗證→部署” 的流程。測試在軟體工程中至關重要,貫穿軟體開發的整個生命週期。無論團隊規模大小,軟體實現過程中都會引入缺陷(例如,Android 核心的缺陷密度為 0.47 個缺陷/千行程式碼,2024 年報導稱 ChatGPT 的幻覺率約為 15%),這決定了測試工作的必要性。

3) 軟體設計和部署:通常的軟體系統都是透過計算機程式、資料結構與演算法、作業系統和計算機網路等技術實現。過去二十年中,Windows 和 Linux 一直是兩大主流作業系統,而基於這些作業系統架構(如程序管理、記憶體管理、I/O 管理、檔案系統等)設計的上層系統,如 Android、macOS 和鴻蒙 OS,未脫離這些基礎架構和設計思想。計算機網路中的 TCP/IP 協議和 IPv4 協議已使用近 40 年。在資料結構和演算法領域,被視為電腦科學基石的基本資料結構、排序和查詢演算法,以及主要的演算法設計正規化,在過去 20 年中總體上保持穩定。計算機程式語言雖然看似更新換代較快,但順序、條件、迴圈、函式等基本結構並未發生根本變化。

4) 馮·諾依曼體系結構:馮·諾依曼體系結構是現代計算機的基礎架構,定義了計算機應包含運算器、控制器、儲存器、輸入裝置和輸出裝置五個基本組成部分,並採用儲存程式的概念,即程式和資料都以二進位制形式儲存在儲存器中。目前,幾乎所有計算機系統都基於馮·諾依曼體系結構(量子計算體系結構、神經形態計算體系結構、存算一體架構等仍處於探索階段),它構成了計算機技術的堅實基礎。

5) 物理學和資訊理論:計算機的能力受限於物理規律和資訊理論。過去幾十年中,摩爾定律推動電晶體數量指數增長,但隨著尺寸縮小,能耗和散熱問題日益嚴重。即使在極低功耗設計下,也無法突破熱力學限制,這限制了計算速度和能效的提升。而無論晶片多麼先進,訊號傳輸過程中的噪聲都會限制資料傳輸速率和準確性,這也間接影響整體計算效能。阿姆達爾定律表明,即使增加無限多的處理器,總有一部分序列程式碼無法並行化,這限制了系統的整體加速比。


圖 3:AI 爆發背後的不變性基礎

這些固化的技術正規化之所以存在,首先是因為它們深刻地契合了電腦科學所要解決的核心問題,並提供了一套通用且有效的解決方案。它們並非隨意選擇的,而是經過長期實踐檢驗,不斷最佳化和演進的結果。一旦某種技術正規化佔據主導地位,就會形成強大的網路效應和鎖定效應。這種慣性使得 “固化” 正規化具有極強的生命力,即使出現新的技術,也很難完全取代它們,更多的是在這些正規化基礎上進行擴充套件和演進。最後,無論是硬體裝置、軟體工具、人才儲備還是現有系統,都承載著巨大的經濟價值和沉沒成本。任何顛覆性的技術變革,都需要在經濟上具有可行性,並能夠有效地降低成本、提高收益,才能最終被市場接受。

生成式 AI 曾被譽為 “第三次工業革命” 。然而,重新審視這些 “固化” 的技術正規化後,我們或許應保持冷靜。在當今計算機體系的發展和技術創新程序中,生成式 AI 仍處於變革的早期探索階段,其影響力和社會價值尚在逐步驗證和理解中。作為測試匠人,我們需要學習和理解生成式 AI,並要在現有的技術框架內實踐。那麼,我們應如何開啟基於 AI 的測試技藝實踐之旅?又該藉助哪些工具,實現高效守護質量的願景?

  1. 革故鼎新:我的 AI 驅動測試創新十年之路

每位測試匠人都懷著對極致效率的追求,熱衷於尋找和創造更高效的工具。這不僅僅是為了滿足內心的渴望,更因為每一次工具的革新,都為他們敞開了一扇通向智慧和深思的窗。

下面,我來講我的一個故事,更準確的說是一系列、歷時十幾年而還曾未終止的 “智慧化測試創新” 的故事。

2012 年,Google 釋出了 UI Automator,一款用於實現 Android UI 測試的框架。隨後,我開始參與基於 UI Automator 的自動化指令碼開發工作。然而,我們遇到了諸多阻力,因為某些使用者介面元素並不總能被該框架支援。隨後,只能採用半自動化、半手工執行的策略,反覆執行預定的測試。那年,我的目標很單純:實現 100% 的 UI 自動化執行。

2013 年,我在網際網路上發現了一款基於影像識別的開源測試工具——Sikuli。它滿足了我們實現 100%UI 自動化願望,但僅能在桌面作業系統上執行。為此,我還曾直接聯絡遠在美國的作者,但他似乎無暇支援我們對 Android 系統的需求。然後,經過我與經理和團隊成員的多次討論,我們最終決定自行實現它。經過半年努力,我們達成了預定目標,併為其取名為 PRIDE。再後來,PRIDE 與我們自主研發的機械手臂和攝像頭整合,最終實現了無接觸式智慧測試裝置。這一成功令整個團隊倍感自豪,士氣大振。


圖 4:PRIDE 影像識別驅動的測試平臺

思:當網易在 2016 年釋出並延續至今的類似開源專案——Airtest 時,我才意識到自己錯失了回饋社群的機遇。雖然這背後體現了不同企業在測試創新、合規和生態構建上的認知差異和時代侷限性,但作為測試匠人,我們不僅應推動創新改進,還應積極以各種形式與測試社群互動。

2014 年,我們基於 PRIDE 開發自動化指令碼,但遇到了新問題。介面的細微變化或環境干擾常導致執行不穩定。若有新專案啟動,我們還需在新的 Android 手機上擷取大量影像。因此,我調整了目標:要麼改進影像識別演算法,要麼探索智慧化的自動遍歷演算法,以進一步降低自動化的維護升級成本。然而,當時對 UI 自動化技術的認知侷限,我未能取得任何突破。不過,就在那一年,我為自己設定了一個測試自動化的創新願景,並繪製了這幅圖。


圖 5:智慧測試創新願景(2014 年繪)

辯:十多年後的今天,UI 測試自動化的創新,或整個智慧化測試的構建,仍圍繞類似的邏輯運轉。這或許體現了一種對創新趨勢的直覺和把握,但是也時常讓我感到因為不遂願的失落。作為測試匠人,究竟是專注當下,解決眼前的問題,還是放眼未來懷抱願景,這是一個值得持續探討的命題。

2016年3月15日下午,谷歌研發的圍棋人工智慧程式 AlphaGo 在與韓國棋手李世石的最後一輪較量中獲勝,最終以 4: 1 的總比分贏得了這場人機大戰。這則爆炸性新聞被視為人工智慧領域的顛覆性變革,預示著其將深刻影響每個人的生活。在隨後的一年裡,我從自學深度學習到公司倡導 “All in AI” ,大家都希望從中發掘 AI 的價值。當時,深度神經網路首先在影像分類領域取得突破,這讓我再次將其與 UI 自動化測試聯絡起來。

我選擇了 AlphaGo 的核心機器學習演算法——深度強化學習,作為突破口。我開始不停地嘗試讓 AI 自主學習手機遊戲的得分技巧。然而,幾個月的努力並未取得預期成果(儘管在一款名為 “鋼琴塊” 的小遊戲上取得了一些進展),因為我一直無法在公開發行的手機遊戲版本上找到一種能夠快速、大量進行強化學習的方案。不過我還是有所技術以外的收穫,至少在 2017 年就開始研究 OpenAI 及其機器學習技術。我認為這並非偶然,而是我做出了正確的決定。

思:回顧最初的失利,問題並非源於技術本身,而在於當時技術與現實問題之間存在鴻溝。作為測試匠人,跨越鴻溝,建立理想與現實的紐帶,是我們的使命。然而,資源、認知、他人的支援、甚至是運氣,都一樣的重要,值得我們在事後反思。

2018 年,OpenAI 的 Five 在複雜的 PC 遊戲 Dota 2 的訓練上取得了顯著進展,擊敗了由職業選手組成的隊伍。對於一直從事遊戲測試的我,看到這樣的新聞,我並不甘於現狀。此時,我再次深陷思考,選擇捨棄強化學習技術,轉而選擇 “影像分類 + 物件識別 + 智慧 Agent 演算法” 的方式。終於,我在手機遊戲《王者榮耀》和《刺激戰場》(國內版 2019 年改名為《和平精英》)上的測試自動化取得了一些突破。遊戲測試自動化的階段性成果,讓我看到了深度學習在測試中帶來的變革力量。


圖 6:《王者榮耀》和《刺激戰場》測試自動化場景

辯:如果你不放下自己的執念,意味的追求技術上的完美,很有可能,你會在技術上產生根本性突破。但是,你也可能寸步難進,一無所獲。作為測試匠人,有時候必須在執著的完美主義和妥協的現實主義之前掙扎。

在一次次的遊戲自動化測試執行過程中,我在收穫持續質量監控和改進成果的同時,又重新拾起了深度強化學習這一利器,並持續關注 OpenAI 的技術研發動態,進行各種試驗,試圖大幅降低測試訓練的成本並提高測試的穩定性,直到離開公司。

時間來到 2022 年,ChatGPT 的釋出引發了全網的興奮。然而,我保持了更多的冷靜。到了 2023 年,我開始將 ChatGPT 與新的專案和測試自動化需求進行新一輪整合,並提出了兩條讓大語言模型支援測試用例生成的路徑。第一條路徑是基於 ChatGPT 的 “提示詞工程 + 狀態機模型 + 關鍵字型檔” 生成可直接執行的測試指令碼。第二條路徑是本地訓練 NLP 語言模型(嚴格意義上不能稱之為 LLM,我也沒有資源訓練 LLM),然後與 OCR 技術整合,實現 GUI 元素識別和自主遍歷。

基於第一條路徑,我在 2024 年初開發了一款基於 PyCharm 的測試指令碼生成和執行的外掛,該外掛透過訪問 Azure OpenAI(GPT-3.5)API 實現。然而,開始的結果並不理想,主要原因是 GPT-3.5 存在嚴重的 “幻覺” 問題,生成的測試指令碼準確度較低(約 50% 的指令碼存在明顯錯誤或不符合狀態機模型)。直到半年後 GPT-4 的釋出,測試指令碼的正確率才提升至 95% 左右。然而,這種基於 LLM 生成指令碼的方案,其開發測試模型(場景狀態機)的成本變為多數人關注的焦點。一些同事提出,是否用自然語言描述會更為合適?正當我苦於測試模型設計成本的問題時,另一個挑戰接踵而至——公司出於資訊保安的考慮,禁止將任何公司資訊傳送至網際網路上的大語言模型。這徹底阻斷了我對第一條路徑的探索。

思:與公司法務部門的爭辯顯得徒勞無功,因為他們秉持 “絕對安全” 的原則。我只能自我安慰:技術的變革往往領先於制度和法規。要實現技術的創新和落地,必須考慮組織價值和外部環境的約束。作為測試領域的匠人,只有深刻理解上下文,準確把握技術的適用性和合規性,才能為組織創造直接的價值。

於是,我開始轉到第二條路徑上。這條路徑的核心思想是透過 OCR 技術識別 GUI 介面上的文字,然後透過隨機遍歷的方式,識別 “狀態” 和 “動作”,最終將生成的狀態動作序列作為訓練資料,用於訓練模型並驅動下一次的自動化遍歷測試。由於受限於訓練主機的效能,我不得不選擇規模較小的 Google/T5-large 模型進行資料訓練。在生成 300 個輸入輸出對的序列後,經過 30 個小時的訓練迭代,模型開始達到可接受的精度。然而,如此少的資料量和極低的訓練效率,不足以支援我進一步擴充套件和實驗。我缺少的是高效能的 GPU 資源,這阻礙了我繼續探索和試驗的可能性。


圖 7:測試場景自動探索和執行系統設計

在公司內部尋找高效能的 GPU 資源是一項艱鉅的任務。即便找到了基於 K8S 的 GPU 資源,我依然被告知,由於合規性問題,我的整套基於開源模型和演算法的方案無法在公司內部部署。這讓我再次感到失落。

慢慢的,這份失落隨著 AGI 技術的快速迭代逐漸被我淡忘。很快,我看到了 Sora 這種多模態大模型的問世,我開始在 Huggingface 等模型平臺上自由地探索。我逐漸意識到,多模態大模型正是為人機互動的智慧化測試而生的。隨後,我構思了一個面向未來的基於多模態的測試自動化架構——透過構建兩個多模態模型 Predictor 和 Judger,分別用於預測下一個測試動作的生成和測試結果的斷言。現在,我仍然正在等待合適的時機,繼續把我的人機互動智慧化測試走下去。


圖 8:人機互動的智慧化測試方法架構

辯:儘管我再次從測試創新性工作的實踐中退下來,但內心卻充滿糾結。對於測試領域的匠人而言,是審時度勢選擇退縮,還是義無反顧迎難而上,需要考慮的因素遠不止技術層面。組織的合規要求、資源的限制、團隊的接受度,甚至是個人職業發展的權衡,都成為決策中不可忽視的變數。這種糾結,或許正是技術創新者在現實與理想之間必須面對的常態。

2024 年底到 2025 年初,生成式 AI 進入了軍備競賽階段,國產大模型 DeepSeek 的崛起,將我的思緒拉回到最初在國內奮進的激情時刻。我開始持續關注生成式 AI 在 GUI 自動化測試領域的行業現狀和最新研究成果,希望從中找到一些線索和啟發。

從近年發表在 https://arxiv.org/ 上的關於 GUI 測試的論文來看,研究主要集中在兩個方向:1)探索各種 AI 模型和演算法以最佳化探索和缺陷檢測的效率;2)制定 GUI 測試評價系統。暫時略過了大量關於第一部分的討論,我想直接跳到第二部分,因為這讓我聯想到 AI 教母李飛飛和她建立的 ImageNet。深度神經網路之所以能在影像識別任務上超越人類,除了模型本身的精巧設計,更得益於 ImageNet——這個包含上千萬樣本的標準資料集。如今,大語言模型的軍備競賽同樣需要一把衡量的尺子,包括在細分領域的落地。

GUI 的自動化遍歷和缺陷檢測是一項非常特殊的任務。目前查閱到的最新論文僅提到極少數的自建評價系統和基準測試(如 GUI Testing Arena、DroidTask、WorldGUI 和 MobileAgentBench 等)。一些論文中指出,現有的商用大模型在這些基準測試上的表現都非常差,更不用說在真實場景中的執行效果了。目前國內外會議分享的議題以及已商用的自動化工具,更多是基於少量資料對特定場景進行調優後的結果,其泛化能力和借鑑意義值得進一步論證。GUI 測試的智慧自動化任重而道遠,前路坎坷。

思:深入理解行業動態並進行溯源,你會發現許多為商業或營銷目的的誇大宣傳。這些宣傳有時影響我們對技術的判斷,甚至導致錯誤的決策和盲目行動。對於測試領域的匠人而言,技術的思辨能力和判斷力始終是立足行業的根本。只透過嚴謹的分析和獨立的思考,才能在紛繁複雜的技術浪潮中保持清醒,做出真正有價值的創新和實踐。

隨後,我又把視野向外拓寬,從多個領域開始研讀目前 AI 在測試上的一些創新性實踐和落地經驗。下面列舉一些國內 AI 與測試結合的探索方向和 2024 年的會議分享案例。


表 1:2024 年生成 AI 案例和會議分享案例

看過這些內容後,一方面,我充分意識到在 AI 大時代下,測試技藝再造正在被廣泛討論和實踐,並取得了一些階段性成果。然而,從另一個角度來看,無論是基於大語言模型還是機器學習技術,將他人經驗或論文中的研究成果遷移到自己的工作中,仍然面臨巨大的挑戰和不確定性。AI 的泛化能力、資料質量的差異、應用場景的複雜性,以及組織內部的資源限制和合規要求,都成為實際落地中的障礙。

辯:學術界對於 AI 的研究按照定義標準、橫向比較、找到突破、驗證擴充套件的嚴謹科學過程進行著。而產業界,更多的是研究企業內部挑戰、尋找合適的技術、落地而後評價影響。兩邊相互辯論,相互鄙視,這不利於技術的創新和推廣。作為測試匠人,要遊走於兩端,啟發自己、突破自己、定義自己,而不被其左右。

生成式 AI 仍屬於機器學習範疇的延伸,其底層邏輯仍然是 “透過已知資料擬合機率分佈,並基於分佈預測未知資料”。而軟體測試的本質矛盾在於:微觀上需解決確定性路徑覆蓋問題(如生成特定 SDK 的完備測試集),宏觀上需平衡工程實踐的約束條件(如基於風險策略配置測試資源)。測試問題的邊界與評價標準難以被明確定義,這導致了技術改進效果只能透過具體場景驗證,難以橫向量化對比和複用。

而如果進一步把目前基於生成式 AI 在測試領域落地的困境進行分解,從技術和企業態度方面,可以發展出四個維度:1.模型在目標評價體系下的幻覺消除能力(如測試指令碼生成準確率);2. 模型能力與測試需求的泛化適配度(需評估測試任務與模型預訓練目標的語義距離);3.大模型訓練/部署成本與組織承受力的平衡(即使 DeepSeek 等模型降低門檻,推理硬體和工程化成本仍需持續投入);4. 企業從技術嚐鮮轉向系統性評估 ROI 的能力(包括合規風險、客戶價值傳導、市場競爭力重構等)。作為測試匠人的我,既不被被短期技術泡沫矇蔽,也不能因長期主義困境止步,必須在現實條件與理想目標的動態平衡中尋找創新突破口。

在十餘年的智慧測試創新曆程中,我不斷實踐與總結,經歷過失敗的挫敗,也收穫了成功的喜悅。測試的 “發展歷史” 賦予我延續感和前進動力,“變革溯源” 使我更加沉穩和冷靜,"堅實基礎"讓我能夠專注於細分領域的創新。我始終堅信,未來會更加美好,且就在不遠。

  1. 天馬行空:關於 AI 改造測試技藝的遐想

每位測試匠人都對未來懷揣美好憧憬。這種美好的期盼,激勵著每一位在困境中默默耕耘、砥礪前行的人們。測試人不僅能吟詩作賦,更心懷遠方。

2025 年 3 月,我們期待的 GPT-5 還沒有被 OpenAI 釋出。未來的測試工作究竟會是怎麼樣,熱烈的討論不曾停止。

ChatGPT 說:“未來的測試工作將全面進入人機協同進化時代:AI 自動化接管重複性任務(如資料整理、基礎測試),人類聚焦高階創造力與決策力——設計 AI 工具鏈、最佳化演算法模型、制定倫理規則。工作場景高度數字化,遠端協作與虛擬辦公成為主流,跨領域能力(技術 + 行業知識 + 人文思維)成為核心競爭力。新興職業如 AI 訓練師、人機互動設計師、數字倫理顧問湧現,傳統崗位透過 AI 增效轉型(如程式設計師轉向提示工程,測試員升級為質量科學家)。人類的核心價值在於解決模糊問題、創新突破及價值觀判斷,而技術技能迭代速度加快,終身學習與適應性成為生存底線。工作本質從指令轉向定義問題,人與 AI 的關係從替代走向共生。”

因為眼花繚亂的新名詞,似乎讓你對未來更加迷茫。

作為測試匠人,我們的創造性源於提問和想象,也包括對未來的設想。帶著問題思考,找到適合自己的答案,才是出路。關於 AI 未來的發展趨勢,我反覆追問自己三個與軟體測試相關的問題,並時刻尋找答案:

問題 1:AI 模型是否能低成本的在私有資料上訓練/調優?

問題 2:AI 能否能感知差異化個性化的人類需求?

問題 3:AI 能否生成無缺陷軟體系統?

問題 1。2024 年底,Ilya 宣佈:“預訓練結束了!全球 AI 資料耗盡。” 但這裡的資料僅指大模型預訓練可訪問的公開資料。因此,我們目前所說的 AI 仍是 “通用” 人工智慧。如何高效、精準地將這種通用人工智慧的能力遷移/泛化到私有資料處理上,是當前人工智慧應用領域討論和實踐的首要任務。2025 年被稱為 Agent 元年,因為 AI 在不少垂直領域的試驗已經啟動,並取得了一定成績。但不得不說,當前企業和組織內部啟動類似工作的門檻仍然很高。除了技術難度外,算力成本也遠未達到大眾或個人可接受的程度(如果我們的終極目標是人人都能隨時隨地進行大模型調優)。目前,測試領域透過建立知識庫,匯出測試計劃、用例、指令碼,甚至分析發現缺陷,是 AI 落地應用的趨勢。測試工程師已轉變為知識庫和上下文資料的構建者,以及 AI 模型/演算法的設計使用者。這部分工作對個人能力要求較高,因為它需要充分考慮任務複雜度、資源依賴情況以及效果衡量方式。人機以何種比例、如何分工、如何協作,完全取決於第一個問題能否被解決、如何被解決,或以何種優雅的方式被解決。

問題 2。如前所述,目前的 AI 是通用模型,只能滿足人類的 “平均” 需求(如解答哪種藥物緩解頭痛),但無法滿足更普遍、更差異化的需求(如自主感知患者病情,直接將緩解頭痛的藥物送到患者口中)。人類的需求是複雜的、多變的、差異化的,需要被理解。一些高階情感需求(被尊重、被理解、被接納、被愛)目前只能透過人與人之間的連線來滿足。基於通用模型,設計滿足人類需求的軟體,填補人與通用模型之間的鴻溝,取決於通用人工智慧能力的可達範圍。我們如何想象未來 AI 能夠到達的位置,就應如何設想測試工程師如何驗證基於人工智慧的服務人類需求的符合程度。測試人員是連線二者的紐帶。人機以何種比例、如何分工、如何協作,完全取決於第二個問題能否被解決,或以何種優雅的方式被解決。

問題 3。如果第一和第二個問題都解決了,AI 就劃定了其邊界。下一階段,AI 的演算法或模型是否真的可以學習這個邊界內的所有知識,去生產一個實現沒有缺陷的系統呢?作為樂觀的測試從業者,我認為 AI 也是人設計的,人會犯錯,所以缺陷一定會產生。因而,測試工作仍然必要,其使命是驗證和確認 AI 設計生成的系統是否按照既定目標執行,儘管這個困難比問題 1 和 2 的總和還要大。而作為悲觀者,我又會認為 AI 終將進化到超越人類智慧,人類犯的錯誤也會被 AI 找到或修正。從這個意義上講,測試 AI 生成的軟體本身已經沒有價值,測試工作將不復存在。我會在悲觀和樂觀間不停地徘徊,並一直持續下去。


圖 9:AI 發展與測試相關的問題

問題 1 是目前 AI 落地應用的重要目標,每個組織內部都將進行技術和成本的博弈,最終以合適的方式實現原始技術架構和新型 AI 正規化的深度整合。整合是否按照期望的技術架構進行,需要測試中的 “驗證工程師” 完成(如大模型泛化後是否達到給定準確度)和支援(構造模型訓練所用知識庫)。整合後的新系統是否符合使用者期望,仍有賴於 “確認測試工程師” 的工作。問題 2 的解決程度,會進一步縮小了計算機模型到人類需求的路徑。驗證工程師需要進一步擴大測試範圍,涵蓋所有技術路徑(從人機介面到程式碼執行)。而此時,確認測試工程師需要開發測試策略,從人性的角度出發,保證系統符合每個使用者差異化、個性化的需求。這大致就是面向未來的智慧化測試工程師的大體定義。

AI 帶給測試領域的三個問題是否被解決,以何種程度被解決,這決定了未來人機協同的方式、和測試 “技” 和 “藝” 的全部構成。測試工作將會變得更富有挑戰,也更有意義。

  1. 繼往開來:測試技藝的持續探索

根據 Gartner 的技術成熟度曲線推測,我們可能在十到二十年後到達生成式 AI 發展的穩定期。未來軟體測試會發展成什麼樣?這取決於未來的 AI 能力邊界、它所能孕育出的新軟硬體形態,以及終端使用者如何感知和與系統互動。軟體測試是服務於這種新正規化下軟體工程的重要環節,並持續產生質量守護的價值。作為軟體測試從業人員,我們需要找到自身存在的必要性、定位以及與他人或 AI 的協同方式。測試作為一門技藝,對測試從業者提出了更高的要求——更好地適配、服務和滿足人類期望的 AI 發展方向。

最後,回到我們的起點,到底什麼是測試的技藝?我找到了屬於我的答案——我享受著測試技術外化的質量價值,更享受測試藝術內化的精神滿足。希望每位測試匠人在 AI 高速發展的時代下,都能找到屬於自己的測試技藝重塑之路。

張昊翔

2025/3/10

WeChat: hzhan11

QQ: 22321262

Email: xjtu_xiangxiang@hotmail.com

LinkedIn: https://www.linkedin.com/in/hzhan11/

Blog: https://home.51cto.com/space?type=4&uid=15403516

相關文章