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