電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 1850|回復(fù): 0
收起左側(cè)

學(xué)嵌入式有前途_嵌入式軟件系統(tǒng)測(cè)試中的仿真系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級(jí)會(huì)員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-7-30 14:46:29 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
學(xué)嵌入式有前途_嵌入式軟件系統(tǒng)測(cè)試中的仿真系統(tǒng)結(jié)構(gòu)設(shè)計(jì),   



1 嵌入式系統(tǒng)概述

嵌入式系統(tǒng)是以計(jì)算機(jī)技術(shù)為基礎(chǔ),以應(yīng)用為中心,并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。

嵌入式軟件是基于嵌入式系統(tǒng)設(shè)計(jì)的軟件,是計(jì)算機(jī)軟件的一種,同樣由程序及文檔組成,可細(xì)分成系統(tǒng)軟件、支撐軟件、應(yīng)用軟件三類。嵌入式軟件大量應(yīng)用于家用、工業(yè)、商業(yè)、通訊和國(guó)防領(lǐng)域。我國(guó)目前在嵌入式應(yīng)用軟件方面具有優(yōu)勢(shì)。在嵌入式系統(tǒng)中,軟件的工作量約占全部工作量的80%,其中測(cè)試與驗(yàn)證的工作量占軟件工作量的70%。

1.1 嵌入式軟件特點(diǎn)和測(cè)試難點(diǎn)

嵌入式系統(tǒng)開(kāi)發(fā)有其自身的特點(diǎn)。通常,在嵌入式系統(tǒng)軟件中,底層驅(qū)動(dòng)程序、操作系統(tǒng)和應(yīng)用程序的界線是不清晰的,有時(shí)甚至混編在一起。這主要是因?yàn)榍度胧较到y(tǒng)中軟件對(duì)硬件的依賴性造成的。由于嵌入式軟件對(duì)硬件的依賴性,軟件測(cè)試時(shí)必須最大限度地模擬被測(cè)軟件的實(shí)際運(yùn)行環(huán)境,以保證測(cè)試的可靠性。底層程序和應(yīng)用程序界限的不清晰增加了測(cè)試難度。測(cè)試時(shí),只有在確認(rèn)了嵌入式系統(tǒng)平臺(tái)及底層程序正確的情況下才能進(jìn)行應(yīng)用程序的測(cè)試,而且在系統(tǒng)測(cè)試時(shí),對(duì)錯(cuò)誤的檢測(cè)定位較為困難。軟件的專用性也是嵌入式軟件的一個(gè)重要特點(diǎn)。由于嵌入式軟件設(shè)計(jì)是以一定的目標(biāo)硬件平臺(tái)為基礎(chǔ)、面向固定任務(wù)進(jìn)行的,因此,一旦被加載到目標(biāo)系統(tǒng)上,功能必須完全確定。這個(gè)特點(diǎn)決定了嵌入式應(yīng)用軟件的繼承性較差,延長(zhǎng)了系統(tǒng)的測(cè)試時(shí)間,增加了測(cè)試費(fèi)用。嵌入式軟件的另外一個(gè)重要特點(diǎn)就是實(shí)時(shí)性,這是從軟件執(zhí)行的角度考慮的,也就是說(shuō)嵌入式軟件的執(zhí)行要滿足一定的時(shí)間約束。嵌入式系統(tǒng)中,應(yīng)用軟件自身算法的復(fù)雜度和操作系統(tǒng)任務(wù)調(diào)度,決定了系統(tǒng)資源的分配和消耗。因此,對(duì)系統(tǒng)實(shí)時(shí)性進(jìn)行測(cè)試時(shí),要借助一定的測(cè)試工具對(duì)應(yīng)用程序算法復(fù)雜度和操作系統(tǒng)任務(wù)調(diào)度進(jìn)行分析測(cè)試。

1.2 嵌入式軟件測(cè)試方法

軟件測(cè)試是軟件開(kāi)發(fā)中的一個(gè)重要環(huán)節(jié),嵌入式軟件也不例外。圖1給出了嵌入式軟件測(cè)試的一般流程。根據(jù)不同的指標(biāo),軟件測(cè)試方法[1]有不同的劃分方法。根據(jù)軟件開(kāi)發(fā)過(guò)程中測(cè)試所處的不同階段可分為模塊測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試;根據(jù)是否需要運(yùn)行目標(biāo)代碼分為動(dòng)態(tài)測(cè)試和靜態(tài)測(cè)試;根據(jù)目標(biāo)代碼的可見(jiàn)性可分為白盒測(cè)試(結(jié)構(gòu)測(cè)試)和黑盒測(cè)試(功能測(cè)試)。在軟件測(cè)試中,每種測(cè)試方法都不是孤立的。為了最經(jīng)濟(jì)、最有效地達(dá)到測(cè)試目的,各種測(cè)試方法往往互相嵌套。例如,在軟件的單元測(cè)試階段,可以用黑盒測(cè)試和白盒測(cè)試的方法分別進(jìn)行動(dòng)態(tài)測(cè)試。而在系統(tǒng)測(cè)試階段,只能使用黑盒測(cè)試方法進(jìn)行測(cè)試。






為了更有效地進(jìn)行嵌入式軟件的系統(tǒng)測(cè)試,提出了嵌入式軟件系統(tǒng)測(cè)試中具有交互式錯(cuò)誤檢測(cè)定位功能的仿真系統(tǒng)架構(gòu)設(shè)計(jì)方案。使用此仿真系統(tǒng)不僅可以按照第一類測(cè)試方法[2]和第二類測(cè)試方法[3]輔助進(jìn)行系統(tǒng)測(cè)試,而且還可以利用仿真系統(tǒng)的交互式學(xué)習(xí)功能,不斷積累錯(cuò)誤定位經(jīng)驗(yàn),實(shí)現(xiàn)錯(cuò)誤檢測(cè)定位,為測(cè)試人員和開(kāi)發(fā)人員節(jié)省大量時(shí)間。這是其他測(cè)試方法所不具備的。

2 仿真系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

嵌入式軟件的硬件載體大部分為專用計(jì)算機(jī)設(shè)備,并且通常沒(méi)有外圍設(shè)備用于測(cè)試過(guò)程中的監(jiān)測(cè)或觀察。而有些嵌入式軟件還會(huì)存在交互式操作。在被測(cè)軟件移植到目標(biāo)機(jī)上的實(shí)際硬件環(huán)境以后,由于與嵌入式系統(tǒng)平臺(tái)和底層程序融為一體,對(duì)系統(tǒng)進(jìn)行黑盒測(cè)試時(shí),錯(cuò)誤定位將變得非常困難。因此根據(jù)嵌入式軟件的特點(diǎn),提出了一個(gè)具有交互式錯(cuò)誤檢測(cè)定位功能的仿真系統(tǒng)結(jié)構(gòu)模型。圖2為仿真系統(tǒng)分層結(jié)構(gòu)圖。仿真系統(tǒng)在設(shè)計(jì)上采用分層結(jié)構(gòu)、分層設(shè)計(jì)、分層實(shí)現(xiàn)的方式,每一層的內(nèi)部實(shí)現(xiàn)對(duì)其他層透明。






仿真系統(tǒng)由硬件驅(qū)動(dòng)、交互操作模塊、驅(qū)動(dòng)模塊、樁模塊、分析模塊和人機(jī)界面六個(gè)部分組成。下面分別介紹各個(gè)模塊的功能。

(1)硬件驅(qū)動(dòng)部分負(fù)責(zé)驅(qū)動(dòng)硬件,向上一層提供底層硬件的操作接口。仿真系統(tǒng)通過(guò)硬件驅(qū)動(dòng)為嵌入式軟件提供相應(yīng)的通信接口,用于嵌入式軟件和仿真系統(tǒng)之間的數(shù)據(jù)交換。通信接口根據(jù)具體嵌入式軟件的接口設(shè)計(jì)實(shí)現(xiàn),一般為各種通訊協(xié)議。各通訊協(xié)議模塊之間松散耦合,且具備可擴(kuò)展性,保證硬件接口的改變不會(huì)影響上層的功能實(shí)現(xiàn)。

(2)交互操作模塊負(fù)責(zé)與嵌入式軟件的交互操作。此部分可裁剪,主要根據(jù)嵌入式軟件是否需要交互操作而定。其主要功能需要根據(jù)特定的軟件設(shè)計(jì)實(shí)現(xiàn)。

(3)驅(qū)動(dòng)模塊負(fù)責(zé)封裝與仿真系統(tǒng)測(cè)試數(shù)據(jù)有關(guān)的處理邏輯,向人機(jī)界面提供獨(dú)立于體系結(jié)構(gòu)的操作接口。系統(tǒng)測(cè)試階段除了正常的功能和性能測(cè)試,更應(yīng)該進(jìn)行意外測(cè)試和破壞性測(cè)試,即測(cè)試系統(tǒng)正常執(zhí)行情況下不該發(fā)生的激發(fā)活動(dòng)和人為的破壞性測(cè)試,進(jìn)一步驗(yàn)證系統(tǒng)性能。而驅(qū)動(dòng)模塊則將測(cè)試用例中各種測(cè)試數(shù)據(jù)傳輸給被測(cè)嵌入式軟件。

(4)樁模塊為嵌入式軟件提供各種必要的輸入數(shù)據(jù)。嵌入式軟件的正常運(yùn)行需要必要的外界輸入數(shù)據(jù),以完成系統(tǒng)的正常運(yùn)行和交互。無(wú)論這些輸入數(shù)據(jù)通過(guò)什么方式提供,樁模塊都應(yīng)該為嵌入式軟件模擬各種輸入數(shù)據(jù)。對(duì)于系統(tǒng)測(cè)試來(lái)說(shuō),輸入數(shù)據(jù)也應(yīng)該包括正常數(shù)據(jù)和非法數(shù)據(jù)兩種。

(5)分析模塊包括測(cè)試結(jié)果、預(yù)期結(jié)果和故障模型三部分。測(cè)試結(jié)果為執(zhí)行測(cè)試用例以后被測(cè)軟件執(zhí)行的結(jié)果;預(yù)期結(jié)果為測(cè)試開(kāi)始之前,測(cè)試人員針對(duì)不同測(cè)試用例輸入的預(yù)期結(jié)果;故障模型中包括對(duì)各種故障的定位。故障模型在一個(gè)測(cè)試結(jié)束后,積累的錯(cuò)誤定位模型可以通過(guò)外部接口導(dǎo)出,既可以用作其他測(cè)試系統(tǒng)的故障模型,也可以導(dǎo)出Word或Excel文件,用于開(kāi)發(fā)人員進(jìn)行分析總結(jié)。

分析模塊在得到測(cè)試結(jié)果以后,首先與預(yù)期結(jié)果比較。如果相同,則測(cè)試通過(guò);否則在故障模型中搜索相應(yīng)的故障,并定位故障。如果故障模型中沒(méi)有相應(yīng)的錯(cuò)誤定位,分析模塊直接將未通過(guò)測(cè)試的測(cè)試結(jié)果和測(cè)試用例反饋給測(cè)試人員,由測(cè)試人員進(jìn)行定位。當(dāng)錯(cuò)誤定位以后,測(cè)試人員根據(jù)測(cè)試實(shí)例修改故障模型,增加錯(cuò)誤判斷事件。通過(guò)不斷循環(huán),故障模型部分的各種故障定位逐漸增加,仿真系統(tǒng)在不斷學(xué)習(xí)過(guò)程中實(shí)現(xiàn)錯(cuò)誤定位。

(6)人機(jī)界面用于各種數(shù)據(jù)、結(jié)果的輸入和顯示,以及交互操作的人工輸入界面。

3 鐵路微機(jī)聯(lián)鎖系統(tǒng)測(cè)試

被測(cè)鐵路微機(jī)聯(lián)鎖2乘2取2系統(tǒng)運(yùn)行在CPU(486DX)上,屬于典型的嵌入式軟件。邏輯圖如圖3所示。




被測(cè)嵌入式軟件運(yùn)行在圖3中A系和B系的CPU中,通過(guò)以太網(wǎng)接收人工下達(dá)的聯(lián)鎖命令,經(jīng)過(guò)處理后通過(guò)DP協(xié)議網(wǎng)絡(luò)傳輸給輸出模塊,控制現(xiàn)場(chǎng)設(shè)備。A、B系中只能以一個(gè)系為主系,主從系的切換可以通過(guò)手動(dòng)切換實(shí)現(xiàn),也可以自動(dòng)切換。

3.1 測(cè)試實(shí)施

測(cè)試實(shí)施之前,首先編制測(cè)試用例,并針對(duì)每個(gè)測(cè)試用例給出預(yù)期結(jié)果和可能產(chǎn)生的錯(cuò)誤以及相應(yīng)錯(cuò)誤的故障定位。把這些數(shù)據(jù)輸入仿真系統(tǒng)的分析模型中,為即將進(jìn)行的測(cè)試工作做準(zhǔn)備。

在測(cè)試實(shí)施過(guò)程中,首先利用此仿真系統(tǒng)按照第一類測(cè)試方法進(jìn)行測(cè)試,驗(yàn)證鐵路聯(lián)鎖2乘2取2系統(tǒng)被測(cè)軟件是‘工作的‘,也就是軟件的功能是按照預(yù)先的設(shè)計(jì)執(zhí)行的。然后按照第二類測(cè)試方法進(jìn)行測(cè)試,驗(yàn)證軟件是不工作的。

使用仿真系統(tǒng)設(shè)計(jì)并實(shí)施了很多在實(shí)際軟硬件環(huán)境中不可能實(shí)現(xiàn)的測(cè)試用例。舉例說(shuō)明如下:

(1)非法數(shù)據(jù)的輸入。正常運(yùn)行的系統(tǒng),操作人員不可能發(fā)送錯(cuò)誤的聯(lián)鎖命令給被測(cè)軟件,輸入模塊也不可能產(chǎn)生測(cè)試需要的各種非法輸入數(shù)據(jù)。使用仿真系統(tǒng)的驅(qū)動(dòng)模塊和樁模塊,可以很輕松地發(fā)送任何組合形式的非法數(shù)據(jù),以測(cè)試鐵路聯(lián)鎖2乘2取2系統(tǒng)被測(cè)軟件的安全性。結(jié)合分析模塊的使用,具體實(shí)施過(guò)程為:
通過(guò)人機(jī)界面輸入超長(zhǎng)非法測(cè)試數(shù)據(jù)6,244,244,80,0,17,1,0,80,0,255,255,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0給被測(cè)軟件,預(yù)期結(jié)果為無(wú)測(cè)試結(jié)果數(shù)據(jù)返回,即嵌入式軟件將非法數(shù)據(jù)過(guò)濾掉,不進(jìn)行任何操作。仿真系統(tǒng)通過(guò)人機(jī)界面提示測(cè)試通過(guò),實(shí)際情況也確實(shí)是微機(jī)聯(lián)鎖系統(tǒng)未進(jìn)行任何操作,便將超長(zhǎng)的非法數(shù)據(jù)過(guò)濾了。通過(guò)人機(jī)界面輸入固定碼的非法測(cè)試數(shù)據(jù)170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,預(yù)期結(jié)果為無(wú)測(cè)試數(shù)據(jù)返回,即嵌入式軟件將非法數(shù)據(jù)過(guò)濾,不進(jìn)行任何操作。仿真系統(tǒng)通過(guò)人機(jī)界面提示測(cè)試通過(guò),而實(shí)際情況是微機(jī)聯(lián)鎖單元出現(xiàn)了死機(jī)現(xiàn)象。針對(duì)這種情況,修改預(yù)期結(jié)果內(nèi)容為“無(wú)測(cè)試數(shù)據(jù)返回且與被測(cè)應(yīng)用軟件正常通訊”,而在故障模型中增加了“與被測(cè)應(yīng)用軟件無(wú)任何通訊”項(xiàng),以修正仿真系統(tǒng)的錯(cuò)誤定位為微機(jī)聯(lián)鎖單元死機(jī)。同理也要修改前面超長(zhǎng)非法測(cè)試數(shù)據(jù)的預(yù)期結(jié)果和故障模型的內(nèi)容。如此反復(fù),仿真系統(tǒng)的分析模型也在不斷完善中。

(2)通信容量測(cè)試。鐵路聯(lián)鎖2乘2取2系統(tǒng)被測(cè)軟件中的基本功能包括系統(tǒng)通信最大I/O模塊總數(shù)為100。在正常測(cè)試過(guò)程中,一般無(wú)法為測(cè)試搭建如此大規(guī)模的硬件測(cè)試環(huán)境,即使可以搭建,也會(huì)因?yàn)樾詢r(jià)比較低而不實(shí)施此項(xiàng)測(cè)試。使用仿真系統(tǒng),可以通過(guò)樁模塊和驅(qū)動(dòng)模塊輕松實(shí)現(xiàn)100個(gè)I/O模塊的通信量,同時(shí)可以省去購(gòu)置I/O硬件模塊的費(fèi)用。

(3)鐵路聯(lián)鎖系統(tǒng)軟件需要滿足IEC61508標(biāo)準(zhǔn)[4]中SIL4的要求。通過(guò)仿真軟件驅(qū)動(dòng)模塊重復(fù)發(fā)送聯(lián)鎖命令,可以很容易地測(cè)試鐵路聯(lián)鎖2乘2取2系統(tǒng)中的軟件是否滿足SIL4的要求,而這些測(cè)試如果單純用人工輸入進(jìn)行測(cè)試是不可能實(shí)現(xiàn)的。交互操作模塊則可以在測(cè)試過(guò)程中完成軟件與人必需的交互操作功能。

被測(cè)軟件第一次測(cè)試結(jié)束后,開(kāi)發(fā)人員根據(jù)仿真系統(tǒng)的錯(cuò)誤定位集中修改軟件中的BUG,然后提交進(jìn)行第一次回歸測(cè)試。經(jīng)過(guò)在第一次測(cè)試中人機(jī)交互的不斷完善,仿真系統(tǒng)的分析模型趨于成熟,在回歸測(cè)試過(guò)程中能很快定位錯(cuò)誤,為測(cè)試及開(kāi)發(fā)人員節(jié)省了大量時(shí)間,縮短了軟件開(kāi)發(fā)周期。

3.2 測(cè)試結(jié)果

通過(guò)使用仿真系統(tǒng)對(duì)鐵路聯(lián)鎖2乘2取2系統(tǒng)被測(cè)軟件實(shí)施測(cè)試,共發(fā)現(xiàn)涉及軟件故障安全原則的致命問(wèn)題和嚴(yán)重問(wèn)題10個(gè),涉及軟件漏洞安全的致命問(wèn)題和嚴(yán)重問(wèn)題5個(gè),涉及功能未實(shí)現(xiàn)的致命問(wèn)題和嚴(yán)重問(wèn)題6個(gè),涉及可靠性的致命問(wèn)題1個(gè),一般和提示問(wèn)題30個(gè)。

針對(duì)嵌入式軟件的特點(diǎn)提出的具備交互式錯(cuò)誤檢測(cè)定位功能的仿真系統(tǒng)架構(gòu)模型,實(shí)現(xiàn)了在系統(tǒng)測(cè)試過(guò)程中檢測(cè)定位軟件錯(cuò)誤,解決了嵌入式軟件系統(tǒng)測(cè)試過(guò)程中,由于被測(cè)程序與嵌入式系統(tǒng)平臺(tái)和底層程序融合在一起,錯(cuò)誤不容易定位的問(wèn)題。通過(guò)在鐵路微機(jī)聯(lián)鎖測(cè)系統(tǒng)試項(xiàng)目中的應(yīng)用,發(fā)現(xiàn)了很多關(guān)鍵性問(wèn)題,并且為測(cè)試人員和開(kāi)發(fā)人員節(jié)省了大量時(shí)間,加快了測(cè)試進(jìn)度,在回歸測(cè)試階段表現(xiàn)尤為明顯。事實(shí)表明,此仿真系統(tǒng)架構(gòu)模型不僅可以應(yīng)用于嵌入式軟件的系統(tǒng)測(cè)試,也可以應(yīng)用于非嵌入式軟件的黑盒測(cè)試。在以后的研究中,將應(yīng)用人工智能學(xué)科的學(xué)習(xí)理論,實(shí)現(xiàn)仿真系統(tǒng)分析模塊的自動(dòng)學(xué)習(xí)功能,以實(shí)現(xiàn)在測(cè)試過(guò)程中自動(dòng)定位軟件錯(cuò)誤,而無(wú)需人工干預(yù)。

發(fā)表回復(fù)

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表