王賀濤 段麗麗 吳明雨
摘要:軟件種類和數(shù)量的增多,帶來(lái)的不僅是開(kāi)發(fā)難度的加大,同時(shí)也給測(cè)試人員帶來(lái)了不小的挑戰(zhàn)。許多中小型公司的軟件測(cè)試力量十分薄弱,軟件測(cè)試人員的人才儲(chǔ)備遠(yuǎn)遠(yuǎn)不足?,F(xiàn)在的軟件越來(lái)越追求高質(zhì)量和創(chuàng)新,如何在短時(shí)間內(nèi)開(kāi)發(fā)出高質(zhì)量的軟件顯得尤為重要,而軟件測(cè)試在整個(gè)軟件的開(kāi)發(fā)過(guò)程中起著舉足輕重的作用,始終貫穿著開(kāi)發(fā)的整個(gè)周期。同時(shí),隨著軟件的底層算法日漸復(fù)雜,軟件架構(gòu)也越來(lái)越豐富多樣,僅靠傳統(tǒng)的測(cè)試技術(shù)已經(jīng)很難適應(yīng)最新的需求了,再加上市場(chǎng)需要軟件產(chǎn)品快速研發(fā)并投入到市場(chǎng)中去,這往往會(huì)導(dǎo)致測(cè)試結(jié)果的遺漏,測(cè)試效率也比較低。因此,采用新型的軟件測(cè)試技術(shù),并且提高自動(dòng)化測(cè)試的比重,才能確保高效地完成軟件測(cè)試的項(xiàng)目,促進(jìn)軟件產(chǎn)品的快速研發(fā)和上市。
關(guān)鍵詞:軟件測(cè)試;自動(dòng)化測(cè)試技術(shù)
引言
傳統(tǒng)軟件測(cè)試策略有靜態(tài)和動(dòng)態(tài)兩個(gè)方面。靜態(tài)測(cè)試比較簡(jiǎn)單,它不測(cè)試軟件程序本身,而是直接尋找程序中的明顯錯(cuò)誤以及評(píng)估代碼的合理性、規(guī)范性。對(duì)采用的技術(shù)、設(shè)計(jì)文件和軟件文檔進(jìn)行評(píng)審。動(dòng)態(tài)測(cè)試則需要通過(guò)輸入具體的示例對(duì)程序進(jìn)行運(yùn)行,看是否能得出預(yù)期的結(jié)果。包括了黑盒測(cè)試、白盒測(cè)試、灰盒測(cè)試,這里不做贅述。傳統(tǒng)的軟件測(cè)試經(jīng)過(guò)多年的運(yùn)用和不斷地改進(jìn),已經(jīng)相當(dāng)成熟,并且有了自己的流程和標(biāo)準(zhǔn)規(guī)范。大數(shù)據(jù)軟件測(cè)試實(shí)際上也是采取這樣的策略,但在執(zhí)行標(biāo)準(zhǔn)方面,更加側(cè)重于其功能、性能和兼容性。
1自動(dòng)化測(cè)試平臺(tái)軟件介紹
本文中所述的自動(dòng)化測(cè)試平臺(tái)的軟件大致分為測(cè)試執(zhí)行軟件和測(cè)試用例編制軟件。測(cè)試執(zhí)行軟件采用的是VECTOR的CANoe軟件,該軟件可以實(shí)現(xiàn)CAN總線的分析仿真及測(cè)試,可以同時(shí)進(jìn)行多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)模擬仿真,因此可以根據(jù)整車實(shí)際情況模擬整車網(wǎng)絡(luò)架構(gòu),實(shí)現(xiàn)被測(cè)控制器全部網(wǎng)絡(luò)環(huán)境模擬。另外,CANoe軟件還可以編輯DBC數(shù)據(jù)庫(kù),DBC數(shù)據(jù)庫(kù)中包含著被測(cè)控制器相關(guān)的網(wǎng)絡(luò)節(jié)點(diǎn),CAN報(bào)文和信號(hào)的層級(jí)關(guān)系,便于測(cè)試控制器的邏輯功能。CANoe軟件中的CANdelaStudio插件可以編制診斷數(shù)據(jù)庫(kù)CDD,CDD中包含著被測(cè)控制器的診斷服務(wù)以及可以實(shí)現(xiàn)的診斷功能層級(jí)關(guān)系,便于測(cè)試控制器的診斷功能。DBC和CDD都是實(shí)現(xiàn)自動(dòng)化測(cè)試的基礎(chǔ)。測(cè)試用例編制軟件采用的是vTESTstudio軟件,該軟件用以進(jìn)行測(cè)試用例的設(shè)計(jì),加載DBC和CDD文件后,基于控制器ECU的測(cè)試需求,對(duì)相應(yīng)的邏輯功能和診斷功能設(shè)計(jì)對(duì)應(yīng)的測(cè)試步驟,編制完成并編譯通過(guò)之后,生成的測(cè)試腳本文件可加載到CANoe中,進(jìn)行測(cè)試執(zhí)行。
2軟件自動(dòng)化測(cè)試方法的分析及應(yīng)用
2.1數(shù)據(jù)驅(qū)動(dòng)的自動(dòng)化測(cè)試技術(shù)
數(shù)據(jù)驅(qū)動(dòng)測(cè)試技術(shù)將被測(cè)數(shù)據(jù)和測(cè)試的腳本分隔開(kāi);被測(cè)數(shù)據(jù)可以采取多種方式存儲(chǔ)起來(lái),例如列表、期望值和輸入值分別記錄到列表中,在每次被讀入數(shù)據(jù)的時(shí)候不容易發(fā)生遺漏;同時(shí),測(cè)試的腳本由于和數(shù)據(jù)分隔開(kāi)了,且它本身是帶有一些存儲(chǔ)著數(shù)據(jù)信息的標(biāo)記的,因此,腳本是可以獨(dú)立進(jìn)行測(cè)試的,不與其他信息沖突。很顯然,這種數(shù)據(jù)和腳本分隔的測(cè)試方式,能夠確保測(cè)試的穩(wěn)定性,由于分成了幾個(gè)模塊,也便于測(cè)試人員進(jìn)行維護(hù),更容易激發(fā)創(chuàng)新,創(chuàng)造出新型的測(cè)試方式。相應(yīng)地,該方式也有一定的缺陷,體現(xiàn)在軟件的兼容性的差異,導(dǎo)致了同一個(gè)測(cè)試腳本用于不同的軟件上時(shí),需要針對(duì)性地做出一定的改動(dòng),也就增加了整體的成本。
2.2數(shù)據(jù)預(yù)處理驗(yàn)證
數(shù)據(jù)預(yù)處理驗(yàn)證是大數(shù)據(jù)測(cè)試的第一步,也叫作Pre-hadoop階段。本階段主要用來(lái)驗(yàn)證以下幾個(gè)方面:首先,需要對(duì)各類關(guān)系數(shù)據(jù)庫(kù)、日志系統(tǒng)、社交網(wǎng)絡(luò)、互聯(lián)網(wǎng)文本和文件等各種數(shù)據(jù)資源的收集進(jìn)行驗(yàn)證,用以驗(yàn)證相關(guān)的資源能被正常地加載進(jìn)系統(tǒng);其次,對(duì)數(shù)據(jù)加載驗(yàn)證之后,需要對(duì)hadoop系統(tǒng)中的數(shù)據(jù)和源數(shù)據(jù)的一致性進(jìn)行驗(yàn)證;最后,需要驗(yàn)證正確的數(shù)據(jù)被提取和被加載到HDFS(HadoopDistributedFileSystem)正確的數(shù)據(jù)節(jié)點(diǎn)中。
2.3診斷功能測(cè)試
診斷功能測(cè)試與邏輯功能測(cè)試的過(guò)程基本一致,都是先編制數(shù)據(jù)庫(kù),再編制測(cè)試用例,最后測(cè)試執(zhí)行。診斷測(cè)試的數(shù)據(jù)庫(kù)是用CANoe的CANdelaStudio插件編制診斷數(shù)據(jù)庫(kù)CDD文件。編制測(cè)試用例的過(guò)程與編制邏輯功能測(cè)試用例的過(guò)程也基本一樣,都是建立測(cè)試工程、建立測(cè)試單元、建立測(cè)試表、建立測(cè)試用例。只不過(guò)診斷測(cè)試用例編制時(shí)使用的命令不同,主要用到的是DiagnosticsService:診斷服務(wù)命令,用以添加診斷描述文件CDD中的所有診斷命令,向控制器ECU發(fā)送診斷需求報(bào)文;DiagnosticsUnlockECU:診斷解鎖ECU命令,主要用以安全訪問(wèn),解鎖ECU,實(shí)現(xiàn)對(duì)ECU相應(yīng)數(shù)據(jù)更改控制。
2.4 MapReduce驗(yàn)證
MapReduce驗(yàn)證,這個(gè)其實(shí)最早是由Google公司提出的,是一種面向大規(guī)模數(shù)據(jù)處理的并行技術(shù)模型,其通過(guò)各個(gè)公司和計(jì)算機(jī)工程師進(jìn)行運(yùn)用之后被認(rèn)為是最簡(jiǎn)單和高效的大數(shù)據(jù)并行處理技術(shù)。MapReduce驗(yàn)證的核心思想是“分而治之”,它將整個(gè)任務(wù)分成了兩個(gè)階段:Map和Reduce。驗(yàn)證執(zhí)行前先進(jìn)行數(shù)據(jù)拆分,一個(gè)大的MapReduce作業(yè),會(huì)被分解為多個(gè)小的Map任務(wù)。中間環(huán)節(jié),可能會(huì)有Combiner處理Map生成的數(shù)據(jù);之后數(shù)據(jù)到達(dá)Partitioner,將中間結(jié)果分配到對(duì)應(yīng)的Reducer所在節(jié)點(diǎn)上;Reducer會(huì)處理中間數(shù)據(jù),得到最終的結(jié)果。
結(jié)束語(yǔ)
自動(dòng)測(cè)試過(guò)程控制方式是實(shí)現(xiàn)產(chǎn)品自動(dòng)化測(cè)試過(guò)程中需解決的眾多問(wèn)題中的重要技術(shù)問(wèn)題之一,本文舉例闡述了兩種常見(jiàn)的自動(dòng)測(cè)試過(guò)程控制方式,對(duì)于實(shí)現(xiàn)鐵路信號(hào)產(chǎn)品的自動(dòng)測(cè)試有重要的借鑒意義。上述兩種自動(dòng)測(cè)試過(guò)程控制方式在鐵路列控產(chǎn)品測(cè)試中均有成功應(yīng)用,為保障鐵路安全運(yùn)行起了重要作用。
參考文獻(xiàn):
[1]劉玉珍.基于Markov鏈的Web應(yīng)用系統(tǒng)測(cè)試用例生成技術(shù)[D].南京郵電大學(xué),2020.
[2]彭洪超.基于Android系統(tǒng)的自動(dòng)化測(cè)試用例的實(shí)現(xiàn)和優(yōu)化[D].南京郵電大學(xué),2020.
[3]李暢.5G基站自動(dòng)化測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].中國(guó)科學(xué)院大學(xué)(中國(guó)科學(xué)院大學(xué)人工智能學(xué)院),2020.