AI技術(shù)在軟件測(cè)試領(lǐng)域的應(yīng)用比軟件開(kāi)發(fā)早。早在上個(gè)世紀(jì)七、八十年代,軟件測(cè)試就開(kāi)始應(yīng)用采用遺傳算法生成測(cè)試數(shù)據(jù),到九十年代,其研究和應(yīng)用逐漸增多,從單元測(cè)試、接口測(cè)試到GUI的系統(tǒng)測(cè)試,提供自動(dòng)化的測(cè)試用例生成、自動(dòng)化的測(cè)試執(zhí)行和評(píng)估等功能,取得了不少成功的實(shí)例,幫助研發(fā)團(tuán)隊(duì)節(jié)省了大量時(shí)間和成本,提高了測(cè)試的質(zhì)量和可靠性。
1. 單元測(cè)試中的應(yīng)用AI:AI技術(shù)可以幫助自動(dòng)生成單元測(cè)試用例。通過(guò)使用機(jī)器學(xué)習(xí)和符號(hào)執(zhí)行等技術(shù),AI算法可以分析代碼和程序的結(jié)構(gòu)、邏輯,AI算法可以自動(dòng)識(shí)別潛在的邊界條件、異常情況和路徑覆蓋需求,并生成相應(yīng)的測(cè)試用例自動(dòng)生成覆蓋率較高的單元測(cè)試用例,從而提高單元測(cè)試的效率和準(zhǔn)確性。例如智能測(cè)試工具evoSuite就是其中的一個(gè)代表,國(guó)內(nèi)也有公司推出智能單元測(cè)試工具:smartUnit。
除了開(kāi)源的evoSuite,Microsoft開(kāi)發(fā)了一個(gè)名為SAGE的自動(dòng)化測(cè)試工具,它使用了AI技術(shù)來(lái)生成和執(zhí)行單元測(cè)試用例。SAGE能夠自動(dòng)分析代碼和執(zhí)行路徑,生成具有高覆蓋率的測(cè)試用例,并發(fā)現(xiàn)潛在的錯(cuò)誤和異常。
大模型推出之后,AI賦能單元測(cè)試,其能力有了明顯的提升,根據(jù)實(shí)驗(yàn)評(píng)測(cè)結(jié)果:ChatGPT 生成測(cè)試的覆蓋率與人工編寫(xiě)的測(cè)試相接近,并高于現(xiàn)有的測(cè)試生成技術(shù);而且ChatGPT 生成的測(cè)試具有良好的可讀性,與人工編寫(xiě)的測(cè)試相比具有相近的可讀性水平(詳見(jiàn)論文:No More Manual Tests? Evaluating and ImprovingChatGPT for Unit Test Generation)。但受Test Oracle制約,其生成腳本在執(zhí)行時(shí)容易出錯(cuò),主要由于ChatGPT生成的錯(cuò)誤斷言語(yǔ)句導(dǎo)致的。加上人工檢查,容易修正斷言的問(wèn)題。
2. 接口測(cè)試中應(yīng)用AI,我們可以通過(guò)使用機(jī)器學(xué)習(xí)和模型驅(qū)動(dòng)測(cè)試等技術(shù),AI算法可以分析系統(tǒng)的結(jié)構(gòu)和接口,自動(dòng)生成集成測(cè)試用例,并自動(dòng)執(zhí)行和評(píng)估測(cè)試結(jié)果,從而提高集成測(cè)試的效率和覆蓋率。也可以借助NLP技術(shù),分析接口測(cè)試文檔,從而生成接口測(cè)試數(shù)據(jù),從而高效、全自動(dòng)地完成接口測(cè)試。
3. GUI系統(tǒng)測(cè)試中的應(yīng)用AI:通過(guò)使用圖像識(shí)別和自然語(yǔ)言處理等技術(shù),AI算法可以自動(dòng)分析和識(shí)別GUI界面的元素和操作,自動(dòng)生成測(cè)試用例,并自動(dòng)執(zhí)行和評(píng)估測(cè)試結(jié)果,從而提高GUI系統(tǒng)測(cè)試的效率和準(zhǔn)確性。
之前,智能模糊測(cè)試工具也具有代表性,如Facebook(Meta)的Sapienz就是基于搜索的“遺傳算法”(GA)來(lái)實(shí)現(xiàn)的,只是指導(dǎo)GA算法進(jìn)化的適度函數(shù)(fitness function)非常復(fù)雜:有多個(gè)目標(biāo),由“帕累托最優(yōu)”(Pareto optimality)交織在一起,每一次成功的進(jìn)化都必須實(shí)現(xiàn)這些目標(biāo),效果不錯(cuò),但不能用在功能測(cè)試上,而是穩(wěn)定性測(cè)試上。
之后,深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)技術(shù)在GUI測(cè)試中的應(yīng)用得到了廣泛關(guān)注,我們可以使用深度學(xué)習(xí)模型來(lái)分析GUI界面的特征和行為,生成測(cè)試用例,檢測(cè)異常和錯(cuò)誤,并優(yōu)化測(cè)試過(guò)程;我們使用強(qiáng)化學(xué)習(xí)算法來(lái)學(xué)習(xí)最佳的用戶(hù)交互策略,從而自動(dòng)生成各種用戶(hù)交互和操作序列,以測(cè)試GUI應(yīng)用程序的各種功能和用戶(hù)體驗(yàn),以最大化測(cè)試的效果和覆蓋率。
大模型發(fā)布之后,軟件測(cè)試的智能化明顯得到提升,想象空間迅速擴(kuò)大。
例如,我自己親自嘗試用GPT完成驗(yàn)收標(biāo)準(zhǔn)、測(cè)試用例生成等工作,詳情見(jiàn):又一次被震驚:從生成和細(xì)化需求到應(yīng)用各種方法設(shè)計(jì)測(cè)試用例。這樣例子很多,最近,我看到一篇論文(Fill in the Blank- Context-aware Automated Text Input Generation for Mobile GUI Testing),是由中科院軟件所研究團(tuán)隊(duì)寫(xiě)的,他們借助GPT進(jìn)行Android的功能測(cè)試,開(kāi)發(fā)了基于大模型的測(cè)試工具GPTDroid,在這216個(gè)應(yīng)用程序中,發(fā)現(xiàn)了135個(gè)漏洞,涉及115個(gè)應(yīng)用程序。其中,48個(gè)漏洞涉及39個(gè)應(yīng)用程序是新發(fā)現(xiàn)的。令人更為關(guān)注的是,這些新的漏洞并未被之前的靜態(tài)分析工具所發(fā)現(xiàn)。這48個(gè)漏洞提交給開(kāi)發(fā)人員,他們已修復(fù)了其中的31個(gè),確認(rèn)存在的有17個(gè),但沒(méi)有一個(gè)被拒絕。這進(jìn)一步證明GPT的能力是最強(qiáng)的。
審核編輯:劉清
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4819瀏覽量
106066 -
GUI
+關(guān)注
關(guān)注
3文章
688瀏覽量
42369 -
ai技術(shù)
+關(guān)注
關(guān)注
1文章
1311瀏覽量
25478 -
nlp
+關(guān)注
關(guān)注
1文章
491瀏覽量
23045 -
ChatGPT
+關(guān)注
關(guān)注
29文章
1595瀏覽量
9794
原文標(biāo)題:AIGC時(shí)代,軟件測(cè)試智能化到底會(huì)怎樣?
文章出處:【微信號(hào):軟件質(zhì)量報(bào)道,微信公眾號(hào):軟件質(zhì)量報(bào)道】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
突破傳統(tǒng)桎梏,PPEC Workbench 開(kāi)啟電源智能化設(shè)計(jì)新路徑
LCR測(cè)試儀如何實(shí)現(xiàn)智能化與AI融合

軟通動(dòng)力助力軟件智能化領(lǐng)域標(biāo)準(zhǔn)化建設(shè)邁上新臺(tái)階
為“下半場(chǎng)智能化”的軟件性能保駕護(hù)航

評(píng)論