摘要:隨著軟體迭代模式的不斷發展,測驗環節的自動化程度也得到了有效的、持續的提升,智能化測驗是結合AI演算法和測驗資料對測驗多個環節進行針對性的優化,
本文分享自華為云社區《【智能化測驗專題】智能化測驗技術探索》,作者: DevAI,
1. 發展階段
測驗是評估和驗證輸入是否能得到符合預期輸出的程序,測驗包含了軟體測驗和硬體測驗,測驗的早期萌芽是在20世紀50年代,主要是以除錯為主,驗證程式是否符合預期,1957年Charles Baker在《軟體測驗發展》中將測驗和除錯區分開來,提出了測驗的概念,指出測驗的目的不僅僅是驗證還需要確認軟體是否滿足要求,1983年IEEE首次召開了軟體測驗的技識訓議,并給出了軟體測驗的定義,IEEE定義的軟體測驗明確指出測驗的目的是為了檢驗軟體是否滿足需求,它是一門需要經過設計、開發和維護等完整階段的程序,隨著軟體研發模式從瀑布模式到敏捷模式再到DevOps(其各環節流程如圖1所示),DevOps注重Dev、Ops和QA(Tester)之間的協同合作,因此為了達到產品質量的持續改進,對測驗環節流程自動化與持續進行都提出了更高的要求,
圖1. DevOps流程
為了應對日益增長的產品需求與繁重的測驗任務,提升測驗質量和測驗效率,測驗團隊會把測驗專項能力向服務化能力轉型,建立自動化為主的測驗能力,測驗自動化的目的為了減少手工測驗和手工操作,如圖2所示,測驗自動化包括了自動化環境創建與部署、生成測驗資料、執行自動化測驗,生成測驗結果與日志,并對測驗相關結果進行自動化監控與分析,自動生成測驗報告,以便進行測驗定位失敗原因與快速修復,
圖2 測驗自動化流程
隨著人工智能、機器學習在各個領域的廣泛應用,以及應對日益增長的海量資料,自動化測驗工具結合AI技術生成了更可靠有效的測驗,改善了測驗分析的效率等,加速現有的自動化測驗需求和行程, 2018年Gil Tayar在文章《6 levels of AI-based testing: Have no fear, QA pros》說明了AI驅動測驗的6個自動化階段,如圖3所示,從開始的人工分析與設計自動化測驗,到更多環節結合AI輔助進行自動化測驗的執行、設計與決策,測驗自動化程度得到了有效的、持續的提升,
圖3 AI驅動測驗
2. 智能化測驗
智能化測驗主要指在持續追求提升研發交付效能下,人工智能技術在測驗領域的應用,其本質是結合了AI演算法和測驗資料對測驗多環節進行針對性的優化,具有更強的適應性和回應能力,智能化測驗是當前階段的熱門,正在越來越廣泛地深入到測驗各環節中,智能化測驗用例全周期涉及了三個主要關鍵階段,包括用例生成,用例執行,用例分析,華為云智能化測驗圍繞這三個階段,基于海量測驗資料和AI演算法輔助測驗人員進行測驗用例設計和用例生成、精準篩選測驗用例執行以及測驗資料智能分析,
2.1 智能測驗用例生成
測驗用例的生成當前主要靠人工設計,并且要求測驗人員具有一定的經驗和專業水平,隨著云化產品的功能日趨復雜、迭代周期不斷加快,完全基于經驗人工設計的介面測驗效率十分低下,因此需要設計一種測驗用例自動生成方法,
華為云在智能測驗用例生成的實踐方面,提出了基于介面檔案和現網流量資料的智能API測驗生成技術,實作了單介面與多介面業務場景的雙覆寫,做到真正幫助測驗人員提高作業效率,并有力保障了云化產品質量,該生成服務的具體流程如圖所示,其應用前景包括但不局限于以下幾個方面:
1)對于小規模測驗團隊或無專職測驗人員的全功能團隊或測驗小白,可基本實作少人參與或無人參與的無代碼化高度自動化Rest 介面正常場景級測驗用例生成,自動化執行和判定,
2) 對于有專職測驗人員、測驗專家的測驗團隊,可低成本提升測驗場景覆寫率、缺陷攔截效率,減少測驗設計投入,
3)可以正常場景API測驗基礎上實作例外場景 (可靠性測驗)和并發場景(性能壓力模型)的全自動化生成,完全替代現有介面fuzz測驗,實作介面全場景測驗無代碼化,
2.2 回歸測驗用例優選
在日常開發測驗活動中,面對專案版本的快速迭代,通常為避免引入缺陷和最早期發現盡可能多的缺陷,測驗人員需要在代碼小范圍變動時進行測驗用例的執行,同時,全量地對測驗用例進行執行消耗人力、時間成本過高,華為云智能精準回歸測驗用例挑選,在區分黑盒(代碼不可見)、白盒(代碼可見)不同模式的情況下,黑盒模式根據測驗用例歷史執行結果預測用例失敗率并進行排序,白盒模式通過挖掘代碼源檔案(函式)與測驗用例的關聯關系篩選測驗用例,精準挑選和排序缺陷探測比高的測驗用例進行,以最少的人力、時間成本,發現盡可能多的缺陷,

2.3 測驗資料智能分析定位
隨著軟體規模的持續增長以及產品迭代周期的不斷加快,自動化測驗用例的數量越來越大,自動化測驗工程中的失敗日志數量也越來越多,人工分析作業量大、時間成本高,測驗資料智能分析定位旨在結合智能化演算法根據失敗日志和相關測驗資料分析可能存在的產品問題,提升分析效率,當前華為云測驗智能分析是根據產品線測驗日志資料特征,在通用的日志預處理后,依照日志量采用不同方式進行特征工程,生成日志特征后,基于隨機森林、最近鄰、強化學習、神經網路等來做模型融合,進行失敗原因的定界與定位,

文章來自PaaS技術創新Lab,PaaS技術創新Lab隸屬于華為云,致力于綜合利用軟體分析、資料挖掘、機器學習等技術,為軟體研發人員提供下一代智能研發工具服務的核心引擎和智慧大腦,我們將聚焦軟體工程領域硬核能力,不斷構筑研發利器,持續交付高價值商業特性!加入我們,一起開創研發新“境界”!(詳情歡迎聯系 [email protected];[email protected])
PaaS技術創新Lab主頁鏈接:https://www.huaweicloud.com/lab/paas/home.html
參考文獻
[1] What is DevOps, https://orangematter.solarwinds.com/2022/03/21/what-is-devops/
[2] 華為云DevOps敏捷測驗之道, https://support.huaweicloud.com/reference-devcloud/devcloud_reference_040302.html
[3] 6 levels of AI-based testing: Have no fear, QA pros, https://techbeacon.com/app-dev-testing/6-levels-ai-based-testing-have-no-fear-qa-pros
[4] 基于語意感知SBST的API場景測驗智能生成, https://bbs.huaweicloud.com/blogs/349307
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/517591.html
標籤:其他
