任子恒 李昕昕 龔勛
摘要:針對(duì)人工智能的應(yīng)用于特點(diǎn)做出分析。認(rèn)為人工智能有著非常強(qiáng)大的功能以及良好的發(fā)展趨勢(shì),并在此基礎(chǔ)上展開(kāi)對(duì)人工智能在軟件測(cè)試領(lǐng)域應(yīng)用的討論。主要涉及了人工智能在軟件測(cè)試上應(yīng)用的方法以及特點(diǎn)與優(yōu)點(diǎn),并探討了目前人工智能在軟件測(cè)試領(lǐng)域所存在的問(wèn)題與挑戰(zhàn)。預(yù)測(cè)人工智能在軟件測(cè)試應(yīng)用上的發(fā)展趨勢(shì)。
關(guān)鍵詞: 人工智能;游戲測(cè)試;性能測(cè)試;兼容性測(cè)試;專家系統(tǒng)
中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)29-0218-02
1引言
人工智能作為當(dāng)下最熱門(mén)的新型前沿性技術(shù)科學(xué),被廣泛的應(yīng)用于各個(gè)行業(yè)。從眾所周知的AlphaGo,到我們的各種移動(dòng)智能終端,人工智能的應(yīng)用無(wú)處不在。軟件測(cè)試作為軟件工程質(zhì)量保證的一個(gè)重要環(huán)節(jié),從最初的手工測(cè)試到自動(dòng)化測(cè)試再到云測(cè)試,其智能化的腳步也越來(lái)越快。本文將針對(duì)人工智能在軟件測(cè)試領(lǐng)域的應(yīng)用現(xiàn)狀、前景以及面臨的挑戰(zhàn)進(jìn)行分析,并給出合理的建議。
2人工智 能與軟件測(cè)試
2.1 人工智能簡(jiǎn)述
人工智能是計(jì)算機(jī)學(xué)科的一個(gè)分支,是一門(mén)正在發(fā)展中的綜合性的前沿學(xué)科,它是研究人類智能活動(dòng)的規(guī)律,并用于模擬、延伸和擴(kuò)展人類智能的一門(mén)新的技術(shù)科學(xué),是在計(jì)算機(jī)、控制論、信息論、數(shù)學(xué)、心理學(xué)等多種學(xué)科相互綜合、相互滲透的基礎(chǔ)上發(fā)展 起來(lái)的一門(mén)新興邊緣學(xué)科[1]。目前,人工智能被實(shí)際應(yīng)用于計(jì)算、設(shè)計(jì)、醫(yī)療、安全等多個(gè)領(lǐng)域,可以出色的完成各種復(fù)雜的單一任務(wù)。上述應(yīng)用我們稱之為弱人工智能。
2.2軟件測(cè)試簡(jiǎn)述
軟件測(cè)試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼的最終審查, 是軟件質(zhì)量保證的關(guān)鍵步驟。 如果給軟件測(cè)試下定義,可以這樣講:軟件測(cè)試是為了發(fā) 現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。 或者說(shuō),軟件測(cè)試是根據(jù)軟件開(kāi) 發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè) 試用例(即輸入數(shù)據(jù)和預(yù)期的結(jié)果),并利用這些測(cè)試用例去 運(yùn)行程序,以發(fā)現(xiàn)錯(cuò)誤的過(guò)程[2,3]。通過(guò)需求分析與系統(tǒng)的功能實(shí)現(xiàn),由人或者機(jī)器來(lái)編寫(xiě)出特定的測(cè)試用例,以此為輸入數(shù)據(jù),執(zhí)行被測(cè)程序檢查的過(guò)程。傳統(tǒng)軟件測(cè)試通常是由人來(lái)執(zhí)行測(cè)試用例的編寫(xiě)、執(zhí)行、分析等各項(xiàng)工作,稱之為手工測(cè)試。隨著技術(shù)的發(fā)展,越來(lái)越多的自動(dòng)化測(cè)試工具可以更好的輔助人來(lái)完成上述工作。因此我們將利用自動(dòng)化測(cè)試工具進(jìn)行測(cè)試的過(guò)程稱之為自動(dòng)化測(cè)試。但是現(xiàn)階段的自動(dòng)化測(cè)試仍停留在輔助測(cè)試階段,無(wú)法獨(dú)立的完成某一完整的測(cè)試流程。因此我們希望引入人工智能幫助軟件測(cè)試更好的實(shí)現(xiàn)自動(dòng)化、智能化。
2.3人工智能在軟件測(cè)試中的運(yùn)用
在軟件測(cè)試整個(gè)過(guò)程中,測(cè)試用例起著決定性的作用。在以是為了發(fā)現(xiàn)錯(cuò)誤進(jìn)而執(zhí)行程序的軟件測(cè)試中,測(cè)試用例的編寫(xiě)是能否發(fā)現(xiàn)程序漏洞或錯(cuò)誤的關(guān)鍵。在以各種自動(dòng)化測(cè)試工具蓬勃發(fā)展的今天,除了簡(jiǎn)單的數(shù)據(jù)測(cè)試能夠靠電腦自動(dòng)生成來(lái)完成,復(fù)雜測(cè)試用例的編寫(xiě)仍舊由人作為主導(dǎo)。而自動(dòng)化測(cè)試工具只能實(shí)現(xiàn)自動(dòng)的將人所編寫(xiě)的測(cè)試用例輸出來(lái)執(zhí)行程序并得出執(zhí)行結(jié)果。作為人工智能在軟件測(cè)試中的應(yīng)用,其目的便是代替人來(lái)編寫(xiě)出更多的有效的測(cè)試用例,從而發(fā)現(xiàn)程序中的錯(cuò)誤?;诖耍覀兿Mㄟ^(guò)運(yùn)用機(jī)器學(xué)習(xí)的理論,由測(cè)試人員提供大量的輸入和輸出數(shù)據(jù)來(lái)訓(xùn)練AI,最終由AI學(xué)會(huì)根據(jù)特定需求去自動(dòng)生成測(cè)試用例、執(zhí)行測(cè)試,并對(duì)測(cè)試結(jié)果進(jìn)行分析。這將大大減少人工測(cè)試工作量,大幅提高工作效率。
目前人工智能已經(jīng)在軟件測(cè)試的某些特定領(lǐng)域有了實(shí)際應(yīng)用,比如游戲測(cè)試、性能能測(cè)試、兼容性測(cè)試等。
2.3.1人工智能在游戲領(lǐng)域的應(yīng)用
人工智能在游戲測(cè)試中,通常用于各種游戲分支情況的測(cè)試以及游戲數(shù)據(jù)的收集。例如,通過(guò)AI去創(chuàng)建不同的游戲角色,執(zhí)行不同的分支操作,來(lái)檢測(cè)游戲功能的正確性。這樣不僅可以大大減少測(cè)試人員對(duì)于游戲測(cè)試大量而重復(fù)的工作量,而且能夠做到在同一時(shí)間建立多個(gè)AI來(lái)進(jìn)行多個(gè)角色的活動(dòng),從而能夠?qū)崿F(xiàn)多人游戲的游戲測(cè)試,大大節(jié)約了成本。根據(jù)深度學(xué)習(xí)的理論,應(yīng)用了AI的游戲測(cè)試還可以利用AI在測(cè)試過(guò)程中不斷收集數(shù)據(jù)反復(fù)學(xué)習(xí)、更新,達(dá)到自我修正的目的。最終可以使游戲具有更完善的功能和更穩(wěn)定的效果。
2.3.2人工智能在大型工程中的應(yīng)用
除了常規(guī)的軟件測(cè)試以外,人工智能還可以應(yīng)用于大型工程項(xiàng)目的測(cè)試中。通過(guò)計(jì)算機(jī)龐大的計(jì)算能力以及精確性的特質(zhì),能夠大大的提高工程質(zhì)量,從而減少以人為主導(dǎo)所編寫(xiě)的測(cè)試用例的失誤與不精確性。例如在航天工程中,運(yùn)用專家系統(tǒng),來(lái)使AI具備大量的航天領(lǐng)域?qū)<宜降闹R(shí)與經(jīng)驗(yàn),從而使AI模擬航空專家來(lái)進(jìn)行測(cè)試用例的編寫(xiě)。避免因?yàn)闇y(cè)試人員專業(yè)知識(shí)不熟練所導(dǎo)致的各種問(wèn)題。
2.3.3人工智能在性能測(cè)試方面的應(yīng)用
軟件的性能包括很多內(nèi)容,如軟件對(duì)用戶操作的響應(yīng)時(shí)間、軟件長(zhǎng)時(shí)間連續(xù)運(yùn)行的穩(wěn)定性、軟件最多支持的并發(fā)用戶數(shù)、系統(tǒng)最大的業(yè)務(wù)處理量等。軟件性能受運(yùn)行環(huán)境、業(yè)務(wù)情況、用戶使用情況等多種因素的影響。軟件性能測(cè)試主要是通過(guò)自動(dòng)化的測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來(lái)確定系統(tǒng)的各項(xiàng)性能指標(biāo)而進(jìn)行的一種測(cè)試[4]。以移動(dòng)應(yīng)用性能為例,任何一款線上的移動(dòng)應(yīng)用,如果出現(xiàn)了性能問(wèn)題,例如應(yīng)用使用過(guò)程中的黑屏、閃退、無(wú)響應(yīng)、耗電等,都會(huì)導(dǎo)致大量的負(fù)面反饋,從而影響用戶的使用體驗(yàn),給廠家造成嚴(yán)重的損傷。
從性能測(cè)試的原理來(lái)看,任意一種性能測(cè)試,其實(shí)現(xiàn)原理均包括如下幾點(diǎn):
1) 用戶行為模擬;
2) 性能指標(biāo)監(jiān)控;
3) 性能調(diào)優(yōu)。
從上述幾點(diǎn)我們不難看出,由于性能測(cè)試通常是大數(shù)據(jù)量的反復(fù)、長(zhǎng)期測(cè)試,在人工審查方面,難免會(huì)出現(xiàn)錯(cuò)誤。結(jié)合人工智能的圖像識(shí)別與AI訓(xùn)練技術(shù)能夠更好的監(jiān)控和記錄的測(cè)試過(guò)程中的數(shù)據(jù)、表格及圖像,并且能夠快速的分析軟件中所存在的性能問(wèn)題以及程序缺陷。因此目前人工智能已經(jīng)在性能測(cè)試方面有了較多應(yīng)用,如騰訊的UPA(Unity Performance Analysis),就是一運(yùn)用人工智能中圖像識(shí)別技術(shù)以及深度學(xué)習(xí)技術(shù)的性能優(yōu)化工具。
2.3.4人工智能在兼容性方面的應(yīng)用
軟件兼容性測(cè)試主要是不同操作系統(tǒng)、不同數(shù)據(jù)庫(kù)和不同瀏覽器環(huán)境測(cè)試軟件兼容性。由于需要大量的不同類型的軟硬件環(huán)境,有關(guān)兼容性測(cè)試的實(shí)現(xiàn)往往依賴于相關(guān)的專業(yè)測(cè)試工具和云計(jì)算技術(shù)。以云計(jì)算技術(shù)下的云測(cè)試為例。兼容性測(cè)試是指利用云計(jì)算平臺(tái)的多種操作系統(tǒng)、多種數(shù)據(jù)庫(kù)和多種瀏覽器環(huán)境測(cè)試軟件兼容性[5]。與性能測(cè)試中人工智能的應(yīng)用大抵相同,相對(duì)于簡(jiǎn)單且需要在不同環(huán)境下執(zhí)行的相同的測(cè)試用例的編寫(xiě),人工智能更適合應(yīng)用于更加復(fù)雜的測(cè)試過(guò)程監(jiān)控以及結(jié)果分析上。例如通過(guò)計(jì)算機(jī)視覺(jué)和圖像處理,能夠?qū)崟r(shí)的監(jiān)控軟件在各個(gè)測(cè)試環(huán)境下的運(yùn)行情況,并且能夠及時(shí)的進(jìn)行反饋。通過(guò)2D識(shí)別引擎,如人像識(shí)別,文字識(shí)別,圖像識(shí)別等能夠快速而準(zhǔn)確的分離和篩選出不符合測(cè)試目的的測(cè)試環(huán)境,從而更好的完成兼容性的測(cè)試。
2.4 人工智能在軟件測(cè)試運(yùn)用上的挑戰(zhàn)
伴隨人工智能在軟件測(cè)試應(yīng)用上的研究的深入,研究人員們也面臨著諸多挑戰(zhàn)。
1) 智能技術(shù)的挑戰(zhàn):
要做到用人工智能完全替代人來(lái)進(jìn)行軟件測(cè)試,就需要人工智能具備強(qiáng)人工智能的基礎(chǔ)。而這一點(diǎn)在人工智能領(lǐng)域尚未解決。
2) 應(yīng)用范圍的局限:
由于現(xiàn)階段人工智能在軟件測(cè)試領(lǐng)域的應(yīng)用較為單一,因此無(wú)法將人工智能大范圍應(yīng)用于軟件測(cè)試的各個(gè)領(lǐng)域。
3) 測(cè)試成本的限制:
由于人工智能的應(yīng)用成本較高,很難被眾多測(cè)試廠商接受。
綜上所述,我們發(fā)現(xiàn)純智能測(cè)試在測(cè)試效率、測(cè)試數(shù)據(jù)分析以及測(cè)試成本等方面,相較于人工測(cè)試和混合測(cè)試的優(yōu)勢(shì)還不明顯。
3結(jié)語(yǔ)
隨著測(cè)試技術(shù)的不斷發(fā)展,人工智能已經(jīng)在軟件測(cè)試領(lǐng)域得以應(yīng)用。例如能夠自動(dòng)生成測(cè)試用例的系統(tǒng)bot。但是,要完全利用人工智來(lái)完成軟件測(cè)試卻還面臨諸多問(wèn)題與挑戰(zhàn)。作者認(rèn)為這將是以后很長(zhǎng)一段時(shí)間軟件測(cè)試的研究熱點(diǎn)。
參考文獻(xiàn):
[1] 馬少平,朱小燕.人工智能[M].北京:清華大學(xué)出版社,2004.
[2] [美]Jeffrey Richter.Windows 95 Windows NT3.5 高級(jí)編程技術(shù)[M]. 鄭全戰(zhàn),阿夏,譯.清華大學(xué)出版社,1998 年 2 月.
[3] 鄭人杰,殷人昆,陶永雷.實(shí)用軟件工程[M].2 版.清華大學(xué)出版社,1997.
[4] 韓明軍.軟件性能測(cè)試過(guò)程[J].信息技術(shù)與標(biāo)準(zhǔn)化,2007(11):41-43.
[5] 王偉軍,姜毅,劉蕤,等.云計(jì)算環(huán)境下軟件測(cè)試研究進(jìn)展[J].現(xiàn)代圖書(shū)情報(bào)技術(shù),2012(11):3-9.
【通聯(lián)編輯:唐一東】