馬紅星,張洋
(1.海軍駐合肥地區(qū)軍事代表室,安徽合肥 230088;2.安徽賽寶工業(yè)技術(shù)研究院有限公司,安徽蕪湖 241006)
近年來(lái),隨著計(jì)算機(jī)科學(xué)技術(shù)的高速發(fā)展,軍事裝備中計(jì)算機(jī)軟件的應(yīng)用已經(jīng)非常廣泛而深入,同時(shí),隨著軍用軟件規(guī)模的不斷擴(kuò)大,軟件設(shè)計(jì)的復(fù)雜程度不斷地提高,軟件開(kāi)發(fā)中出現(xiàn)錯(cuò)誤或缺陷的機(jī)率也越來(lái)越高。隨著軟件產(chǎn)業(yè)化的發(fā)展,人們對(duì)軍用軟件質(zhì)量的要求越來(lái)越高,對(duì)軍用軟件質(zhì)量的重視程度也越來(lái)越高,這就直接導(dǎo)致了軍用軟件測(cè)試過(guò)程質(zhì)量控制也更加重要。在軍用軟件測(cè)試過(guò)程的質(zhì)量監(jiān)督上,應(yīng)該充分地利用現(xiàn)代信息技術(shù)、軟件自動(dòng)化測(cè)試的最新成果,創(chuàng)新軟件測(cè)試過(guò)程的質(zhì)量監(jiān)督方式,以確保軍用軟件測(cè)試過(guò)程的質(zhì)量。
軍用軟件測(cè)試一般分為手工測(cè)試和自動(dòng)化測(cè)試兩類。隨著軍用軟件規(guī)模的不斷擴(kuò)大,手工測(cè)試的效率低下問(wèn)題給軟件測(cè)試工作帶來(lái)了很多問(wèn)題。一種成熟的軍用軟件自動(dòng)化測(cè)試機(jī)制,可以在測(cè)試工具空閑時(shí)執(zhí)行無(wú)用戶參與的自動(dòng)化測(cè)試,在相同的測(cè)試案例中使用相同的測(cè)試數(shù)據(jù)進(jìn)行再測(cè)試,做到以最小的代價(jià)進(jìn)行全面的系統(tǒng)測(cè)試,可以降低人為因素對(duì)測(cè)試過(guò)程的干擾,排除測(cè)試的隨機(jī)性和盲目性,降低冗余,減少遺漏等。
軍用軟件自動(dòng)化測(cè)試是指執(zhí)行某種程序設(shè)計(jì)語(yǔ)言編制的自動(dòng)測(cè)試程序,控制被測(cè)軟件的執(zhí)行,模擬手動(dòng)測(cè)試步驟,完成全自動(dòng)或半自動(dòng)測(cè)試。自動(dòng)化測(cè)試能夠通過(guò)自動(dòng)化測(cè)試工具或其他手段,按照測(cè)試工程師的預(yù)定計(jì)劃進(jìn)行自動(dòng)的測(cè)試,目的是提高軍用軟件測(cè)試的效率,降低人為因素帶來(lái)的風(fēng)險(xiǎn),從而達(dá)到提高軍用軟件測(cè)試質(zhì)量的目的。軍用軟件自動(dòng)化測(cè)試涉及測(cè)試流程、測(cè)試體系、自動(dòng)化編譯、持續(xù)集成、自動(dòng)發(fā)布測(cè)試系統(tǒng)和自動(dòng)化測(cè)試等方面的整合。
自動(dòng)化測(cè)試最初是通過(guò)外部的手段錄制測(cè)試的操作過(guò)程,再回放其過(guò)程從而達(dá)到自動(dòng)化測(cè)試的目的。隨著研究的不斷深入,又誕生了基于數(shù)據(jù)驅(qū)動(dòng)、基于領(lǐng)域驅(qū)動(dòng)和基于功能驅(qū)動(dòng)等多種不同的自動(dòng)化測(cè)試技術(shù)。自動(dòng)化測(cè)試技術(shù)的誕生不僅提高了測(cè)試的效率,同時(shí)也提高了測(cè)試的精度。雖不能完全取代手動(dòng)測(cè)試工作,但對(duì)測(cè)試技術(shù)的發(fā)展起到了巨大的推動(dòng)作用。就目前的操作系統(tǒng)而言,自動(dòng)化測(cè)試技術(shù)主要有以下幾種。
a)Phoronix Test Suite
可支持多種類型操作系統(tǒng)的性能測(cè)試,但配置文件的處理方式簡(jiǎn)單、不利于擴(kuò)展添加。
b)Autotest
支持Linux系統(tǒng)內(nèi)核的自動(dòng)化測(cè)試,但搭建困難、對(duì)支撐軍用軟件的版本要求嚴(yán)格。
c)Linux Desktop Testing Project
用于功能的自動(dòng)化測(cè)試,但腳本重用率低、對(duì)測(cè)試人員的要求較高。
通過(guò)分析當(dāng)前主要的測(cè)試標(biāo)準(zhǔn)和現(xiàn)有的工具情況,本文提出了一種基于過(guò)程的軍用軟件自動(dòng)化測(cè)試模型,通過(guò)對(duì)測(cè)試過(guò)程的抽象達(dá)到自動(dòng)化測(cè)試的目的。該模型將測(cè)試過(guò)程中使用的測(cè)試用例、測(cè)試腳本和測(cè)試數(shù)據(jù)按照預(yù)定的準(zhǔn)則進(jìn)行標(biāo)準(zhǔn)化,并以配置文件的形式進(jìn)行執(zhí)行過(guò)程的編輯,最后通過(guò)腳本驅(qū)動(dòng)將配置文件內(nèi)容轉(zhuǎn)化為自動(dòng)化測(cè)試流程。
軍用軟件自動(dòng)化測(cè)試框架主要包括測(cè)試工具庫(kù)、接口庫(kù)、測(cè)試腳本庫(kù)、測(cè)試數(shù)據(jù)結(jié)構(gòu)和測(cè)試驅(qū)動(dòng)等,其結(jié)構(gòu)如圖1所示。
圖1 軍用軟件自動(dòng)化測(cè)試框架
a)測(cè)試工具庫(kù)
主要用于存儲(chǔ)測(cè)試工具和執(zhí)行配置文件,在配置文件中按照預(yù)定義標(biāo)準(zhǔn)將測(cè)試工具在執(zhí)行測(cè)試時(shí)的執(zhí)行過(guò)程進(jìn)行腳本化抽象,測(cè)試執(zhí)行時(shí)測(cè)試驅(qū)動(dòng)會(huì)對(duì)該配置文件進(jìn)行 “翻譯”,將其轉(zhuǎn)換為可執(zhí)行的shell腳本。
b)接口庫(kù)
主要用于存儲(chǔ)被測(cè)系統(tǒng)的操作接口,包括系統(tǒng)的遠(yuǎn)端連接連口、執(zhí)行監(jiān)控接口、日志提取接口和命令執(zhí)行接口等。
c)測(cè)試腳本庫(kù)
主要用于存儲(chǔ)被測(cè)系統(tǒng)的功能測(cè)試腳本和接口腳本,由于系統(tǒng)的非圖形化功能都可通過(guò)命令行實(shí)現(xiàn),因而通過(guò)設(shè)計(jì)自動(dòng)化測(cè)試腳本,自動(dòng)執(zhí)行并返回系統(tǒng)執(zhí)行結(jié)果可有效地幫助測(cè)試人員節(jié)省測(cè)試的時(shí)間開(kāi)銷。
d)測(cè)試數(shù)據(jù)結(jié)構(gòu)
主要用于存儲(chǔ)測(cè)試結(jié)果數(shù)據(jù)測(cè)試結(jié)構(gòu)及組成,由于不同種類的測(cè)試工具或測(cè)試腳本執(zhí)行所得到的測(cè)試結(jié)果的數(shù)據(jù)結(jié)構(gòu)并不完全相同,因此為了保證系統(tǒng)的可擴(kuò)展性可自定義測(cè)試數(shù)據(jù)的解析方法。
e)測(cè)試驅(qū)動(dòng)
主要用于將測(cè)試工具庫(kù)中的配置文件轉(zhuǎn)換為可執(zhí)行腳本,執(zhí)行自動(dòng)化測(cè)試并記錄測(cè)試結(jié)果數(shù)據(jù)。
自動(dòng)化測(cè)試框架分為用戶接口層、業(yè)務(wù)處理層和數(shù)據(jù)處理層,如圖2所示。
圖2 軍用軟件自動(dòng)化測(cè)試框架業(yè)務(wù)模型
a)用戶接口層提供了使用該平臺(tái)的一整套API,通過(guò)這些API用戶可以方便地進(jìn)行機(jī)器性能測(cè)試,包括測(cè)試用例選擇、測(cè)試機(jī)器選擇、查看測(cè)試結(jié)果和查看每個(gè)機(jī)器的運(yùn)行狀態(tài)等功能。這些API以Soap協(xié)議方式和本地調(diào)用兩種方式提供給使用者,包括機(jī)器信息模塊、測(cè)試用例模塊、測(cè)試記錄模塊、啟動(dòng)測(cè)試模塊和運(yùn)行時(shí)監(jiān)控模塊。
b)業(yè)務(wù)處理層接收測(cè)試作業(yè),然后安排測(cè)試作業(yè)的執(zhí)行。實(shí)現(xiàn)方式是為每個(gè)測(cè)試機(jī)器建立一個(gè)單獨(dú)的線程,專門(mén)處理該機(jī)器的測(cè)試任務(wù)。根據(jù)系統(tǒng)的資源耗用程度動(dòng)態(tài)地調(diào)整測(cè)試任務(wù)分配,保證在系統(tǒng)健康、平穩(wěn)運(yùn)行的過(guò)程中完成所有的測(cè)試任務(wù)。
c)數(shù)據(jù)處理層負(fù)責(zé)和數(shù)據(jù)庫(kù)交互,提供系統(tǒng)運(yùn)行時(shí)所需要的數(shù)據(jù)以及保存運(yùn)行產(chǎn)生的數(shù)據(jù)。對(duì)上提供查詢數(shù)據(jù)服務(wù),業(yè)務(wù)處理層需要的數(shù)據(jù)全部由數(shù)據(jù)處理層提供,包括查詢機(jī)器信息、查詢測(cè)試用例信息和查詢測(cè)試記錄信息等。
2.3.1 軍用軟件自動(dòng)化系統(tǒng)性能測(cè)試
自動(dòng)化系統(tǒng)性能測(cè)試的著重點(diǎn)是準(zhǔn)確地獲取系統(tǒng)在某一狀態(tài)下的性能指標(biāo),具有以下特點(diǎn)。
a)測(cè)試結(jié)果準(zhǔn)確
自動(dòng)化系統(tǒng)性能測(cè)試通過(guò)模擬用戶操作,對(duì)服務(wù)器發(fā)起負(fù)載,同時(shí)監(jiān)控服務(wù)器的狀態(tài),考察系統(tǒng)業(yè)務(wù)的響應(yīng)時(shí)間和資源之間的關(guān)系,從而獲取系統(tǒng)的性能指標(biāo)。通過(guò)工作負(fù)載分析,建立盡可能接近實(shí)際情況的測(cè)試場(chǎng)景,同時(shí)通過(guò)一系列的測(cè)試前準(zhǔn)備工作,以及測(cè)試采樣設(shè)置,降低性能測(cè)試中的干擾因素。
b)節(jié)約測(cè)試成本
進(jìn)行性能測(cè)試的成本,特別是硬件的成本很大。在保證測(cè)試準(zhǔn)確性的基礎(chǔ)上,節(jié)約測(cè)試成本,如在企業(yè)員工的機(jī)器上安裝負(fù)載生成器,每臺(tái)機(jī)器在測(cè)試時(shí)分擔(dān)一小塊的負(fù)載生成任務(wù)。
c)減少手工工作量
性能測(cè)試需要使用大量的不同用戶進(jìn)行操作,手工創(chuàng)建這些用戶帳號(hào)信息,以及設(shè)置權(quán)限等的工作量非常大,借助自動(dòng)化捕獲回放工具可以完成這部分工作,同時(shí)可使用前面的自動(dòng)化系統(tǒng)回歸測(cè)試框架進(jìn)行關(guān)鍵功能的冒煙測(cè)試。
2.3.2 軍用軟件自動(dòng)化系統(tǒng)性能測(cè)試框架的構(gòu)建
性能測(cè)試框架的搭建通常包括以下流程。首先,配置標(biāo)準(zhǔn)版本的系統(tǒng)軟硬件環(huán)境,并安裝性能監(jiān)控器部件;然后,從版本管理系統(tǒng)上將穩(wěn)定的代碼待測(cè)版本取下,進(jìn)行構(gòu)建并部署到專門(mén)的性能測(cè)試環(huán)境中,完成系統(tǒng)的配置和初始化。系統(tǒng)在進(jìn)行性能測(cè)試前經(jīng)過(guò)自動(dòng)化系統(tǒng)回歸測(cè)試框架的冒煙測(cè)試,驗(yàn)證系統(tǒng)的基本功能正常,同時(shí)通過(guò)自動(dòng)化工具進(jìn)行測(cè)試用數(shù)據(jù)創(chuàng)建,如用戶帳號(hào)信息、權(quán)限和其他的測(cè)試實(shí)體,盡可能地減輕手工工作量。在以上任務(wù)完成后根據(jù)工作負(fù)載模型和測(cè)試用例,創(chuàng)建和執(zhí)行測(cè)試腳本和場(chǎng)景,收集并分析測(cè)試數(shù)據(jù),得出系統(tǒng)性能指標(biāo)。
軍用軟件測(cè)試過(guò)程的質(zhì)量監(jiān)督非常重要,需要嚴(yán)格把控,注重質(zhì)量監(jiān)督的效果。要強(qiáng)化專項(xiàng)監(jiān)督,使基本要素受控。要重視軟件產(chǎn)品質(zhì)量歷史狀況與數(shù)據(jù),找出自身薄弱環(huán)節(jié)和隱患所在,有針對(duì)性地選取若干監(jiān)控要素,現(xiàn)場(chǎng)重點(diǎn)監(jiān)督驗(yàn)證,強(qiáng)化軟件測(cè)試的過(guò)程質(zhì)量意識(shí),確保軟件質(zhì)量。
通過(guò)優(yōu)化過(guò)程監(jiān)督,對(duì)軟件測(cè)試進(jìn)行跟蹤,使重點(diǎn)過(guò)程受控。通過(guò)科學(xué)設(shè)置里程碑的軟件測(cè)試質(zhì)量監(jiān)督點(diǎn),選取對(duì)產(chǎn)品質(zhì)量影響比較大的重點(diǎn)測(cè)試項(xiàng)目和過(guò)程進(jìn)行針對(duì)性的監(jiān)督,提高質(zhì)量監(jiān)督的費(fèi)效比。同時(shí),可以借助信息技術(shù)、智能監(jiān)控設(shè)備和實(shí)時(shí)程序控制等工具,判斷測(cè)試過(guò)程有無(wú)異常、是否受控,進(jìn)而對(duì)產(chǎn)品的質(zhì)量作出評(píng)價(jià),實(shí)現(xiàn)可靠的遠(yuǎn)程質(zhì)量監(jiān)督。
通過(guò)深化重點(diǎn)監(jiān)督,使關(guān)鍵環(huán)節(jié)受控。關(guān)鍵測(cè)試點(diǎn)對(duì)裝備質(zhì)量來(lái)說(shuō)都具有牽一發(fā)而動(dòng)全身的作用,因而必須重點(diǎn)關(guān)注。結(jié)合國(guó)內(nèi)現(xiàn)有的、先進(jìn)自動(dòng)化測(cè)試檢測(cè)手段來(lái)完善回歸測(cè)試,經(jīng)過(guò)深入的測(cè)試和科學(xué)分析,確認(rèn)對(duì)裝備質(zhì)量沒(méi)有影響才準(zhǔn)予放行,對(duì)于偏離許可、讓步接收,更要慎之又慎。
要遵循測(cè)試程序。軟件的測(cè)試既是對(duì)產(chǎn)品自身質(zhì)量的一次測(cè)試,更是對(duì)軟件質(zhì)量工作的一次把關(guān)?;诖?,我們應(yīng)該嚴(yán)格地按照規(guī)范及標(biāo)準(zhǔn)的要求,按程序和步驟監(jiān)督測(cè)試的各項(xiàng)工作。測(cè)試前,要認(rèn)真學(xué)習(xí)需求技術(shù)文件,熟悉相關(guān)標(biāo)準(zhǔn)要求;測(cè)試中,要按規(guī)范一絲不茍地認(rèn)真監(jiān)督,把控測(cè)試過(guò)程,審查測(cè)試記錄數(shù)據(jù);測(cè)試后,會(huì)同測(cè)試單位召開(kāi)總結(jié)會(huì),通報(bào)測(cè)試結(jié)果,總結(jié)經(jīng)驗(yàn)教訓(xùn),為下一步的質(zhì)量控制提供依據(jù)。
要吃透標(biāo)準(zhǔn)。即要對(duì)軍用軟件測(cè)試標(biāo)準(zhǔn)爛熟于心,對(duì)測(cè)試規(guī)范了然于胸,如此方能做到駕輕就熟,確保軟件測(cè)試質(zhì)量。
軍用軟件自動(dòng)化測(cè)試具有效率高、能快速全面地實(shí)行回歸測(cè)試等特點(diǎn),因而正在成為軍用裝備中主要的軟件測(cè)試方法之一。盡管如此,軍用軟件自動(dòng)化測(cè)試還不能解決軟件潛在的所有問(wèn)題。21世紀(jì)是質(zhì)量的世紀(jì),武器裝備的快速發(fā)展,對(duì)軍用軟件設(shè)計(jì)開(kāi)發(fā)和測(cè)試質(zhì)量監(jiān)督工作提出了更高的要求。我們應(yīng)正確地認(rèn)識(shí)和把握軟件測(cè)試質(zhì)量監(jiān)督工作,從中不斷地總結(jié)經(jīng)驗(yàn),吸取教訓(xùn),強(qiáng)化科學(xué)監(jiān)督,消除產(chǎn)生和誘發(fā)軍用軟件質(zhì)量問(wèn)題的各種因素,不斷地提高軍用軟件質(zhì)量,在軟件的具體測(cè)試過(guò)程中去探索、去研究、去實(shí)踐、去規(guī)范,為裝備的質(zhì)量建設(shè)作出新的貢獻(xiàn)。