辜彬 何舒 陳顏
摘要:本文對網(wǎng)絡(luò)設(shè)備測試需求進(jìn)行分析,提出一種自動(dòng)化測試框架,并對具體實(shí)現(xiàn)進(jìn)行闡述。
關(guān)鍵詞:網(wǎng)絡(luò)設(shè)備;自動(dòng)化測試;測試框架;測試設(shè)計(jì);測試工具;測試環(huán)境
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2018)05-0174-03
網(wǎng)絡(luò)設(shè)備是當(dāng)今網(wǎng)絡(luò)社會(huì)的重要組成部分,其功能、性能、穩(wěn)定性直接關(guān)系到網(wǎng)絡(luò)是否能正常運(yùn)轉(zhuǎn)。針對網(wǎng)絡(luò)設(shè)備的測試技術(shù)、儀器已經(jīng)非常成熟,通過自動(dòng)化測試技術(shù)來整合這些方法和資源,可以大大提升網(wǎng)絡(luò)設(shè)備測試效率和質(zhì)量。
1 網(wǎng)絡(luò)設(shè)備測試需求分析
網(wǎng)絡(luò)設(shè)備的發(fā)展史是一個(gè)集設(shè)計(jì)、制造、測試、失敗、修改、再設(shè)計(jì)、再制造、再測試的迭代過程,是一個(gè)不斷摸索和反復(fù)完善的過程。實(shí)踐表明,要研制出高性能高可靠性的網(wǎng)絡(luò)設(shè)備,沒有大量的測試工作是不可能實(shí)現(xiàn)的。勿庸置疑,測試在網(wǎng)絡(luò)設(shè)備研制過程中起著舉足輕重的作用,它直接關(guān)系到研制的成功與否。
網(wǎng)絡(luò)設(shè)備功能明確而單一,即根據(jù)通信策略完成業(yè)務(wù)數(shù)據(jù)的通信處理。與之對應(yīng)的測試需求也相對固定,利于開展自動(dòng)化測試。
1.1 網(wǎng)絡(luò)設(shè)備工作原理分析
網(wǎng)絡(luò)設(shè)備基本工作原理如圖1所示。
網(wǎng)絡(luò)設(shè)備一般由接口單元、業(yè)務(wù)單元和管理單元組成。
接口單元實(shí)現(xiàn)不同網(wǎng)絡(luò)、設(shè)備間的物理互聯(lián)功能,依據(jù)需求的不同接口形態(tài)呈現(xiàn)多樣性,如承載用戶數(shù)據(jù)接收和發(fā)送的業(yè)務(wù)數(shù)據(jù)接口;完成安裝調(diào)試和維護(hù)接入功能的維護(hù)測試接口;提供人機(jī)交互界面的狀態(tài)顯示接口等。
業(yè)務(wù)單元主要包括網(wǎng)絡(luò)處理模塊、協(xié)議處理模塊和策略庫,實(shí)現(xiàn)按策略庫提供的規(guī)則對業(yè)務(wù)數(shù)據(jù)進(jìn)行處理功能。業(yè)務(wù)單元與通信速率匹配,性能和可靠性要求最高。
管理單元主要包括策略管理、狀態(tài)管理、系統(tǒng)日志、權(quán)限管理等模塊,根據(jù)管理方式不同還需提供本地管理和遠(yuǎn)程管理功能。
1.2 測試需求分析
網(wǎng)絡(luò)設(shè)備測試需求分析需從網(wǎng)絡(luò)設(shè)備的工作原理和實(shí)現(xiàn)機(jī)制兩個(gè)方面進(jìn)行分析,分別側(cè)重于實(shí)際業(yè)務(wù)處理和設(shè)備內(nèi)部設(shè)計(jì)實(shí)現(xiàn),綜合形成完善的網(wǎng)絡(luò)設(shè)備測試需求。
從工作原理方面來分析,網(wǎng)絡(luò)設(shè)備的核心測試內(nèi)容為業(yè)務(wù)數(shù)據(jù)處理單元測試和管理單元測試。業(yè)務(wù)數(shù)據(jù)處理測試包含各類協(xié)議的處理功能,性能和業(yè)務(wù)處理穩(wěn)定性等方面;管理單元測試涉及到人機(jī)界面功能和易用性,管理配置功能準(zhǔn)確性和穩(wěn)定性等。
從實(shí)現(xiàn)機(jī)制方面來分析,網(wǎng)絡(luò)設(shè)備的實(shí)現(xiàn)包含了硬件平臺設(shè)計(jì)實(shí)現(xiàn)、基礎(chǔ)軟件設(shè)計(jì)實(shí)現(xiàn)和業(yè)務(wù)軟件設(shè)計(jì)實(shí)現(xiàn)等環(huán)境,測試需求遵從信息系統(tǒng)的一般規(guī)律。
某網(wǎng)絡(luò)設(shè)備測試需求如表1所示。
2 自動(dòng)化測試框架
從網(wǎng)絡(luò)設(shè)備的測試需求分析可以看出網(wǎng)絡(luò)設(shè)備測試涉及到了硬件、軟件、協(xié)議、代碼、整機(jī)等不同維度的測試技術(shù),相應(yīng)的測試方法和工具也不同,自動(dòng)化測試并不能適應(yīng)所有的測試類型,對于網(wǎng)絡(luò)設(shè)備而言,我們選取回歸測試內(nèi)容多、工作量大,測試方法和工具成熟的部分開展自動(dòng)化測試設(shè)計(jì)和實(shí)現(xiàn)。
形成的自動(dòng)化測試框架如圖2所示。
自動(dòng)化測試框架分為控制臺、自動(dòng)化測試平臺和被測對象三個(gè)部分。
控制臺是測試人員的日常操作環(huán)境。通過對被測對象的分析和研究,形成測試設(shè)計(jì)的輸入,并對測試結(jié)果進(jìn)行分析;控制臺還提供測試環(huán)境配置操作和測試工具分析調(diào)試功能。
自動(dòng)化測試平臺是框架的核心部分,包含了測試輔助設(shè)計(jì)、測試結(jié)果收集、輸入輸出腳本化、執(zhí)行引擎和測試工具集等部分。實(shí)現(xiàn)從測試設(shè)計(jì)、測試用例輸入、測試執(zhí)行和測試結(jié)果收集整個(gè)測試執(zhí)行過程的自動(dòng)化。網(wǎng)絡(luò)設(shè)備測試需要靈活的測試環(huán)境部署能力,所以自動(dòng)化測試平臺還提供測試環(huán)境配置能力,便于模擬各類通信場景。
實(shí)際被測對象在測試人員進(jìn)行產(chǎn)品配置過后,可以接入自動(dòng)化測試平臺,開展測試實(shí)施。
該自動(dòng)化測試框架具備可擴(kuò)展性,在測試需求不斷增加和完善的過程中,特別是在新的測試方法和工具逐步成熟、固化過后,對其輸入輸出和運(yùn)行方式按測試平臺規(guī)范進(jìn)行優(yōu)化,可以很方便地加入到自動(dòng)化測試工具集中,實(shí)現(xiàn)自動(dòng)化測試框架可擴(kuò)展。
3 自動(dòng)化測試系統(tǒng)實(shí)現(xiàn)
網(wǎng)絡(luò)設(shè)備自動(dòng)化測試系統(tǒng)的建設(shè)涉及面廣,是逐步積累和完善的過程,實(shí)現(xiàn)自動(dòng)化測試框架規(guī)劃的內(nèi)容可按以下幾個(gè)部分進(jìn)行實(shí)施。
3.1 基礎(chǔ)設(shè)施建設(shè)
基礎(chǔ)設(shè)施是指支撐自動(dòng)化測試系統(tǒng)運(yùn)行和部署的網(wǎng)絡(luò)和計(jì)算平臺,主要為各類服務(wù)器和網(wǎng)絡(luò)路由交換設(shè)備。
自動(dòng)化測試系統(tǒng)中的服務(wù)器和網(wǎng)絡(luò)設(shè)備的配置和管理不能成為測試實(shí)施時(shí)的負(fù)擔(dān)和瓶頸,要有集中統(tǒng)一的配置管理方法來支撐。使用虛擬化技術(shù)對網(wǎng)絡(luò)、服務(wù)器、存儲(chǔ)進(jìn)行虛擬化和統(tǒng)一集中管理是一種有效的方式,同時(shí)也能合理利用系統(tǒng)資源,便于資源的擴(kuò)展。
網(wǎng)絡(luò)設(shè)備測試會(huì)涉及到諸如串口、USB等難以進(jìn)行虛擬化的低速物理接口,這類接口需提供便于接入虛擬化基礎(chǔ)設(shè)施的方式,比如通過以太網(wǎng)進(jìn)行管理和使用的串口服務(wù)器、USB服務(wù)器等。
3.2 接口規(guī)范建立
接口規(guī)范是指自動(dòng)化測試平臺中輸入輸出腳本化和執(zhí)行引擎所遵循的格式及要求,是確保測試設(shè)計(jì)的結(jié)果能順利驅(qū)動(dòng)測試執(zhí)行并返回可分析結(jié)果的前提。
3.2.1 輸入輸出腳本化
輸入輸出腳本化接口規(guī)范定義了測試設(shè)計(jì)輸出的測試用例和測試結(jié)果返回的形式。
圖3所示為采用execl表格作為輸入輸出接口規(guī)范的示例,execl表格訪問方便,便于擴(kuò)展,對execl表格的讀寫和分析可以固化為統(tǒng)一的軟件模塊,減少重復(fù)工作。輸入輸出腳本化模板分為測試用例、測試結(jié)果、測試項(xiàng)三個(gè)域。
域①為測試用例域,包括完整的測試用例輸入和預(yù)期結(jié)果,可通過增加列來增加測試輸入,每一行代表一條完整的測試用例,測試工具的輸入?yún)?shù)名與測試用例表頭描述一致。
域②為測試結(jié)果域,測試結(jié)果列反應(yīng)測試通過或不通過,不通過則本行標(biāo)紅,返回信息摘要存儲(chǔ)測試返回的精簡摘要信息,其它可按具體測試內(nèi)容進(jìn)行填充,原則是便于后期問題定位。
域③為測試項(xiàng)域,通過增加exexl工作表來增加測試項(xiàng)。
3.2.2 執(zhí)行引擎
執(zhí)行引擎既是自動(dòng)化測試執(zhí)行模塊,也是測試工具集成接口。網(wǎng)絡(luò)設(shè)備測試既需要使用軟件測試工具進(jìn)行的測試,也有開發(fā)的測試腳本,還有專用的測試儀器,要實(shí)現(xiàn)測試的自動(dòng)化,就需要將這些分散的測試方法和工具集成到一個(gè)統(tǒng)一的執(zhí)行平臺上,執(zhí)行引擎就界定了這些調(diào)用和返回的格式和方法。
執(zhí)行引擎應(yīng)具備如圖4所示的功能模塊。
執(zhí)行引擎采用輕量級控制端模式,即控制端只對測試運(yùn)行的基本場景進(jìn)行設(shè)置,詳細(xì)測試腳本、參數(shù)、程序等都在執(zhí)行端實(shí)現(xiàn)和存儲(chǔ)。執(zhí)行端可以有多個(gè),以適應(yīng)不同運(yùn)行環(huán)境。
在控制端選擇的啟動(dòng)腳本為執(zhí)行端測試運(yùn)行的命令行指令。因此要求所有測試工具集中的測試程序、腳本等都能以簡單的命令行方式啟動(dòng),并帶有運(yùn)行時(shí)間和輸入輸出腳本化文件存儲(chǔ)位置參數(shù)。
3.3 測試設(shè)計(jì)輔助工具
測試設(shè)計(jì)包括測試需求分析和測試用例設(shè)計(jì),從項(xiàng)目需求分析出測試需求,再按測試需求設(shè)計(jì)出測試用例,整個(gè)過程主要依靠人來進(jìn)行,同時(shí)也受制于人的能力水平、經(jīng)驗(yàn)甚至是情緒等不可控因素。
測試設(shè)計(jì)輔助工具將測試需求分析和測試用例設(shè)計(jì)領(lǐng)域中成熟、可靠的分析設(shè)計(jì)方法模型化并用軟件實(shí)現(xiàn),用來幫助測試設(shè)計(jì)人員更可靠、更高效地完成測試設(shè)計(jì)工作,對輸出的測試用例按輸入輸出腳本化接口規(guī)范進(jìn)行保存,與測試工具對接。
測試需求分析主要包含繼承分析、逐級細(xì)分分析、質(zhì)量模型分析、功能交互分析、用戶場景分析等測試需求分析方法,輸出為測試項(xiàng)。
測試用例設(shè)計(jì)方法主要包括逐級細(xì)分、域測試、輸出域分析、正交試驗(yàn)、業(yè)務(wù)流程分析、狀態(tài)遷移法、因果圖、判定表、錯(cuò)誤猜測等方法,輸出為可用的測試用例。
3.4 自動(dòng)化測試工具集
自動(dòng)化測試離不開有效的測試工具,網(wǎng)絡(luò)設(shè)備測試工具多樣,主要分為三大類,既測試儀器類、通用測試軟件和定制化的測試軟件,不同測試工具推薦的自動(dòng)化測試框架也不盡相同,因此要達(dá)到工具間的集成和協(xié)作,需按3.2章節(jié)接口規(guī)范的要求進(jìn)行改造,減少工具之間耦合,做到工具即能單獨(dú)開展測試也能方便地集成到自動(dòng)化測試框架當(dāng)中。
3.4.1 測試儀器
測試儀器主要使用在網(wǎng)絡(luò)設(shè)備性能和協(xié)議模擬測試等方面,具備完善的測試設(shè)置和自動(dòng)化運(yùn)行能力,與自動(dòng)化測試框架集成,需使用其提供的二次開發(fā)接口進(jìn)行二次開發(fā),滿足接入框架的要求。
3.4.2 通用測試軟件
在功能測試,設(shè)備API接口測試、白盒測試等測試內(nèi)容中采用了通用測試軟件,通用測試軟件都有自身的一套自動(dòng)化測試框架,要與網(wǎng)絡(luò)設(shè)備自動(dòng)化測試框架相結(jié)合,需在深入研究通用測試工具使用和配置的基礎(chǔ)之上,將其運(yùn)行腳本化,避開工具操作界面對自動(dòng)化運(yùn)行的影響,通過命令行方式啟動(dòng)測試軟件的運(yùn)行。同時(shí)在測試環(huán)境中配置通用測試軟件運(yùn)行的條件,比如版本控制、數(shù)據(jù)庫系統(tǒng)等,支撐測試軟件的運(yùn)行。
3.4.3 定制化測試軟件
定制化測試軟件是網(wǎng)絡(luò)設(shè)備測試中業(yè)務(wù)功能測試應(yīng)用最多的測試工具,以腳本語言編程為主,使用靈活,按接口規(guī)范進(jìn)行設(shè)計(jì)開發(fā),與自動(dòng)化框架集成。
3.5 測試環(huán)境配置
測試環(huán)境配置在網(wǎng)絡(luò)設(shè)備測試中尤為重要,不可信的測試環(huán)境往往導(dǎo)致測試結(jié)果不可信甚至錯(cuò)誤,環(huán)境配置以滿足測試需求、統(tǒng)一管理為原則,對于不影響測試結(jié)果的公共測試環(huán)境可以加入基礎(chǔ)設(shè)施建設(shè)的虛擬化系統(tǒng)中,便于集中管理,比如版本管理、公用數(shù)據(jù)庫等。
4 結(jié)語
自動(dòng)化測試系統(tǒng)只是解決測試效率和重復(fù)測試的質(zhì)量問題,目的是將人從重復(fù)的勞動(dòng)中釋放出來從事更具創(chuàng)新性、更需要人腦分析和研究的工作,在自動(dòng)化測試開展越成熟的地方,人的價(jià)值體現(xiàn)就會(huì)越高,人在測試活動(dòng)中的價(jià)值不會(huì)因?yàn)樽詣?dòng)化程度越高而降低。
方法和工具的成熟度也是影響自動(dòng)化測試開展的重要因素,自動(dòng)化測試中往往選擇那些測試方法和工具穩(wěn)定,人在測試過程中重復(fù)操作頻繁的部分進(jìn)行自動(dòng)化,典型的就是回歸測試。
所以,自動(dòng)化測試并不是解救測試人員的靈丹妙藥,在開展自動(dòng)化測試的過程中,需要不斷地摸索和嘗試才能最終形成一套有效的,適合組織需要的自動(dòng)化測試系統(tǒng)。