• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      人工智能在軟件測試中的應(yīng)用研究

      2020-01-10 07:31:44彭玲武漢軟件工程職業(yè)學院
      消費導刊 2019年51期
      關(guān)鍵詞:源碼軟件測試覆蓋率

      彭玲 武漢軟件工程職業(yè)學院

      一、軟件測試的發(fā)展形勢

      目前整個軟件質(zhì)量工程環(huán)境與軟件開發(fā)的節(jié)奏越來越快,開發(fā)團隊受制于市場的競爭,需要持續(xù)構(gòu)建、持續(xù)集成、持續(xù)測試才能做到持續(xù)交付。開發(fā)關(guān)注的是構(gòu)建軟件產(chǎn)品的質(zhì)量,而測試是軟件質(zhì)量的守護者,可以幫助開發(fā)減少錯誤,提醒開發(fā)改進軟件質(zhì)量的方面。這樣就更好地幫助團隊構(gòu)建軟件質(zhì)量。

      軟件測試的效率已經(jīng)成為軟件行業(yè)關(guān)注的焦點。白盒測試、黑盒測試、手工測試、自動化測試,哪一個效率更高呢?自動化測試公認會帶來高效率。敏捷開發(fā)的回歸測試范圍越來越大,完全靠手工測試肯定不行。在一般情況下,軟件測試中回歸測試更適合自動化,即使在當今的測試環(huán)境下,仍然適用。調(diào)查顯示,2016、2017年,國內(nèi)自動化測試的使用情況并不樂觀,2017年大部分測試任務(wù)自動化的占比為32%,自動化測試超過一半的公司僅23%,具體情況如圖1所示。

      圖1 國內(nèi)自動化測試使用情況

      AI測試工具可以理解代碼,但是真正跟業(yè)務(wù)結(jié)合起來的數(shù)據(jù)也很少。就像機器學習有時候需要大量的數(shù)據(jù),但是真正基于業(yè)務(wù)的數(shù)據(jù)比較少,像開源里面有4TB的代碼,這些代碼更多的是可以做Java、C、Python這方面語言的學習,甚至可以做到Bug的自動定位、Bug的自動修復。但是如果真正結(jié)合業(yè)務(wù),發(fā)現(xiàn)與業(yè)務(wù)結(jié)合這個工具還是很弱的,需要靠人工進行測試。

      二、人工智能提升測試效率

      (一)人工智能助力測試自動化

      從軟件測試的發(fā)展歷程來看,早期是純手工測試,然后發(fā)展到依賴部分自動化工具完成自動化測試,到后來使用健壯的TA工具與開源框架集成,受到業(yè)界的歡迎和廣泛的應(yīng)用。云計算、大數(shù)據(jù)技術(shù)的推動下,構(gòu)建代碼庫,把所有的代碼整合到一起,可以更好的復用或者學習。公司在不斷嘗試將自己的開發(fā)環(huán)境和測試環(huán)境放到云平臺,這樣才能有更多的數(shù)據(jù)積累下來,為機器學習提供便利。當前基于云計算平臺和大數(shù)據(jù),基于生態(tài)鏈工具,可以更好地去完成自動化測試。未來,測試基于新的微服務(wù)架構(gòu)或者其他架構(gòu),可以真正做到自主、智能化。

      未來,在測試過程中,測試人員更多地完成分析、設(shè)計、建模、訓練模型的任務(wù)。所有的執(zhí)行測試的任務(wù)應(yīng)該交由測試工具去完成。例如,Google提供了TensorFlow(TF)或其他的一些平臺,針對自己的業(yè)務(wù),通過大量的分析來構(gòu)建對應(yīng)的模型。Google研發(fā)出了AlphaGo,然后加入人機交互智能生成了AlphaZero。人工智能或者機器人,或者未來的測試機器人是需要人去訓練的。相當于把測試工程師的經(jīng)驗和知識,對業(yè)務(wù)流程和業(yè)務(wù)場景的理解賦能給機器人。

      (二)人工智能在測試領(lǐng)域應(yīng)用的挑戰(zhàn)

      一般來講,人工智能包含計算智能、感知智能和認知智能,現(xiàn)在計算智能和感知智能發(fā)展相對比較成熟,但認知智能比較弱,要讓人工智能真正去理解人類業(yè)務(wù)還是比較困難的。需要人類構(gòu)建業(yè)務(wù)流程或者知識圖譜,讓機器去理解、學習。人工智能的應(yīng)用前期需要依賴很多的人力,沒有大量的數(shù)據(jù)標識,機器是不會去識別或者做預測的。所以有時候在某些相對落后地區(qū),有大量的人力從事數(shù)據(jù)標識的基礎(chǔ)性工作,這個過程會比較慢。

      人工智能的算法不一定要有數(shù)據(jù)標識,監(jiān)督學習需要標識數(shù)據(jù),還有無監(jiān)督學習、強化學習。目前無監(jiān)督的學習更受歡迎,有更好地應(yīng)用和發(fā)展。從單元測試擴展到系統(tǒng)測試,文字識別變成圖像識別來處理。在游戲行業(yè),騰訊、華為、網(wǎng)易等公司在測試上應(yīng)用AI能力方面有了良好應(yīng)用成果,與高清攝像頭結(jié)合,做到更多的場景識別、人工智能輔助決策,實時游戲控制等。

      借助AI生成測試數(shù)據(jù)、生成測試用例等方面,進行了一段時間的探索,并取得了一定的收獲。人工智能的應(yīng)用,使用全局和局部的智能優(yōu)化算法,如遺傳算法、粒子群優(yōu)化算法、蟻群優(yōu)化算法、爬山算法、禁忌搜索算法等。

      三、AI技術(shù)提高測試覆蓋率

      實踐表明,借助AI提高功能測試覆蓋率、源碼測試覆蓋率、回歸測試覆蓋率、系統(tǒng)非功能性測試覆蓋率等。同時,也可以借助關(guān)鍵字引導的搜索策略以提高測試覆蓋率。在回歸測試中利用AI,選擇40%測試用例集可以達到80%的測試覆蓋率,如圖2所示。

      圖2 回歸測試覆蓋率提升

      通過針對關(guān)鍵字索引提高測試覆蓋率。例如:Eggplant AI導入已有測試資產(chǎn)創(chuàng)建模型、使用智能算法選擇最佳測試集運行測試,基于模型算法能最大程度減少構(gòu)建與維護的成本。Eggplant AI的測試覆蓋率與以前相比,有很大提高,達到80%-90%。通過遺傳算法和對源碼“編譯時插樁”的方式自動生成測試用例。以探索二進制程序內(nèi)部新的執(zhí)行路徑,而且能夠不斷優(yōu)化執(zhí)行路徑,從而獲得高效的模糊測試策略。這樣可以大大提高源碼測試覆蓋率。

      當前人工智能能夠企及的地方,包括黑盒測試、單元測試、回歸測試等,但其結(jié)果只能作為測試員判斷的依據(jù)或是參考,起到一個輔助的作用。也就是說,AI還做不到“無人化”的參與效果。雖然并行計算與分布式計算給我們帶來了可靠的支撐,但目前的瓶頸是缺乏有效的建模。因此,未來的AI助力測試的理想狀態(tài)是結(jié)合MBT與AI,共同助力測試。

      猜你喜歡
      源碼軟件測試覆蓋率
      基于網(wǎng)頁源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲代碼生成方法
      基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測方法
      計算機時代(2023年6期)2023-06-15 17:49:09
      民政部等16部門:到2025年村級綜合服務(wù)設(shè)施覆蓋率超80%
      我國全面實施種業(yè)振興行動 農(nóng)作物良種覆蓋率超過96%
      企業(yè)如何保護源碼
      基于OBE的軟件測試課程教學改革探索
      計算機教育(2020年5期)2020-07-24 08:53:20
      EXCEL和VBA實現(xiàn)軟件測試記錄管理
      電子制作(2018年16期)2018-09-26 03:27:18
      關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
      電子測試(2017年15期)2017-12-18 07:19:20
      軟件測試工程化模型及應(yīng)用研究
      基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實驗課程改革
      計算機教育(2016年4期)2016-05-20 02:36:05
      肥东县| 平潭县| 旺苍县| 射洪县| 锡林浩特市| 邯郸县| 蒙山县| 镇安县| 封丘县| 肥城市| 平塘县| 昌黎县| 汤原县| 开封市| 兴安县| 县级市| 白玉县| 鹤山市| 台山市| 阿拉善左旗| 临颍县| 漯河市| 安新县| 白银市| 托克逊县| 化德县| 永宁县| 苍梧县| SHOW| 喜德县| 新安县| 临洮县| 凤城市| 波密县| 灵石县| 金昌市| 无锡市| 赣州市| 和静县| 安仁县| 宽甸|