国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

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

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

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

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

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

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

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

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

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

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

人工智能的算法不一定要有數(shù)據(jù)標(biāo)識,監(jiān)督學(xué)習(xí)需要標(biāo)識數(shù)據(jù),還有無監(jiān)督學(xué)習(xí)、強化學(xué)習(xí)。目前無監(jiān)督的學(xué)習(xí)更受歡迎,有更好地應(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)鍵字引導(dǎo)的搜索策略以提高測試覆蓋率。在回歸測試中利用AI,選擇40%測試用例集可以達到80%的測試覆蓋率,如圖2所示。

圖2 回歸測試覆蓋率提升

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

當(dāng)前人工智能能夠企及的地方,包括黑盒測試、單元測試、回歸測試等,但其結(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的軟件測試課程教學(xué)改革探索
計算機教育(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
崇仁县| 隆子县| 菏泽市| 尚志市| 和田县| 常德市| 灵石县| 吴川市| 天气| 公安县| 区。| 沙河市| 滕州市| 长沙市| 汝阳县| 定远县| 万安县| 安吉县| 陈巴尔虎旗| 五华县| 嘉禾县| 建阳市| 容城县| 阳东县| 北辰区| 犍为县| 明水县| 黎城县| 临邑县| 彩票| 突泉县| 大足县| 广平县| 南城县| 黑水县| 杂多县| 白沙| 张掖市| 丰台区| 新昌县| 博客|