公務(wù)員期刊網(wǎng) 論文中心 正文

人工智能下軟件測(cè)試發(fā)展與應(yīng)用

前言:想要寫(xiě)出一篇引人入勝的文章?我們特意為您整理了人工智能下軟件測(cè)試發(fā)展與應(yīng)用范文,希望能給你帶來(lái)靈感和參考,敬請(qǐng)閱讀。

人工智能下軟件測(cè)試發(fā)展與應(yīng)用

人工智能是指由人制造出來(lái)的能夠?qū)⒅挥腥怂邆涞闹腔郾憩F(xiàn)出來(lái)的機(jī)器。幾十年來(lái),軟件測(cè)試逐漸從小型化、本地化向智能化、復(fù)雜化的大規(guī)模開(kāi)發(fā)和維護(hù)轉(zhuǎn)變。因此本文提出研究人工智能時(shí)代下軟件測(cè)試的發(fā)展應(yīng)用,來(lái)對(duì)人工智能技術(shù)對(duì)軟件測(cè)試的影響進(jìn)行深入的研究,通過(guò)研究可以更加深刻的理解人工智能技術(shù)對(duì)軟件測(cè)試的發(fā)展的重大影響。

1研究背景和意義

1.1研究背景

軟件測(cè)試是一種用來(lái)描述、促進(jìn)和鑒定軟件的正確性、完整性、安全性和質(zhì)量的過(guò)程,它是一種將實(shí)際輸出與期望輸出進(jìn)行審核或者比較的過(guò)程,因此通過(guò)軟件測(cè)試可以更快速的發(fā)現(xiàn)軟件開(kāi)發(fā)過(guò)程中的各種問(wèn)題,幫助人們更加高效率的對(duì)軟件進(jìn)行完善,使得軟件的性能逐步提高?,F(xiàn)今社會(huì),隨著大數(shù)據(jù)和云計(jì)算的飛速發(fā)展,傳統(tǒng)的軟件測(cè)試技術(shù)很難支撐現(xiàn)代軟件的發(fā)展,軟件測(cè)試技術(shù)如今面對(duì)著新的挑戰(zhàn)。

1.2研究意義機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、NLP等

AI領(lǐng)域被認(rèn)為是我們身邊大多數(shù)技術(shù)的前沿。如今,隨著人工智能技術(shù)的發(fā)展,人工智能技術(shù)也開(kāi)始逐步成熟,人工智能技術(shù)逐步滲透到工業(yè)和生活中的各個(gè)領(lǐng)域,作為與程序密切相關(guān)的軟件測(cè)試,也深受人工智能技術(shù)的影響。

2軟件測(cè)試發(fā)展史

2.1程序員和測(cè)試人員的時(shí)代

在程序員和測(cè)試人員的時(shí)代,開(kāi)發(fā)和測(cè)試被視為相互獨(dú)立的活動(dòng),軟件準(zhǔn)備就緒后,將其傳遞給測(cè)試團(tuán)隊(duì)進(jìn)行驗(yàn)證。測(cè)試人員在需求分析階段的參與不是很積極,與業(yè)務(wù)涉眾的互動(dòng)也很有限。他們?cè)诤艽蟪潭壬弦蕾?lài)于通過(guò)設(shè)計(jì)和開(kāi)發(fā)過(guò)程中完成的文檔或從編寫(xiě)代碼的開(kāi)發(fā)人員那里收集的知識(shí)來(lái)獲取信息。因此在這個(gè)時(shí)代,測(cè)試人員缺乏對(duì)客戶(hù)需求和期望的洞察力,進(jìn)而導(dǎo)致軟件測(cè)試策略的有限性。

2.2探索和手動(dòng)測(cè)試的時(shí)代

90年代末期,各種軟件測(cè)試方法的問(wèn)世,例如探索性測(cè)試、敏捷測(cè)試等。在這個(gè)階段,軟件測(cè)試人員使用詳細(xì)的測(cè)試用例和測(cè)試計(jì)劃手動(dòng)進(jìn)行測(cè)試。探索性測(cè)試通過(guò)在測(cè)試章程范圍內(nèi)探索軟件,從而使測(cè)試人員可以自由地以本機(jī)方式測(cè)試軟件。并且在這個(gè)時(shí)期,軟件開(kāi)發(fā)工程量逐步增加,軟件開(kāi)發(fā)過(guò)程的廣泛而密集的增長(zhǎng)需要更全面的測(cè)試方法,敏捷測(cè)試采用的增量和迭代方法有助于實(shí)現(xiàn)此目標(biāo)。

2.3自動(dòng)化時(shí)代

隨著21世紀(jì)的到來(lái),更多的新方法浮出水面,從而徹底改造了軟件測(cè)試。在軟件開(kāi)發(fā)各個(gè)階段的質(zhì)量保證和控制都變得越來(lái)越重要,測(cè)試都被視為軟件開(kāi)發(fā)過(guò)程中不可或缺的一部分。自動(dòng)化使測(cè)試達(dá)到了完全不同的水平,通過(guò)大量的自動(dòng)化測(cè)試框架,使得測(cè)試人員能夠以更高的效率執(zhí)行其任務(wù)。云測(cè)試的出現(xiàn)可以幫助企業(yè)以更快的速度和更少的資金管理產(chǎn)品的測(cè)試。

2.4持續(xù)測(cè)試的時(shí)代

持續(xù)測(cè)試時(shí)期業(yè)務(wù)動(dòng)態(tài)開(kāi)始發(fā)生變化,客戶(hù)期望看到最終產(chǎn)品的模型,因此測(cè)試需求逐步增加?,F(xiàn)階段出現(xiàn)的改進(jìn)網(wǎng)絡(luò)基礎(chǔ)架構(gòu)為開(kāi)發(fā)和測(cè)試提供了高連接性,并提高了跨多個(gè)平臺(tái)的部署和測(cè)試的速度。DevOps和CI/CD的興起導(dǎo)致軟件整個(gè)開(kāi)發(fā)周期縮短,實(shí)時(shí)進(jìn)行仔細(xì)的風(fēng)險(xiǎn)評(píng)估成為了當(dāng)務(wù)之急。同時(shí),在軟件開(kāi)發(fā)生命周期的所有階段都必須進(jìn)行風(fēng)險(xiǎn)評(píng)估和處理,進(jìn)而降低軟件開(kāi)發(fā)的風(fēng)險(xiǎn)。為了跟上這些需求,需要不斷進(jìn)行測(cè)試以提高效率,人們開(kāi)始嘗試應(yīng)用人工智能技術(shù)進(jìn)行測(cè)試。

2.5人工智能時(shí)代

簡(jiǎn)而言之,人工智能是機(jī)器通過(guò)感知,理解和學(xué)習(xí)模仿人類(lèi)行為的能力。人工智能的算法是基于數(shù)據(jù)的預(yù)測(cè)分析,這也意味著AI測(cè)試在很大程度上取決于數(shù)據(jù)。當(dāng)今有許多可用AI驅(qū)動(dòng)的測(cè)試工具,可幫助進(jìn)行單元測(cè)試、API測(cè)試、UI測(cè)試等,其中最經(jīng)典的示例是可視化測(cè)試。

3人工智能技術(shù)在軟件測(cè)試中的應(yīng)用及挑戰(zhàn)

3.1AI系統(tǒng)的測(cè)試

隨著人工智能技術(shù)的發(fā)展,目前出現(xiàn)了各類(lèi)有關(guān)人工智能技術(shù)的應(yīng)用,然而由于人工智能技術(shù)是一個(gè)新興技術(shù),傳統(tǒng)的軟件測(cè)試無(wú)法與人工智能技術(shù)相匹配,因此在人工智能時(shí)代軟件測(cè)試技術(shù)的更新成為一件重要的事情。由于人工智能技術(shù)所開(kāi)發(fā)的系統(tǒng)其功能具有動(dòng)態(tài)性,并且開(kāi)發(fā)出來(lái)的系統(tǒng)擁有自我學(xué)習(xí)的能力,因此在對(duì)人工智能系統(tǒng)進(jìn)行測(cè)試時(shí),應(yīng)當(dāng)充分考慮時(shí)間范圍。人工智能系統(tǒng)的學(xué)習(xí)能力應(yīng)該是不斷增強(qiáng)、動(dòng)態(tài)性的,因此,針對(duì)此類(lèi)測(cè)試過(guò)程,需要大規(guī)模、長(zhǎng)時(shí)間的進(jìn)行測(cè)試。例如,Google的AlphaGo存在所使用的黑盒測(cè)試規(guī)模龐大、測(cè)試周期長(zhǎng),并且有自動(dòng)化測(cè)試難的問(wèn)題。然而AlphaGo是一種功能相對(duì)簡(jiǎn)單的系統(tǒng),人工智能技術(shù)所開(kāi)發(fā)的智能語(yǔ)音響應(yīng)系統(tǒng)在測(cè)試時(shí)會(huì)更加困難。智能語(yǔ)音響應(yīng)系統(tǒng)需要模擬不同的場(chǎng)景進(jìn)行測(cè)試,因此小規(guī)模的測(cè)試數(shù)據(jù)集,很難判斷系統(tǒng)的反應(yīng)能力,也無(wú)法對(duì)系統(tǒng)提出具有重大意義的改善。深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法通常被認(rèn)為是黑盒模型,但是隨著訓(xùn)練的數(shù)據(jù)集不同,其測(cè)試結(jié)果具有不穩(wěn)定的特性。因此針對(duì)深度神經(jīng)網(wǎng)絡(luò)測(cè)試需要大規(guī)模的數(shù)據(jù)集,這種測(cè)試方法與傳統(tǒng)的測(cè)試方法相差甚遠(yuǎn)。在傳統(tǒng)的測(cè)試過(guò)程中可以使用等價(jià)類(lèi)劃分和其他方法來(lái)減小所需測(cè)試的樣本規(guī)模,但是對(duì)于人工智能系統(tǒng)來(lái)說(shuō),必須依賴(lài)于大量的數(shù)據(jù)才可以達(dá)到測(cè)試的效果。

3.2大數(shù)據(jù)的測(cè)試

大數(shù)據(jù)的測(cè)試并不比人工智能系統(tǒng)測(cè)試容易,其很難確定判斷其測(cè)試預(yù)測(cè)測(cè)試結(jié)果的標(biāo)準(zhǔn),因?yàn)闊o(wú)法對(duì)數(shù)據(jù)處理結(jié)果的大小進(jìn)行判定。在數(shù)據(jù)收集、存儲(chǔ)、檢索和分析之后,軟件測(cè)試人員需要開(kāi)發(fā)適當(dāng)?shù)墓ぞ咭詮拇笕萘俊⒍鄻有?、快速變化和?shí)時(shí)表征方面對(duì)數(shù)據(jù)的一致性和完整性進(jìn)行校驗(yàn)。

3.3云服務(wù)測(cè)試

現(xiàn)階段云服務(wù)主要包括私有云、公共云、混合云和各種其他形式的云,云服務(wù)的測(cè)試面臨著復(fù)雜的系統(tǒng)架構(gòu)、復(fù)雜的配置、復(fù)雜的計(jì)算和存儲(chǔ)節(jié)點(diǎn),盡管可以通過(guò)使用兩個(gè)或三個(gè)的組合來(lái)減少組合的數(shù)量,但是這種方法覆蓋率相對(duì)較低,并且在云服務(wù)的測(cè)試中存在著較高的風(fēng)險(xiǎn)。同時(shí),云服務(wù)的性能測(cè)試也非常困難,主要包括云質(zhì)量壓力模擬需要承擔(dān)較高的成本,甚至花費(fèi)大量的資金也無(wú)法對(duì)測(cè)試進(jìn)行模擬。而且,云服務(wù)作為新興的技術(shù),傳統(tǒng)的測(cè)試工具很難與計(jì)算機(jī)平臺(tái)的云性能測(cè)試相匹配。

3.4區(qū)塊鏈測(cè)試

區(qū)塊鏈主要包括公共網(wǎng)絡(luò)、私有鏈和聯(lián)盟網(wǎng)絡(luò)等不同類(lèi)型的網(wǎng)絡(luò),這些網(wǎng)絡(luò)在許多方面都大有不同,例如在區(qū)塊鏈的管理、使用者的用戶(hù)身份驗(yàn)證、區(qū)塊鏈的節(jié)點(diǎn)數(shù)、網(wǎng)絡(luò)的共識(shí)機(jī)制和智能合約等方面。因此,不同的區(qū)塊鏈面臨的測(cè)試挑戰(zhàn)也是不同的。同時(shí)區(qū)塊鏈也存在一些共性的的挑戰(zhàn),如安全測(cè)試非常困難。安全始終是矛與盾的問(wèn)題,現(xiàn)階段不存在絕對(duì)受保護(hù)的技術(shù)、系統(tǒng)或平臺(tái),因此對(duì)于區(qū)塊鏈來(lái)說(shuō),很難對(duì)其安全質(zhì)量進(jìn)行測(cè)試。同時(shí)區(qū)塊鏈還包括基礎(chǔ)結(jié)構(gòu)安全性、加密算法保護(hù)、網(wǎng)絡(luò)協(xié)議保護(hù)、共識(shí)機(jī)制安全性和合同安全性等合同安全性又包括身份驗(yàn)證和身份驗(yàn)證。而且區(qū)塊鏈擁有眾多的網(wǎng)絡(luò)節(jié)點(diǎn),對(duì)于區(qū)塊鏈的測(cè)試不僅僅只是某個(gè)區(qū)塊鏈節(jié)點(diǎn)。

3.5物聯(lián)網(wǎng)測(cè)試

在工業(yè)4.0和5G時(shí)代,網(wǎng)絡(luò)成為人們生活中不可缺少的東西。物聯(lián)網(wǎng)是指萬(wàn)物互聯(lián),它不僅僅只是將計(jì)算機(jī)相連接,還包括工業(yè)設(shè)備、家用電器等,物聯(lián)網(wǎng)旨在讓每一個(gè)物品等能夠連接到網(wǎng)絡(luò)。然而網(wǎng)絡(luò)的融合需要?jiǎng)?chuàng)建一個(gè)更大的系統(tǒng),因此這也給軟件測(cè)試帶來(lái)新的挑戰(zhàn)。同時(shí)物聯(lián)網(wǎng)需要更多的物理設(shè)備才可以進(jìn)行測(cè)試,這會(huì)耗費(fèi)大量的時(shí)間和精力。其次物聯(lián)網(wǎng)系統(tǒng)需要具有實(shí)時(shí)性,物聯(lián)網(wǎng)設(shè)備對(duì)時(shí)間十分的敏感,它需要實(shí)時(shí)數(shù)據(jù)收集,并且需要實(shí)同步數(shù)據(jù)的傳輸。此外,物聯(lián)網(wǎng)測(cè)試還面臨著檢查系統(tǒng)規(guī)模、可伸縮性、協(xié)作感知、大數(shù)據(jù)處理性能和智能特性等挑戰(zhàn)。

4應(yīng)用人工智能技術(shù)的軟件測(cè)試

4.1測(cè)試規(guī)范和測(cè)試套件細(xì)化

在開(kāi)源開(kāi)發(fā)或軟件進(jìn)化的背景下,開(kāi)發(fā)人員經(jīng)常面對(duì)開(kāi)發(fā)時(shí)沒(méi)有明顯理由的測(cè)試套件,這些測(cè)試套件可能需要增加或改進(jìn)以確保足夠的可靠性,甚至需要減少以滿(mǎn)足緊迫的截止日期,我們稱(chēng)這個(gè)過(guò)程為測(cè)試規(guī)范和測(cè)試套件的重新設(shè)計(jì)。同時(shí)在實(shí)踐中,測(cè)試規(guī)范可能一開(kāi)始就不存在,尤其是如果沒(méi)有使用黑盒策略來(lái)識(shí)別測(cè)試用例的情況。在這種情況下,測(cè)試規(guī)范必須被逆向工程或者從高級(jí)系統(tǒng)規(guī)范創(chuàng)建。因此,軟件測(cè)試重要的是提供方法和工具支持,幫助人們理解測(cè)試套件的局限性及其可能的冗余,以便能夠以經(jīng)濟(jì)高效的方式對(duì)其進(jìn)行改進(jìn)。因此,基于機(jī)器學(xué)習(xí)的方法可以解決黑盒測(cè)試中的這個(gè)問(wèn)題。

4.2調(diào)試、故障定位

使用機(jī)器學(xué)習(xí)來(lái)識(shí)別可疑語(yǔ)句,如測(cè)試期間觀察到的相關(guān)故障,這可在調(diào)試期間幫助故障定位。RUBAR技術(shù)解決了軟件測(cè)試的主要缺陷,但該方法難以處理多個(gè)故障的存在,因?yàn)樗[含地假設(shè)失敗的測(cè)試用例執(zhí)行相同的故障。同時(shí)使用C4.5決策樹(shù)來(lái)學(xué)習(xí)各種基于測(cè)試用例輸入和輸出信息的故障條件,在相似條件下執(zhí)行的失敗測(cè)試用例被認(rèn)為是由于相同的錯(cuò)誤而失敗,如果語(yǔ)句被在相似條件下執(zhí)行的大量失敗測(cè)試用例覆蓋,那么它們就被認(rèn)為是需要重點(diǎn)關(guān)注的。同時(shí),由C4.5決策樹(shù)建模的故障條件可以準(zhǔn)確預(yù)測(cè)故障,因此可以用于幫助調(diào)試,由該樹(shù)建模的故障條件總體上準(zhǔn)確描述了實(shí)際故障條件。

4.3風(fēng)險(xiǎn)驅(qū)動(dòng)測(cè)試

無(wú)論采用何種測(cè)試策略,實(shí)際上很少有足夠的人力資源和時(shí)間來(lái)徹底測(cè)試系統(tǒng)的每個(gè)部分,達(dá)到令人滿(mǎn)意的程度。測(cè)試團(tuán)隊(duì)必須集中精力并優(yōu)先考慮他們的測(cè)試工作,通常這是通過(guò)分析與功能或系統(tǒng)組件相關(guān)的“風(fēng)險(xiǎn)”來(lái)完成的,這取決于測(cè)試級(jí)別。風(fēng)險(xiǎn)通常被定義為故障概率和它們可能造成損害的組合,目前軟件測(cè)試中有各種各樣的方法來(lái)解決這個(gè)問(wèn)題,構(gòu)建預(yù)測(cè)文件或類(lèi)中錯(cuò)誤位置的模型是一個(gè)可行的方案。在許多利用機(jī)器學(xué)習(xí)算法訓(xùn)練的模型中,通常不需要與統(tǒng)計(jì)模型相關(guān)聯(lián)的嚴(yán)格假設(shè)類(lèi)型,對(duì)于實(shí)踐者來(lái)說(shuō)更容易解釋和理解。人們也越來(lái)越認(rèn)識(shí)到要獲得合理準(zhǔn)確的預(yù)測(cè)模型,還需要考慮其他因素。盡管在軟件測(cè)試中輸入使用的數(shù)據(jù)各不相同,但它通常包括組件的結(jié)構(gòu)復(fù)雜性度量、來(lái)自最近發(fā)布的組件變更信息、與組件相關(guān)聯(lián)的歷史數(shù)據(jù),以及開(kāi)發(fā)人員關(guān)于例如他們對(duì)被變更的系統(tǒng)的體驗(yàn)的信息。因此一旦開(kāi)發(fā)了故障預(yù)測(cè)模型,就可以根據(jù)系統(tǒng)組件包含故障的可能性對(duì)它們進(jìn)行排序,結(jié)果也可以用樹(shù)形圖更容易地可視化。并且從經(jīng)濟(jì)的角度出發(fā),建立和利用故障預(yù)測(cè)模型也具有很高的經(jīng)濟(jì)效應(yīng)。

4.4測(cè)試預(yù)言

測(cè)試預(yù)言的自動(dòng)化可能是軟件測(cè)試中最困難的問(wèn)題之一,雖然沒(méi)有普遍適用的自動(dòng)化測(cè)試預(yù)言的解決方案,但是在很多情況下機(jī)器學(xué)習(xí)可以提供幫助。例如,在圖像和語(yǔ)音處理領(lǐng)域有許多這樣的情況。圖像分割是從圖像中提取感興趣的特定結(jié)構(gòu)的行為,為了評(píng)估圖像分割算法花費(fèi)了大量的時(shí)間和精力,卻并不能提供足夠準(zhǔn)確的結(jié)果,技術(shù)專(zhuān)家需要修改算法并重新運(yùn)行整個(gè)測(cè)試套件來(lái)驗(yàn)證它。該過(guò)程大多是手工完成的,因此非常耗時(shí),也需要可靠的專(zhuān)家在場(chǎng)。在初始學(xué)習(xí)階段,使用機(jī)器學(xué)習(xí)算法來(lái)學(xué)習(xí)一個(gè)模型,一旦學(xué)習(xí)了有效的機(jī)器學(xué)習(xí)模型,由測(cè)試中圖像分割算法的任何新版本產(chǎn)生的分割將自動(dòng)認(rèn)定其正確地性,此時(shí)也不需要任何人工專(zhuān)家的干預(yù),所以在分割的重新測(cè)試期間可以獲得大量時(shí)間和人工的節(jié)省。在人工智能時(shí)代,作為軟件工程師所面臨問(wèn)題的工程特性,例如部分定義和不明確的應(yīng)用領(lǐng)域,具有多個(gè)相互競(jìng)爭(zhēng)、相互沖突和不斷變化的目標(biāo),正把我們從完美的烏托邦拖向更現(xiàn)實(shí)的工程世界。當(dāng)代的軟件性質(zhì)變化迫使我們改變開(kāi)發(fā)和部署測(cè)試技術(shù)。人工智能技術(shù)被證明非常適合這個(gè)不斷變化的是時(shí)代。本文通過(guò)研究人工智能時(shí)代下軟件測(cè)試的發(fā)展與應(yīng)用,對(duì)人工智能技術(shù)對(duì)軟件測(cè)試的影響進(jìn)行深入的研究,通過(guò)對(duì)人工智能時(shí)代下軟件測(cè)試得研究現(xiàn)狀、軟件測(cè)試發(fā)展史、人工智能技術(shù)在軟件測(cè)試中的應(yīng)用及挑戰(zhàn)、應(yīng)用人工智能技術(shù)的軟件測(cè)試以及軟件測(cè)試的未來(lái)發(fā)展等進(jìn)行論述,更加深刻的理解人工智能技術(shù)對(duì)軟件測(cè)試的發(fā)展的重大影響。

作者:胡中奇 植賜佳 單位:工業(yè)和信息化部 電子第五研究所

相關(guān)熱門(mén)標(biāo)簽