王益亮 劉思杙 謝勇 袁強(qiáng)
(1.國(guó)網(wǎng)四川省電力公司技能培訓(xùn)中心 四川省成都市 610000)
(2.四川科銳得實(shí)業(yè)集團(tuán)有限公司青羊分公司 四川省成都市 610000)
在移動(dòng)互聯(lián)網(wǎng)時(shí)代下,人工智能、大數(shù)據(jù)、物聯(lián)網(wǎng)等信息技術(shù)的發(fā)展對(duì)軟件測(cè)評(píng)提出了新要求。當(dāng)前隨著企業(yè)信息化的不斷升化,以及智能信息集成技術(shù)的不斷發(fā)展,公司業(yè)務(wù)與信息系統(tǒng)不斷融合,公司的信息化應(yīng)用系統(tǒng)規(guī)模越來(lái)越大,僅依靠傳統(tǒng)的模式已遠(yuǎn)遠(yuǎn)無(wú)法滿足評(píng)測(cè)需求。信息系統(tǒng)軟件對(duì)支撐公司業(yè)務(wù)的正常、高效運(yùn)營(yíng)起到至關(guān)重要的作用。當(dāng)前在信息化建設(shè)過(guò)程中,信息系統(tǒng)評(píng)測(cè)中心通常采用手工方式,效率低、質(zhì)量差,傳統(tǒng)測(cè)評(píng)模式在對(duì)代碼進(jìn)行自動(dòng)分析和缺陷查找等審查工作速率上仍需優(yōu)化,同時(shí)缺乏對(duì)信息化應(yīng)用系統(tǒng)的架構(gòu)的有效檢測(cè),調(diào)試耗時(shí)周期相對(duì)較長(zhǎng),較難滿足時(shí)效性強(qiáng)的測(cè)試需求以及可靠性測(cè)試和安全測(cè)試等要求。
傳統(tǒng)軟件評(píng)測(cè)模式的固化、手工化以及中心化等特性制約了測(cè)評(píng)周期的時(shí)效性與空間性,難以適應(yīng)當(dāng)前智能、快速、自動(dòng)等人工智能時(shí)代下的測(cè)評(píng)需求。具體來(lái)看:
(1)黑盒測(cè)試。將被測(cè)軟件看作為黑盒子,在不考慮盒子內(nèi)結(jié)構(gòu)的情況下,重點(diǎn)關(guān)注軟件的輸入數(shù)據(jù)和輸出結(jié)果,即只檢查程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,程序功能是否按需求規(guī)格的規(guī)定使用。只關(guān)心整個(gè)軟件系統(tǒng)的邊界,不關(guān)心軟件系統(tǒng)內(nèi)部以及各個(gè)模塊之間協(xié)作關(guān)系。
(2)白盒測(cè)試。類比黑盒測(cè)試來(lái)看,白盒測(cè)試指的是把盒蓋打開(kāi),去探究?jī)?nèi)部源代碼與程序結(jié)果。即按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照設(shè)計(jì)規(guī)格說(shuō)明規(guī)定正常進(jìn)行,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作。著重關(guān)心模塊內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。
(3)灰盒測(cè)試??衫斫鉃榛液袦y(cè)試介于黑盒測(cè)試與白盒測(cè)試之間,重點(diǎn)關(guān)注模塊之間的協(xié)作關(guān)系,關(guān)注輸出對(duì)于輸入的正確性,同時(shí)也關(guān)注內(nèi)部表現(xiàn)。但此類關(guān)注不象白盒那樣詳細(xì)、完整,只是通過(guò)一些表征性的現(xiàn)象、事件、標(biāo)志來(lái)判斷內(nèi)部的運(yùn)行狀態(tài),因此有時(shí)候會(huì)出現(xiàn)輸出為正確,內(nèi)部卻存在錯(cuò)誤的情況。傳統(tǒng)手工方式完成軟件的測(cè)試,費(fèi)時(shí)費(fèi)力,重復(fù)性的工作徒增工作成本。為解決以上問(wèn)題,優(yōu)化評(píng)測(cè)模式,進(jìn)一步加強(qiáng)信息系統(tǒng)的測(cè)試及建轉(zhuǎn)運(yùn)評(píng)價(jià)工作,提高軟件系統(tǒng)質(zhì)量,必須實(shí)現(xiàn)對(duì)軟件系統(tǒng)源代碼、軟件架構(gòu)、軟件功能、軟件性能、軟件安全進(jìn)行全方位的綜合檢測(cè),實(shí)現(xiàn)對(duì)各種測(cè)試引擎統(tǒng)一調(diào)度和部署,來(lái)自動(dòng)驗(yàn)證源代碼是否滿足規(guī)范性、安全性、可靠性、可維護(hù)性等指標(biāo),有效的發(fā)現(xiàn)系統(tǒng)架構(gòu)問(wèn)題,保障軟件系統(tǒng)安全穩(wěn)定可靠運(yùn)行,因此,我們探索出一種新型評(píng)測(cè)模式即基于云計(jì)算的信息系統(tǒng)評(píng)測(cè)模式。
當(dāng)前,隨著軟件規(guī)模的擴(kuò)大,傳統(tǒng)的測(cè)試方法越來(lái)越難以應(yīng)對(duì)日益增長(zhǎng)的測(cè)試需求。人工智能時(shí)代下,信息技術(shù)的高速發(fā)展推動(dòng)了軟件測(cè)試的改變,以往手工測(cè)試轉(zhuǎn)換成自動(dòng)化測(cè)試的難度大或成本高等問(wèn)題,借助云計(jì)算的信息系統(tǒng)評(píng)測(cè),通過(guò)自動(dòng)化測(cè)試工具可以編寫(xiě)測(cè)試腳本完成軟件的測(cè)試。云計(jì)算的信息評(píng)測(cè)模式智能高效,可極大提高軟件測(cè)試的效率,減輕測(cè)試人員的負(fù)擔(dān)。
如圖1所示,為了實(shí)現(xiàn)云計(jì)算的信息系統(tǒng)評(píng)測(cè)對(duì)軟件的全面的測(cè)試,按照四層的架構(gòu)來(lái)構(gòu)建總體結(jié)構(gòu)。從下向上,分別是平臺(tái)層、軟件技術(shù)服務(wù)層、統(tǒng)一用戶接口層、用戶層。
圖1:云計(jì)算的信息系統(tǒng)評(píng)測(cè)模式架構(gòu)圖
如平臺(tái)層包含統(tǒng)一測(cè)試平臺(tái)、軟件開(kāi)發(fā)環(huán)境與軟件測(cè)試環(huán)境三大部分,其中統(tǒng)一測(cè)試平臺(tái)中涵蓋安全測(cè)試引擎、靜態(tài)分析引擎、代碼度量分析引擎、可擴(kuò)展測(cè)試引擎以及架構(gòu)分析引擎等內(nèi)容。平臺(tái)層在硬件資源、網(wǎng)絡(luò)的基礎(chǔ)上建立軟件測(cè)試環(huán)境,與已有的軟件開(kāi)發(fā)環(huán)境,辦公內(nèi)網(wǎng)環(huán)境以及網(wǎng)絡(luò)設(shè)備集中管理環(huán)境、數(shù)據(jù)安全備份管理的環(huán)境等無(wú)縫集成。軟件測(cè)試環(huán)境中包括靜態(tài)測(cè)試環(huán)境、安全測(cè)試環(huán)境以及系統(tǒng)架構(gòu)測(cè)試環(huán)境等。軟件技術(shù)服務(wù)層是在平臺(tái)層上的軟件測(cè)試引擎(功能測(cè)試工具、性能測(cè)試工具、源代碼靜態(tài)分析工具、安全測(cè)試工具,代碼架構(gòu)測(cè)試工具、bug管理工具等)的基礎(chǔ)上提供綜合的測(cè)試能力,對(duì)被測(cè)對(duì)象提供測(cè)試服務(wù)。統(tǒng)一用戶接口層為測(cè)試的各階段功能提供統(tǒng)一的接口進(jìn)行管理、統(tǒng)計(jì)和報(bào)告。用戶層指所有的使用者,如測(cè)試人員、開(kāi)發(fā)人員、管理人員、驗(yàn)收人員等,合理充分的利用測(cè)試平臺(tái)的測(cè)試資源,保障軟件系統(tǒng)質(zhì)量。通過(guò)充分發(fā)揮云計(jì)算技術(shù)在信息系統(tǒng)測(cè)試中的作用,完成功能測(cè)試、非功能測(cè)試、安全性測(cè)試等軟件測(cè)試的全周期管理,以進(jìn)一步滿足評(píng)測(cè)要求?;谠朴?jì)算環(huán)境的測(cè)試平臺(tái)邏輯架構(gòu),各種軟件測(cè)試均可納入標(biāo)準(zhǔn)的測(cè)試流程,在統(tǒng)一的云測(cè)試工具平臺(tái)上實(shí)現(xiàn)。
傳統(tǒng)軟件評(píng)測(cè)多是基于固定服務(wù)器和環(huán)境下進(jìn)行黑白灰盒測(cè)試,多數(shù)公司的各種應(yīng)用架構(gòu)以B/S應(yīng)用為主。云計(jì)算的信息系統(tǒng)評(píng)測(cè)模式在繼承傳統(tǒng)測(cè)試技術(shù)的基礎(chǔ)上結(jié)合云計(jì)算整合基礎(chǔ)架構(gòu)管理服務(wù)器,同時(shí)結(jié)合云服務(wù)的虛擬動(dòng)態(tài)性和異構(gòu)分散性等特質(zhì),從資源服務(wù)、關(guān)聯(lián)屬性和任務(wù)狀態(tài)等方面利用云平臺(tái)進(jìn)行云服務(wù)的組合柔性管理,通過(guò)多個(gè)維度覆蓋和測(cè)度,提高任務(wù)需求的完成效率。云計(jì)算的信息評(píng)測(cè)集成靜態(tài)測(cè)試、架構(gòu)測(cè)試、安全測(cè)試等多種測(cè)試引擎,建立統(tǒng)一的自動(dòng)化測(cè)試環(huán)境,實(shí)現(xiàn)對(duì)信息系統(tǒng)軟件源代碼進(jìn)行有效的測(cè)試和管理。軟件測(cè)試本身以統(tǒng)一接口、統(tǒng)一表示方式實(shí)現(xiàn)為一種服務(wù),用戶通過(guò)訪問(wèn)這些服務(wù),實(shí)現(xiàn)軟件測(cè)試,而不用關(guān)注“測(cè)試”所使用的技術(shù)、運(yùn)行過(guò)程、實(shí)現(xiàn)方式等。而且云測(cè)試能夠?qū)崿F(xiàn)“測(cè)試資源”的虛擬化,云計(jì)算的虛擬化實(shí)現(xiàn)方式,為云計(jì)算信息測(cè)評(píng)的虛擬化提供了較大的便利,測(cè)試資源的虛擬化,使測(cè)試資源可以隨用戶的需求提供,動(dòng)態(tài)延展?;谠朴?jì)算的信息系統(tǒng)評(píng)測(cè)平臺(tái)系快速地搭建一套軟件測(cè)試環(huán)境,可以方便地為客戶提供安全測(cè)試與效率(性能)測(cè)試等服務(wù)。用戶要對(duì)某個(gè)軟件進(jìn)行測(cè)試,通過(guò)提交測(cè)試軟件(源代碼、可執(zhí)行文件,或者已經(jīng)部署好的系統(tǒng)),就可以訪問(wèn)云計(jì)算信息系統(tǒng)測(cè)評(píng)服務(wù),直接執(zhí)行測(cè)試,并獲得測(cè)試結(jié)果。
當(dāng)前信息系統(tǒng)應(yīng)用和場(chǎng)景領(lǐng)域繁多,測(cè)評(píng)工作需要模擬業(yè)務(wù)場(chǎng)景,模擬額定負(fù)載等等,相較傳統(tǒng)的黑盒、白盒、灰盒等評(píng)測(cè)模式云計(jì)算評(píng)測(cè)能在此基礎(chǔ)上更好地反應(yīng)真實(shí)環(huán)境下被測(cè)應(yīng)用的實(shí)際性能。云計(jì)算評(píng)測(cè)模式支持信息系統(tǒng)產(chǎn)品層面和系統(tǒng)層面上的測(cè)評(píng),可以對(duì)信息系統(tǒng)產(chǎn)品層面提供安全測(cè)評(píng)服務(wù)模式。信息系統(tǒng)層面的安全測(cè)評(píng)服務(wù)模式,涵蓋信息系統(tǒng)安全等級(jí)保護(hù)測(cè)評(píng)、信息系統(tǒng)的滲透測(cè)試、信息系統(tǒng)風(fēng)險(xiǎn)評(píng)估以及信息系統(tǒng)安全等級(jí)保護(hù)測(cè)評(píng)、信息系統(tǒng)安全審計(jì)、信息系統(tǒng)安全等級(jí)保護(hù)等多項(xiàng)測(cè)評(píng)1。云計(jì)算評(píng)測(cè)模式可以提供信息系統(tǒng)產(chǎn)品認(rèn)證服務(wù),包括一站式受理和分段式受理。同時(shí)更支持對(duì)信息系統(tǒng)產(chǎn)品的定制測(cè)試。如可以利用詞法分析、語(yǔ)法分析、控制流分析、數(shù)據(jù)流分析等技術(shù)對(duì)程序代碼進(jìn)行掃描,驗(yàn)證代碼是否滿足規(guī)范性、可靠性、可維護(hù)性等指標(biāo);在源代碼架構(gòu)測(cè)試上,分析函數(shù)、變量、類、字段和宏等成員之間的關(guān)系,建立整個(gè)系統(tǒng)的架構(gòu)模型并對(duì)其進(jìn)行相關(guān)的測(cè)試和優(yōu)化建議等工作,并根據(jù)架構(gòu)原則對(duì)系統(tǒng)架構(gòu)進(jìn)行自動(dòng)優(yōu)化調(diào)整和報(bào)告導(dǎo)出,為提供系統(tǒng)架構(gòu)質(zhì)量(如穩(wěn)定性、擴(kuò)展性等)提供決策支持;在源代碼安全測(cè)試方面,通過(guò)識(shí)別和修復(fù)軟件代碼中存在的安全漏洞,提供精確到代碼行的漏洞定位來(lái)加速修復(fù),使開(kāi)發(fā)團(tuán)隊(duì)能夠快速修補(bǔ)漏洞。
未來(lái),隨著人工智能的不斷深化發(fā)展,一些人工智能應(yīng)用程序也將應(yīng)對(duì)新式的測(cè)評(píng)工作。人工智能應(yīng)用程序更具有難以預(yù)測(cè)所有應(yīng)用場(chǎng)景的特性,傳統(tǒng)的方法和測(cè)試工具將更不能滿足測(cè)試這些系統(tǒng)的需要。因此也需要云計(jì)算的信息評(píng)測(cè)模式,通過(guò)虛擬桌面等手段登錄到多元化的測(cè)試環(huán)境,從云端獲取相應(yīng)的測(cè)試資源,充分利用云計(jì)算的柔性化增強(qiáng)測(cè)試工作的靈活性與智能性,以減少不必要的硬軟件安裝和環(huán)境配置等成本,為測(cè)試實(shí)施提供映像服務(wù)。利用基于機(jī)器學(xué)習(xí)(ML) / AI進(jìn)行自動(dòng)維護(hù),通過(guò)將來(lái)自不同頁(yè)面、瀏覽器、設(shè)備的類似變化組合在一起,修改比較算法,以便能夠辨別哪些更改是有意義的、顯著的,能夠自動(dòng)理解哪些更改內(nèi)容,對(duì)差異進(jìn)行排序。
云計(jì)算的信息系統(tǒng)評(píng)測(cè)模式讓測(cè)試更簡(jiǎn)單、更自動(dòng)、更智能。結(jié)合人工智能、機(jī)器學(xué)習(xí)等方式來(lái)完成新的情形的處理,利用AI自動(dòng)創(chuàng)建測(cè)試用例并執(zhí)行,從而扭轉(zhuǎn)傳統(tǒng)測(cè)試人員手工大量編寫(xiě)的局面,實(shí)現(xiàn)更加自動(dòng)化測(cè)試用例和智能執(zhí)行測(cè)試。參考經(jīng)典的alexnet神經(jīng)網(wǎng)絡(luò)架構(gòu),詳見(jiàn)圖2,采用基于淺層卷積神經(jīng)網(wǎng)絡(luò)算法的機(jī)器學(xué)習(xí)框架訓(xùn)練目標(biāo)頁(yè)面模型,選用Pytorch,TensorFlow,Caffe,Keras等對(duì)CNN支持良好的開(kāi)源環(huán)境進(jìn)行建模,通過(guò)提供輸入輸出數(shù)據(jù)來(lái)訓(xùn)練AI,最終讓AI自動(dòng)生成測(cè)試用例并執(zhí)行。最終評(píng)價(jià)指標(biāo)為準(zhǔn)確率(Accuracy,ACC),精準(zhǔn)度(Precision),召回率(Recall)以及F1得分(F1-score)。
圖2:卷積神經(jīng)網(wǎng)絡(luò)分層架構(gòu)
將傳統(tǒng)手寫(xiě)數(shù)據(jù)程序縮減到編驗(yàn)?zāi)P?,自?dòng)生成測(cè)試用例,一次生成大量的組合測(cè)試用例,從而有效解決功能點(diǎn)和測(cè)試點(diǎn)的覆蓋空白問(wèn)題。再如借助Eggplant Digital Automation Intelligence整套工具使用AI和深度學(xué)習(xí)來(lái)從界面上尋找缺陷。AI自動(dòng)生成測(cè)試用例,通過(guò)對(duì)需求文檔、設(shè)計(jì)文檔以及常規(guī)代碼的訓(xùn)練學(xué)習(xí),自主進(jìn)行一致性判斷,根據(jù)應(yīng)用程序的映射和實(shí)際用戶活動(dòng)分析,使用機(jī)器學(xué)習(xí)(ML)和認(rèn)知自動(dòng)生成自動(dòng)化測(cè)試腳本,生成應(yīng)用程序藍(lán)圖,使用應(yīng)用程序藍(lán)圖作為被測(cè)應(yīng)用程序中可能的指導(dǎo),以及服務(wù)器日志作為實(shí)際用戶活動(dòng)的大數(shù)據(jù)源,實(shí)現(xiàn)智能化時(shí)代下,數(shù)據(jù)挖掘的新價(jià)值。
云計(jì)算信息評(píng)測(cè)模式可以很好地實(shí)現(xiàn)企業(yè)軟、硬件環(huán)境、測(cè)試工程師、測(cè)試技術(shù)等測(cè)試資源的共享,實(shí)現(xiàn)功能測(cè)試、效率(性能)測(cè)試、安全測(cè)試、架構(gòu)測(cè)試等多種測(cè)試服務(wù)化,非專業(yè)測(cè)試工程師亦可自助按需接入進(jìn)行專業(yè)化的測(cè)試,大大提高評(píng)測(cè)中心的測(cè)試業(yè)務(wù)范圍與效率。如非專業(yè)人士可以借助此類自助模式快速上手,利用云的可擴(kuò)展性開(kāi)發(fā)新業(yè)務(wù)模塊,從開(kāi)發(fā)、測(cè)試、上線到運(yùn)行,輔助信息系統(tǒng)新業(yè)務(wù)的開(kāi)展,全力支撐互聯(lián)網(wǎng)業(yè)務(wù)的效率。再如采用一種自適應(yīng)的算法來(lái)進(jìn)行可視化測(cè)試(視覺(jué)驗(yàn)證),調(diào)用云計(jì)算信息評(píng)測(cè)模式下的數(shù)據(jù)化測(cè)試工具如Applitools Eyes等,而不需要事先進(jìn)行各種設(shè)置,不必要明確地調(diào)用所有元素,便能夠幫助測(cè)試人員發(fā)現(xiàn)應(yīng)用程序中的潛在錯(cuò)誤。
具體而言云計(jì)算的信息評(píng)測(cè)模式應(yīng)用,可以實(shí)現(xiàn)以下三大優(yōu)點(diǎn):云計(jì)算的信息評(píng)測(cè)模式具備漏洞目錄的專業(yè)維護(hù),能提供大規(guī)模的軟件安全漏洞分類索引和每個(gè)漏洞的詳細(xì)信息,降低了修改錯(cuò)誤的時(shí)間成本和經(jīng)濟(jì)成本。從而解決安全風(fēng)險(xiǎn),使關(guān)鍵業(yè)務(wù)軟件更安全、更難被黑客攻擊所滲透;云計(jì)算的信息評(píng)測(cè)模式方便管理完善測(cè)試基礎(chǔ)設(shè)施資源池,實(shí)現(xiàn)測(cè)試資源共享、集中管理;云計(jì)算的信息評(píng)測(cè)模式具有更高的互操作性、易用性與可維護(hù)性,便于進(jìn)行對(duì)信息系統(tǒng)性能的評(píng)測(cè),進(jìn)而降低并減少公司運(yùn)營(yíng)成本,提高工作效率,提升工作質(zhì)量。
隨著大數(shù)據(jù)、人工智能等信息技術(shù)的快速發(fā)展,公司業(yè)務(wù)與信息系統(tǒng)不斷融合,如何保證信息系統(tǒng)持續(xù)、穩(wěn)定、高效、可靠、安全地運(yùn)行,保障公司業(yè)務(wù)正常運(yùn)營(yíng),成為信息化建設(shè)管理中的一項(xiàng)重要任務(wù)。基于云計(jì)算的信息系統(tǒng)評(píng)測(cè)相較傳統(tǒng)黑白灰盒模式,可以更有效滿足信息化的大規(guī)模測(cè)評(píng)需求,根據(jù)用戶實(shí)際業(yè)務(wù)場(chǎng)景,快速配置測(cè)試環(huán)境,實(shí)現(xiàn)測(cè)試工作的集約化、標(biāo)準(zhǔn)化和自動(dòng)化,可以有效提高測(cè)試質(zhì)量和效率。融合云計(jì)算技術(shù),有效整合評(píng)測(cè)中心現(xiàn)有計(jì)算資源,進(jìn)一步升級(jí)完善功能測(cè)試、性能測(cè)試、安全測(cè)試等多項(xiàng)任務(wù),建設(shè)云計(jì)算信息評(píng)測(cè)模式,實(shí)現(xiàn)信息系統(tǒng)測(cè)試的快速、高效和低成本,才能為公司信息化建設(shè)、數(shù)字化轉(zhuǎn)型提供有力支撐。