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