一、背景
隨着人工智能技術的快速發展,尤其是在自然語言處理(NLP)、計算機視覺和生成對抗網絡(GANs)等領域,AIGC(AI Generated Content)得到了廣泛應用,這一技術的進步使得內容創作變得更加高效與多樣化,推動了各個行業的創新與變革。對於測試而言,基於AI進行測試用例生成也逐漸從夢想變成現實。
傳統問題
目前我們在編寫測試用例時,大部分依賴人工編寫,在實際編寫過程中主要存在以下問題:
- 用例編寫量大:傳統的測試用例編寫方法通常會耗費測試人員大量的時間和精力,編寫效率不高;
- 編寫顆粒度粗:由於時間有限,手工編寫測試用例可能存在部分測試場景的遺漏,如邊界場景、異常場景等;
- 維護成本高:不同測試同學編寫習慣不同,導致部分用例的可讀性較差,增加後期維護成本。
因此,藉助AI技術自動生成初步的測試用例,隨後由測試人員進行審核和優化,可以顯著縮短用例的準備時間,提高測試工作的效率。
目標
利用AI技術自動生成測試用例,縮短編寫測試用例的時間;
通過AI輔助生成測試用例,提升測試用例的覆蓋範圍和可讀性。
二、方案
技術實現
“RAG:指的是檢索增強生成(Retrieval-Augmented Generation),這是一種結合了信息檢索和文本生成的技術,通過檢索相關信息來增強生成模型的能力,提高生成文本的相關性和準確性。”
“LLM:指的是“大型語言模型”(Large Language Model),這些模型是基於深度學習技術構建的,專注於自然語言處理(NLP),能夠處理和生成自然語言文本數據。”
核心功能介紹
整個AI生成測試用例的功能主要分為三個方面:
- 用户輸入:提供AI對話框,可供用户從需求PRD中複製粘貼功能點,實現快速輸入;
- 測試點分析整合:提供智能提取測試點和專家經驗介入的能力,用户可以對AI生成的測試點進行靈活調整;
- 用例生成:基於調整好的測試點自動生成對應的測試用例,並可一鍵同步至平台,方便後續的管理和使用。
使用流程
需求輸入
1.選擇相關需求的用例模塊,點擊“AI生成用例”按鈕跳轉至AI生成用例交互頁面:
2.從需求PRD複製功能點,粘貼到輸入框併發送:
完善測試點
1.評估AI提取出的測試點,選擇可用的測試點並採納到左側的測試點列表中;
2.手動增/刪/改左側測試點列表中的測試點:
生成用例
1.點擊生成測試用例按鈕,等待測試用例生成;
2.測試用例生成成功後,可直接對生成的用例進行增/刪/改,點擊保存用例按鈕將生成的用例保存;點擊同步平台按鈕將生成的用例同步至用例平台:
3.用例同步至平台採用的增量同步方式,不會將平台已有的用例覆蓋。
三、探索實踐
實踐策略
我們制定了以上4種實踐策略,分別在A業務域和B業務域進行功能的試用,探索AI輔助生成測試用例的落地方案,具體包括以下內容:
“A業務域主要面向公司的客户服務團隊,包括一線客服、技術支持人員以及管理層等,提供了包括工單管理、實時聊天、知識庫和客户反饋分析等多種功能,以提升客户支持的效率和服務質量,確保客户始終能夠獲得優質的服務體驗。當前已上線的產品主要涉及Web端、PC端和APP端。
B業務域主要致力於運用產品、技術、數據等手段,全面提升公司的效率,該業務域的用户羣體涵蓋了公司各個部門的員工,規模量級龐大,涉及上萬名員工的日常工作需求,目前已上線的產品主要集中在Web端,包括項目管理、內部協同和溝通、辦公效率等多種功能。”
- 小範圍試點:分別在A業務域和B業務域內開展小範圍試點工作,評估AI生成測試用例的有效性和全面性,以滿足不同業務域的實際業務需求;
- 持續推進:採用“以點帶面”的策略,根據不同的業務場景和用户需求,分階段推進AI生成測試用例的應用,逐步擴大應用範圍,優化用户體驗,確保AI工具能夠適應多樣化的業務需求;
- 迭代覆盤:在試用過程中,定期進行迭代覆盤,通過收集迭代數據和用户反饋並分析,探討後續改進和優化的方向,並持續驗證優化效果;
- 多維度指標量化:制定準確度、覆蓋度、使用率等多個維度的評價指標,分析這些指標的變化趨勢,全面衡量AI生成測試用例的潛在表現,確保其能夠滿足日常使用需求。
交互標準
需求分類和預處理
不同複雜度的需求其用例生成效果存在差異,根據需求的複雜程度,建立簡單需求/複雜需求劃分標準,對比不同需求的用例生成效果,優先選取生成效果較好的簡單需求進行功能的使用。參考需求劃分標準如下:
簡單需求:研發資源<=7人日、測試資源<=1人日的需求
複雜需求:研發資源>=7人日、測試資源>=1人日的需求
其次,部分需求的PRD文檔存在功能點描述簡單、含糊不清等情況,直接複製這些功能點進行AI用例生成,用例生成的準確性和全面性都較差。因此,可以先對這種情況的輸入進行預處理,列舉出具體的功能點和預期結果,再輸入到AI進行測試用例生成,提升用例生成的效果,具體示例如下:
持續分批對話
AI生成用例時,可以分點輸入功能點,以生成更多、更詳細的測試點,包括一些邊界、異常場景等,提高採納率和覆蓋率。具體的對比效果如下:
- 全部功能點輸入:
- 功能點分點輸入:
專家經驗輸入
- 輸入命令自動調整測試點:目前平台支持用户輸入命令並結合上文信息對生成的測試點進行調整,在初始生成的測試點基礎上,輸入一些簡單的命令,例如“幫我拓展一下測試點X”、“合併測試點XX”等,優化AI生成測試點的生成效果。
- 手動調整測試點:目前AI生成的測試點無法做到完全覆蓋所有的功能點,可能存在生成的測試點不全或測試點描述不準確的情況,可以在AI生成的測試點基礎上,人工介入補充遺漏的測試點以及修改描述不準確的測試點,提升AI生成用例的效果。
關鍵項推進
量化生成效果
問題描述:AI生成的評價指標只有採納率,難以全面評估AI生成測試用例的具體效果。
解決方案:在已有采納率的基礎上,新增覆蓋率、需求使用率兩個評價指標,分別刻畫AI生成用例的實際覆蓋程度以及各域AI生成用例功能的具體使用情況,其具體計算公式如下:
- 需求使用率 = 使用AI生成用例的需求 / 子域總需求 * 100%(研發自測需求除外)
- 採納率 = 評估後採納用例 / AI生成用例 * 100%
- 覆蓋率 = 評估後採納用例 / 人工調整擴充後的總用例 * 100%
後續改進:目前仍然無法衡量具體的提效效果,後續會配合平台探究更多的評價數據和指標,例如單需求的用例生成時間、用例編寫理論提效時間等。
降低生成時長
問題描述:測試點較多時,AI生成測試用例時間太長,有時界面卡死,一直顯示正在生成中。
解決方案:更換新的AI,切換為GPT-4o-mini,優化了AI生成用例的時間,一般生成時間不超過1min;同時解決了因平台刷新機制導致的界面卡死無法實時刷新的問題。
提高生成精度
問題描述:AI生成的測試用例準確度較低,且存在較多重複用例。
解決方案:引入RAG技術,將業務域的歷史存量用例作為AI的背景知識庫信息,檢索生成更準確的測試用例。同一需求接入RAG前後的生成效果對比如下:
- 需求1:
接入RAG前:AI總結測試點5條,AI生成11條用例,採納8條用例,採納率:72%;
接入RAG後:AI總結測試點6條,AI生成14條用例,採納12條用例,採納率:85%;
接入RAG前:
接入RAG後:
- 需求2:
接入RAG前:AI總結測試點7條,AI生成23條用例,採納12條用例,採納率:52%;
接入RAG後:AI總結測試點8條,AI生成17條用例,採納16條用例,採納率:94%;
接入RAG前:
接入RAG後:
優化交互體驗
問題描述:目前用例平台所使用的AI自由prompt的能力太差,無法聯繫上文信息持續進行命令提示,優化所生成的測試點。
解決方案:平台對功能進行優化,修復了AI丟失上下文關聯的缺陷,支持自由prompt,AI能夠根據用户輸入命令結合上文信息對生成的測試點進行調整:
初始輸入:
輸入命令,結合上文信息拓展測試點:
四、實踐結論
在上述行動標準的實施和關鍵項推進的同時,我們對A業務域和B業務域持續多個迭代的AI生成測試用例數據進行了梳理整合,評估AI生成用例的目標達成情況 。
數據對比
迭代維度
- A業務域與B業務域1-6迭代的需求使用率、採納率、覆蓋率統計如下:
- A、B業務域各迭代需求使用率、採納率、覆蓋率的變化趨勢:
需求維度
- 簡單需求和複雜需求AI生成測試用例的採納率、覆蓋率,以及總體的使用人數、使用需求數的數據統計如下:
結論
通過分析對比需求維度和迭代維度的數據圖表,可以得出以下幾點結論:
- 效率提升明顯:目前對簡單需求使用AI生成用例的平均採納率和覆蓋率維持在較高水平,能夠覆蓋核心功能點和場景,測試同學只需要補充一些異常/非功能分析的用例即可,基本可以節約40%的用例編寫時間;
- 生成準確率高:AI生成測試用例的採納率提升尤為明顯,最近迭代兩域的採納率在90%以上,這表明AI生成的功能用例絕大部分都是可用且有效的;
- 生成全面性不足:各迭代的平均覆蓋率還有較大提升空間,AI生成的測試用例難以覆蓋全部業務場景,仍然需要測試人員手動補充覆蓋;
- 複雜需求生成效果差:A業務域在試用初期引入了一些較為複雜的需求進行實驗,導致採納率有所下降,從側面反映出目前AI在複雜需求上的用例生成效果還有待提升。
五、總結&規劃
總結
綜上所述,本文的探索成功實現了得物基於AIGC在質量保障方面的創新應用,通過這種AI生成測試用例的方式,我們能夠顯著降低人工編寫用例的時間和成本,提升測試用例的準確性和規範性。後續我們會不斷優化AI生成測試用例的功能,確保其能夠生成更準確的用例,覆蓋更廣的測試場景,在未來的測試工作中發揮更大的價值。
未來規劃
- AI生成準確性和全面性提升:針對數據對比結論所反映出的複雜需求採納率和覆蓋率偏低的問題,後續可以從以下兩個方向進行優化:
- 接入不同的AI對比用例生成效果,供用户自由切換選擇;
- 增加輸入途徑,充分結合技術文檔、需求評審、技術評審等渠道,提升用例生成的準確性和全面性。
- 研發自測需求功能推廣:研發同學可以使用AI快速生成可靠的測試用例,減少自測的時間和人力成本,讓研發能夠更專注於業務邏輯的開發,同時提升自測的有效性和全面性;
- 歷史存量用例相似度匹配檢索:分析歷史用例,計算相似度並進行匹配,以便生成新測試用例時推薦出最相關的存量用例,同時提供可視化界面,幫助測試人員直觀地查看和選擇存量相似用例,以提高用例的複用率;
- 支持多模態數據輸入:支持從不同類型的數據源(如文本、圖像、視頻等)獲取需求信息,增強AI生成測試用例的效果,生成與視覺交互相關的測試用例;
- 記錄用户操作持續反哺大模型:建立用户行為分析機制,記錄用户對AI生成用例的增刪改操作,分析用户的實際需求和偏好,利用用户的反饋數據來不斷訓練和優化模型,生成更貼合用户編寫習慣的用例,提升生成質量。
文 / 南瓜&齊
關注得物技術,每週更新技術乾貨
要是覺得文章對你有幫助的話,歡迎評論轉發點贊~
未經得物技術許可嚴禁轉載,否則依法追究法律責任。