国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式軟件單元自動(dòng)化測(cè)試工具的研究

2021-10-08 01:34:29王斌趙連杰王宏愿
錦繡·上旬刊 2021年11期
關(guān)鍵詞:單元測(cè)試嵌入式自動(dòng)化

王斌 趙連杰 王宏愿

摘要:隨著軟件的廣泛應(yīng)用,在追求滿足越來(lái)越復(fù)雜的邏輯功能的同時(shí)也在追求高安全、高可靠的軟件。傳統(tǒng)的軟件單元測(cè)試,測(cè)試工作量巨大,需要耗費(fèi)大量的人力、物力,發(fā)現(xiàn)缺陷的嚴(yán)重等級(jí)與數(shù)量與測(cè)試投入不成正比。故本文,研究并設(shè)計(jì)嵌入式軟件單元的自動(dòng)化測(cè)試工具,解決源碼解析、靜態(tài)分析、控制流分析的自動(dòng)化執(zhí)行與測(cè)試,并進(jìn)行缺陷追溯與信息統(tǒng)計(jì),形成軟件單元測(cè)試的閉環(huán)。

最后針對(duì)此工具進(jìn)行外部接口的開(kāi)發(fā),可實(shí)現(xiàn)與Jenkins等主流工具的持續(xù)集成,真正實(shí)現(xiàn)源代碼上傳即可觸發(fā)軟件單元測(cè)試的自動(dòng)化流程。

關(guān)鍵詞:嵌入式;自動(dòng)化;單元測(cè)試;jenkins

1研究背景

本研究主要是基于當(dāng)前軌道交通裝備技術(shù)的高速發(fā)展,軟件發(fā)展的規(guī)模不斷增大,軟件迭代研發(fā)周期要求越來(lái)越短,測(cè)試壓力越來(lái)越大;軟件單元測(cè)試在軟件測(cè)試周期中的所占用的測(cè)試時(shí)間,測(cè)試人員,擁有非常大的比重;幾乎每個(gè)項(xiàng)目的軟件單元測(cè)試的測(cè)試需求一致,導(dǎo)致產(chǎn)生大量的重復(fù)性工作量,嚴(yán)重延長(zhǎng)項(xiàng)目的研發(fā)生產(chǎn)周期。故基于現(xiàn)狀進(jìn)行深化研究,計(jì)劃開(kāi)發(fā)嵌入式軟件單元自動(dòng)化測(cè)試工具,以實(shí)現(xiàn)自源代碼上傳之后可以自動(dòng)化執(zhí)行軟件單元測(cè)試的愿景。

2核心技術(shù)設(shè)計(jì)方案

2.1軟件單元自動(dòng)化測(cè)試工具架構(gòu)設(shè)計(jì)

此軟件單元自動(dòng)化測(cè)試工具的架構(gòu)設(shè)計(jì)如圖1架構(gòu)設(shè)計(jì)圖所示

2.2源碼解析

此工具首先解析用戶上傳的源碼庫(kù)、編譯依賴庫(kù)。在仿真環(huán)境下,將源代碼和編譯依賴進(jìn)行打包,統(tǒng)一進(jìn)行編譯鏈接。若編譯失敗,則需要不斷補(bǔ)充編譯依賴庫(kù),使得源碼本身對(duì)編譯環(huán)境依賴的頭文件等都導(dǎo)入到系統(tǒng)中。這樣,源碼可不依賴于原有的編譯器和編譯環(huán)境,可實(shí)現(xiàn)直接可在工具內(nèi)編譯執(zhí)行。

2.3靜態(tài)分析

此工具對(duì)源碼進(jìn)行解析后,先對(duì)待測(cè)單元進(jìn)行度量分析。從三個(gè)方向進(jìn)行度量分析,分別:圈復(fù)雜度分析、注釋率分析、扇入扇出分析。首先對(duì)待測(cè)單元進(jìn)行控制流的分析,通過(guò)控制流圖的程序流程進(jìn)行圈復(fù)雜度的分析及統(tǒng)計(jì)。其次對(duì)待測(cè)單元的總行數(shù)、代碼行數(shù)、注釋行數(shù)進(jìn)行統(tǒng)計(jì),并計(jì)算注釋率。最后對(duì)待測(cè)單元的調(diào)用情況進(jìn)行數(shù)據(jù)統(tǒng)計(jì),計(jì)算統(tǒng)計(jì)出待測(cè)單元的扇入扇出數(shù)。

工具設(shè)計(jì)需具備高效易用的編碼規(guī)則檢查功能模塊,集成了包括MISRA C/C++2012、GJB8114等規(guī)則集中的重要規(guī)則,同時(shí)支持自定義規(guī)則集導(dǎo)入。源代碼進(jìn)入規(guī)則集檢查器,規(guī)則集檢查器運(yùn)行每條規(guī)則的算法,對(duì)代碼進(jìn)行遍歷檢查。通過(guò)的代碼,進(jìn)行代碼遞增和規(guī)則遞增;未通過(guò)的規(guī)則進(jìn)行缺陷統(tǒng)計(jì)和定位。

2.4控制流測(cè)試

控制流測(cè)試用例自動(dòng)生成。本工具設(shè)計(jì)通過(guò)符號(hào)執(zhí)行技術(shù)對(duì)函數(shù)路徑的遍歷,讓機(jī)器理解代碼。用戶將目標(biāo)程序提供給系統(tǒng)編譯器前端,在編譯解析產(chǎn)生中間文件后,符號(hào)執(zhí)行工具對(duì)中間代碼進(jìn)行符號(hào)執(zhí)行,即對(duì)目標(biāo)程序路徑空間進(jìn)行逐路徑探索,從而自動(dòng)化地對(duì)應(yīng)生成較高覆蓋率的測(cè)試用例集。

符號(hào)執(zhí)行以符號(hào)值作為程序的輸入,符號(hào)化地執(zhí)行程序,程序的輸出也為變量的表達(dá)式。使用約束求解器來(lái)判定程序的路徑是否可行。符號(hào)執(zhí)行技術(shù)能夠遍歷程序的路徑空間,檢查程序是否滿足特定的性質(zhì)。

2.5功能測(cè)試

進(jìn)行自動(dòng)化的控制流測(cè)試之后,僅能驗(yàn)證每個(gè)軟件單的語(yǔ)句、分支、修正的條件組合覆蓋,無(wú)法驗(yàn)證每個(gè)軟件單元的功能。故開(kāi)發(fā)功能測(cè)試模塊,解析羅列出每個(gè)軟件單元的全局輸入變量,并對(duì)調(diào)用的軟件單元進(jìn)行打樁。用戶通過(guò)圖形化的界面,結(jié)合軟件詳細(xì)設(shè)計(jì)規(guī)范中,每個(gè)軟件單元的功能邏輯,對(duì)每個(gè)軟件單元的全局輸入變量進(jìn)行賦值,對(duì)樁單元進(jìn)行返回值設(shè)置。

2.6缺陷追溯

工具在高覆蓋率分析函數(shù)路徑的同時(shí),還具備能實(shí)現(xiàn)程序中缺陷的精準(zhǔn)查找,結(jié)合系統(tǒng)自動(dòng)化生成測(cè)試框架的能力,工具在測(cè)試過(guò)程中發(fā)現(xiàn)的缺陷,是在特定的參數(shù)條件下,根據(jù)函數(shù)路徑執(zhí)行求解中確定。所以,所有的缺陷都需要能夠準(zhǔn)確定位到代碼具體位置,并展示該缺陷發(fā)生的具體條件。

2.7信息統(tǒng)計(jì)

工具對(duì)軟件測(cè)試信息進(jìn)行信息統(tǒng)計(jì),提供統(tǒng)計(jì)信息界面和項(xiàng)目看板界面。統(tǒng)計(jì)信息界面用數(shù)字和圖形方式展示當(dāng)前用戶全部測(cè)試工程統(tǒng)計(jì)信息,包括工程數(shù)量、總函數(shù)數(shù)量、總代碼量、測(cè)試用例數(shù)量、已分析/未分析函數(shù)數(shù)量、工程類型分布、各工程函數(shù)平均覆蓋率以及不同類型工程中函數(shù)覆蓋率分布。

2.8持續(xù)集成

當(dāng)前軟件行業(yè)的測(cè)試多趨向于自動(dòng)化、智能化。在此工具中,對(duì)關(guān)鍵的功能點(diǎn)進(jìn)行了后端調(diào)用接口的開(kāi)發(fā),實(shí)現(xiàn)了通過(guò)命令行的形式進(jìn)行自動(dòng)化調(diào)用。分別實(shí)現(xiàn)源碼解析、靜態(tài)分析、控制流測(cè)試、數(shù)據(jù)導(dǎo)出的腳本驅(qū)動(dòng)操作。通過(guò)與jenkins進(jìn)行插件式集成,實(shí)現(xiàn)了源碼上傳即可觸發(fā)自動(dòng)拉取代碼,傳輸至工具,觸發(fā)測(cè)試的機(jī)制。

3總結(jié)

隨著功能日益強(qiáng)大的嵌入式系統(tǒng)不斷發(fā)展并投入廣泛應(yīng)用,如何保證軟件質(zhì)量成為了工程技術(shù)人員必須要解決的難題。軟件單元測(cè)試是嵌入式軟件開(kāi)發(fā)過(guò)程中早期進(jìn)行軟件功能驗(yàn)證,可靠性確認(rèn)的重要手段,對(duì)后續(xù)階段軟件測(cè)試與保證軟件質(zhì)量具有重要意義。

本文針對(duì)嵌入式軟件單元測(cè)試,設(shè)計(jì)了一款源碼解析、靜態(tài)分析、控制流測(cè)試的自動(dòng)化執(zhí)行工具必將在提升嵌入式軟件質(zhì)量方面發(fā)揮愈加重要的作用。

猜你喜歡
單元測(cè)試嵌入式自動(dòng)化
搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
供熱站自動(dòng)控制系統(tǒng)中PLC的應(yīng)用
AGV小車在白酒行業(yè)自動(dòng)化立體倉(cāng)庫(kù)中的應(yīng)用
配電室無(wú)人職守集控站在京博石化的運(yùn)用
科技視界(2016年20期)2016-09-29 14:13:02
配電線路運(yùn)行資料管理自動(dòng)化的探討
科技視界(2016年20期)2016-09-29 13:45:10
一年級(jí)上冊(cè)第五單元測(cè)試
一年級(jí)上冊(cè)一、二單元測(cè)試
Altera加入嵌入式視覺(jué)聯(lián)盟
倍福 CX8091嵌入式控制器
嘉峪关市| 铜川市| 海伦市| 通许县| 陆川县| 射洪县| 黑河市| 崇礼县| 宣汉县| 广水市| 津南区| 新泰市| 晋州市| 鄂托克前旗| 巴南区| 图片| 宁城县| 逊克县| 临武县| 大方县| 吉隆县| 北京市| 邛崃市| 会同县| 彭山县| 紫金县| 广丰县| 德兴市| 凉山| 罗山县| 清苑县| 仁寿县| 怀宁县| 喀喇沁旗| 高清| 崇义县| 英吉沙县| 广宁县| 且末县| 保德县| 三都|