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

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

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

嵌入式軟件技術(shù)軟件的測(cè)試策略以及方案設(shè)計(jì)

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

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

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-7-17 10:34:15 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  

(文章來(lái)源:安防知識(shí)網(wǎng))

軟硬件結(jié)合的嵌入式系統(tǒng)正越來(lái)越多地應(yīng)用到我們常見的儀器設(shè)備中,嵌入式領(lǐng)域目標(biāo)系統(tǒng)的應(yīng)用系統(tǒng)也日趨復(fù)雜,開發(fā)技術(shù)日新月異。同時(shí),隨著硬件技術(shù)發(fā)展的日趨穩(wěn)定,而軟件故障卻日益突顯,由此軟件的重要性已逐漸引起人們的重視,越來(lái)越多的研究人員認(rèn)識(shí)到嵌入式系統(tǒng),優(yōu)化其測(cè)試技術(shù)已勢(shì)在必行,研究出合適的嵌入式軟件系統(tǒng)測(cè)試方法,正是本課題的意義所在。

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

嵌入式系統(tǒng)一般指非PC類標(biāo)配系統(tǒng),它也包括硬件和軟件兩部分。硬件包括處理器/微處理器、存儲(chǔ)器及外設(shè)器件和I/O端口、圖形控制器等。軟件部分包括操作系統(tǒng)軟件(OS)(要求實(shí)時(shí)和多任務(wù)操作)和應(yīng)用程序。有時(shí)設(shè)計(jì)人員把這兩種軟件組合在一起。應(yīng)用程序控制著系統(tǒng)的運(yùn)作和行為,而操作系統(tǒng)控制著應(yīng)用程序編程與硬件的交互作用。

嵌入式系統(tǒng)開發(fā)有其自身的特點(diǎn)。一般先進(jìn)行硬件部分的開發(fā),主要包括形成裸機(jī)平臺(tái),根據(jù)需要移植實(shí)時(shí)操作系統(tǒng),開發(fā)底層的硬件驅(qū)動(dòng)程序等。硬件平臺(tái)測(cè)試通過后,應(yīng)用軟件的開發(fā)調(diào)試是基于該硬件平臺(tái)進(jìn)行的,這同時(shí)也是對(duì)硬件平臺(tái)的一個(gè)測(cè)試。

嵌入式系統(tǒng)的開發(fā)過程是一個(gè)軟硬件互相協(xié)調(diào),互相反饋和互相測(cè)試的過程。一般來(lái)說(shuō),在嵌入式系統(tǒng)軟件中,底層驅(qū)動(dòng)程序、操作系統(tǒng)和應(yīng)用程序的界面是不清晰的,根據(jù)需要甚至混編在一起。這主要是由于嵌入式系統(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í),錯(cuò)誤的定位較為困難。

軟件的專用性也是嵌入式軟件的一個(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è)試。

  

可見嵌入式軟件與傳統(tǒng)的面向?qū)ο蠛兔嫦蜻^程的軟件相比有其自身的特點(diǎn)。所以嵌入式軟件的開發(fā)和測(cè)試也就與一般商用軟件的開發(fā)和測(cè)試策略有了很大的不同,可以說(shuō)嵌入式軟件是最難測(cè)試的一種軟件。針對(duì)這些特點(diǎn)對(duì)嵌入式軟件的測(cè)試進(jìn)行研究是必要的和有意義的。

軟件測(cè)試是軟件質(zhì)量保證的關(guān)鍵因素,代表了規(guī)約、設(shè)計(jì)和編碼的最終檢查。是從經(jīng)濟(jì)、效率的角度出發(fā),對(duì)軟件代碼進(jìn)行質(zhì)量、正確性保證的一個(gè)過程。軟件測(cè)試是軟件開發(fā)中的一個(gè)重要環(huán)節(jié),也是軟件從開發(fā)過程到應(yīng)用過程的關(guān)鍵一環(huán),嵌入式軟件也不例外。

從軟件開發(fā)過程中測(cè)試所處的不同階段可分為模塊測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試;根據(jù)是否需要運(yùn)行目標(biāo)代碼又可分為動(dòng)態(tài)測(cè)試和靜態(tài)測(cè)試;根據(jù)目標(biāo)代碼的可見性還可分為白盒測(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è)試。

近年來(lái),在軟件測(cè)試中,測(cè)試代碼的覆蓋率逐漸成為軟件測(cè)試的統(tǒng)一標(biāo)準(zhǔn),因此不管采用何種測(cè)試方法,盡可能地提高軟件測(cè)試中的代碼覆蓋率是必需的。軟件測(cè)試代碼覆蓋率是基于白盒測(cè)試方法的,因此,為了提高軟件測(cè)試的代碼覆蓋率,測(cè)試人員必須清楚源代碼的結(jié)構(gòu),擁有程序設(shè)計(jì)文檔,以便設(shè)計(jì)測(cè)試用例,使測(cè)試盡可能地覆蓋程序內(nèi)部結(jié)構(gòu)的每條語(yǔ)句,提高代碼的覆蓋率。

硬件電路測(cè)試需要用專門的測(cè)試工具進(jìn)行測(cè)試,這里不再多述。操作系統(tǒng)和底層驅(qū)動(dòng)程序的測(cè)試主要包括測(cè)試操作系統(tǒng)的任務(wù)調(diào)度、實(shí)時(shí)性能、通信端口的數(shù)據(jù)傳輸率。該階段測(cè)試完成后,系統(tǒng)應(yīng)為一個(gè)完整的嵌入式系統(tǒng)平臺(tái),用戶只需添加應(yīng)用程序即可完成特定的任務(wù)。在模塊測(cè)試階段,也可以把大的模塊劃分成小的模塊。在程序內(nèi)部,小模塊之間數(shù)據(jù)傳遞的入口設(shè)計(jì)接口函數(shù),要用于快速地定位錯(cuò)誤。用模塊嵌套的思想進(jìn)行軟件測(cè)試,需要模塊內(nèi)部結(jié)構(gòu)清晰,數(shù)據(jù)鏈路簡(jiǎn)單。

集成測(cè)試:?jiǎn)蝹(gè)軟件模塊測(cè)試正確之后,將所有模塊集成起來(lái)進(jìn)行測(cè)試。本階段主要是找出各模塊之間數(shù)據(jù)傳遞和系統(tǒng)組成后的邏輯結(jié)構(gòu)的錯(cuò)誤。在宿主機(jī)上采用黑盒與白盒相結(jié)合的方法進(jìn)行測(cè)試,要最大限度地模擬實(shí)際運(yùn)行環(huán)境,可以屏蔽掉一些不影響系統(tǒng)執(zhí)行的和數(shù)據(jù)傳遞難以模擬的函數(shù)。

集成測(cè)試是嵌入式軟件測(cè)試優(yōu)點(diǎn)充分體現(xiàn)的階段。集成測(cè)試前,應(yīng)該由程序員根據(jù)模塊之間的數(shù)據(jù)的輸入輸出編寫模塊接口函數(shù),這需要負(fù)責(zé)不同軟件模塊的程序員共同協(xié)調(diào)完成,然后將模塊接口函數(shù)集成到接收數(shù)據(jù)模塊的入口處。單鏈路數(shù)據(jù)傳遞的軟件模塊集成測(cè)試時(shí)容易定位錯(cuò)誤所在的軟件模塊。一個(gè)軟件模塊的數(shù)據(jù)不一定只有另外一個(gè)模塊提供,即軟件模塊的數(shù)據(jù)鏈路不一定只是單鏈路的,測(cè)試時(shí)可以把復(fù)雜鏈路結(jié)構(gòu)的數(shù)據(jù)傳遞劃分為單鏈路結(jié)構(gòu)數(shù)據(jù)傳送進(jìn)行錯(cuò)誤定位。集成測(cè)試是在擁有程序設(shè)計(jì)文檔、程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)時(shí),對(duì)軟件模塊在集成中出現(xiàn)的錯(cuò)誤進(jìn)行測(cè)試。

系統(tǒng)測(cè)試:集成測(cè)試完成后,退出宿主機(jī)測(cè)試環(huán)境,把系統(tǒng)移植到目標(biāo)機(jī)上來(lái),完成應(yīng)用到現(xiàn)場(chǎng)環(huán)境中的移植,從用戶的角度對(duì)系統(tǒng)進(jìn)行黑盒測(cè)試,以驗(yàn)證每一項(xiàng)具體的功能。由于測(cè)試者對(duì)程序內(nèi)容、程序執(zhí)行情況一無(wú)所知,因此本測(cè)試階段的錯(cuò)誤定位比較困難。系統(tǒng)測(cè)試階段應(yīng)該進(jìn)行意外測(cè)試和破壞性測(cè)試,即測(cè)試系統(tǒng)正常執(zhí)行情況下不該發(fā)生的活動(dòng)和人為的破壞性的測(cè)試,進(jìn)一步驗(yàn)證系統(tǒng)性能。系統(tǒng)測(cè)試階段不應(yīng)該確定錯(cuò)誤后立即修改代碼,應(yīng)根據(jù)一定的錯(cuò)誤發(fā)生頻率,確定測(cè)試周期,在每個(gè)測(cè)試周期結(jié)束時(shí)修改代碼,進(jìn)行反復(fù)測(cè)試;否則,不但增加了完全測(cè)試的任務(wù)量,而且降低了測(cè)試的可信度。

測(cè)試結(jié)果分析:測(cè)試結(jié)果分析可以定位錯(cuò)誤,指導(dǎo)程序員修改代碼,同時(shí)指出進(jìn)行測(cè)試的程序進(jìn)一步測(cè)試的方向。測(cè)試結(jié)果分析是一個(gè)由測(cè)試結(jié)果和測(cè)試預(yù)得結(jié)果進(jìn)行分析、比較和定位錯(cuò)誤的過程。測(cè)試結(jié)果分析是一次測(cè)試的最后環(huán)節(jié),分析時(shí)應(yīng)該考慮軟件的運(yùn)行環(huán)境與實(shí)際運(yùn)行環(huán)境的差異,以及各種外界因素的影響等。

白盒測(cè)試也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作的功能,白盒測(cè)試的主要方法有邏輯驅(qū)動(dòng)、基路測(cè)試等,主要用于軟件驗(yàn)證。“白盒”法要求全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對(duì)所有邏輯路徑進(jìn)行測(cè)試!鞍缀小狈ㄊ歉F舉路徑測(cè)試。在使用這一方案時(shí),測(cè)試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測(cè)試數(shù)據(jù)。

黑盒測(cè)試也稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,它是在已知產(chǎn)品所應(yīng)具有的功能,通過測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用。在測(cè)試時(shí),把程序看作一個(gè)不能打開的黑盆子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測(cè)試者在程序接口進(jìn)行測(cè)試。它只檢查程序功能是否按照需求規(guī)格說(shuō)明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)鋸而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫(kù)或文件)的完整性。黑盒測(cè)試方法主要有等價(jià)類劃分、邊值分析、因果圖、錯(cuò)誤推測(cè)等,主要用于軟件確認(rèn)測(cè)試。
      (責(zé)任編輯:fqj)

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

本版積分規(guī)則


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