嵌入式軟件的基本測(cè)試方法
發(fā)布時(shí)間:2008/8/18 0:00:00 訪問次數(shù):392
由于嵌入式軟件與其他產(chǎn)品息息相關(guān),這給嵌入式軟件的測(cè)試工作帶來了極大的困難,軟件的測(cè)試工作不能夠等程序燒到或者固化到芯片中才開始進(jìn)行測(cè)試,這就太晚了,本文結(jié)合自己的一些經(jīng)驗(yàn)提出自己的看法,希望大家一起討論。
搞好開發(fā)前的原型設(shè)計(jì)
原型開發(fā)目前在開放流程中受到了更多的重視,同樣嵌入式軟件也是非常需要的。比如說一個(gè)錄音機(jī)版面的設(shè)計(jì),可以定義好版面上面的按鍵以及每個(gè)按鍵的功能。然后畫出狀態(tài)轉(zhuǎn)化圖,寫清楚每個(gè)按鍵何時(shí)可以觸發(fā),觸發(fā)后由哪個(gè)狀態(tài)轉(zhuǎn)入別的其他狀態(tài)。原型設(shè)計(jì)好了,組織專家,工程師進(jìn)行評(píng)審,盡可能多的找出原型中不合理需要改進(jìn)的地方;改進(jìn)以后,有必要可以進(jìn)行再一次的評(píng)審工作。每一次評(píng)審工作需要記錄評(píng)審建議是否需要解決?如何解決以及實(shí)際解決情況。
進(jìn)行設(shè)計(jì)和開發(fā)工作
設(shè)計(jì)和開發(fā)工作需要設(shè)立里程碑。每個(gè)里程碑結(jié)束前都需要進(jìn)行評(píng)審工作。由于嵌入式軟件的運(yùn)行環(huán)境不同,受到很大的限制,所以在進(jìn)行開發(fā)之前需要進(jìn)行編程規(guī)范工作,編碼的時(shí)候需要嚴(yán)格按照編碼要求進(jìn)行工作,每一個(gè)條款都需要認(rèn)真執(zhí)行和審查,F(xiàn)在業(yè)界提供許多關(guān)于嵌入式軟件開發(fā)的標(biāo)準(zhǔn),大家可以通過網(wǎng)站搜索,最好能夠購(gòu)買業(yè)界一些比較著名的標(biāo)準(zhǔn)。
目前市場(chǎng)上也提供許多關(guān)于代碼檢驗(yàn)的工具。為什么一直提出代碼編碼規(guī)范?這是因?yàn)榍度胧杰浖馁|(zhì)量與代碼規(guī)范是十分重要的。舉個(gè)例子,著名的阿里亞火箭失事,專家進(jìn)行詳細(xì)的調(diào)查工作,最后發(fā)現(xiàn)問題出在代碼上。代碼是符合標(biāo)準(zhǔn)c語(yǔ)言的,但是在運(yùn)行過程中由于程序員將一個(gè)長(zhǎng)整形變量賦給了一個(gè)短整形變量,造成內(nèi)存溢出,這是導(dǎo)致火箭失事的關(guān)鍵所在。
(
int8 a;
int32 b;
…
a=b;
)
代碼測(cè)試
當(dāng)程序開發(fā)完畢,需要進(jìn)行測(cè)試工作,但是在程序燒入或固化芯片之前如何進(jìn)行測(cè)試呢?這里介紹一種方法:比如程序時(shí)使用c語(yǔ)言進(jìn)行開發(fā)的,請(qǐng)將所有的操作都封入在函數(shù)中,函數(shù)的定義都在相應(yīng)的頭文件中定義(.h),然后設(shè)計(jì)測(cè)試用例,書寫測(cè)試代碼,測(cè)試代碼包含相應(yīng)頭文件,可以對(duì)函數(shù)進(jìn)行檢測(cè)。測(cè)試案例往往分為兩類:一種是功能測(cè)試,主要測(cè)試函數(shù)的功能;另外一種是錯(cuò)誤參數(shù)測(cè)試,主要檢查程序?qū)M(jìn)行錯(cuò)誤參數(shù)進(jìn)行檢驗(yàn)。
功能測(cè)試
這種測(cè)試的運(yùn)行往往需要通過仿真器輔助完成,比如類似錄音機(jī)軟件程序,分別測(cè)試播放,加大(減小)音量,停止,暫停(取消暫停),快速前進(jìn),快速后退,錄音對(duì)應(yīng)的功能是否能夠正常運(yùn)行。
錯(cuò)誤測(cè)試
主要測(cè)試函數(shù)在調(diào)用參數(shù)無效的時(shí)候,系統(tǒng)是否會(huì)按照規(guī)定返回正確的錯(cuò)誤代碼。比如
function test(int tid)
測(cè)試的時(shí)候給出一個(gè)錯(cuò)誤的序列號(hào)(tid),看程序是否返回正確的錯(cuò)誤代碼。
對(duì)于函數(shù)function test1(int t)需要進(jìn)行特出的處理
t 定義為1-100
我們可以按照邊界值法和等價(jià)分類法進(jìn)行測(cè)試
上邊界:-1,0,1
下邊界:99,100,101
中邊界:50
所以測(cè)試用例集合為(-1,0,1,50,99,100,101),其中-1,101為錯(cuò)誤測(cè)試用例,其他為正確測(cè)試用例
功能組合測(cè)試
在進(jìn)行完功能測(cè)試后,我們可以進(jìn)行功能組和測(cè)試,還是拿錄音機(jī)程序做個(gè)例子。我們可以定義將音量增加到10,快速前進(jìn),檢查音量,看是否還是為10;播放,暫停,試圖調(diào)整音量,檢查調(diào)整音量的功能是否可以被成功執(zhí)行。
燒入固化測(cè)試
當(dāng)以上測(cè)試都通過后可以將程序燒入芯片或者固化,進(jìn)行最后在實(shí)際環(huán)境中進(jìn)行測(cè)試工作。
歡迎轉(zhuǎn)載,信息來自維庫(kù)電子市場(chǎng)網(wǎng)(www.dzsc.com)
由于嵌入式軟件與其他產(chǎn)品息息相關(guān),這給嵌入式軟件的測(cè)試工作帶來了極大的困難,軟件的測(cè)試工作不能夠等程序燒到或者固化到芯片中才開始進(jìn)行測(cè)試,這就太晚了,本文結(jié)合自己的一些經(jīng)驗(yàn)提出自己的看法,希望大家一起討論。
搞好開發(fā)前的原型設(shè)計(jì)
原型開發(fā)目前在開放流程中受到了更多的重視,同樣嵌入式軟件也是非常需要的。比如說一個(gè)錄音機(jī)版面的設(shè)計(jì),可以定義好版面上面的按鍵以及每個(gè)按鍵的功能。然后畫出狀態(tài)轉(zhuǎn)化圖,寫清楚每個(gè)按鍵何時(shí)可以觸發(fā),觸發(fā)后由哪個(gè)狀態(tài)轉(zhuǎn)入別的其他狀態(tài)。原型設(shè)計(jì)好了,組織專家,工程師進(jìn)行評(píng)審,盡可能多的找出原型中不合理需要改進(jìn)的地方;改進(jìn)以后,有必要可以進(jìn)行再一次的評(píng)審工作。每一次評(píng)審工作需要記錄評(píng)審建議是否需要解決?如何解決以及實(shí)際解決情況。
進(jìn)行設(shè)計(jì)和開發(fā)工作
設(shè)計(jì)和開發(fā)工作需要設(shè)立里程碑。每個(gè)里程碑結(jié)束前都需要進(jìn)行評(píng)審工作。由于嵌入式軟件的運(yùn)行環(huán)境不同,受到很大的限制,所以在進(jìn)行開發(fā)之前需要進(jìn)行編程規(guī)范工作,編碼的時(shí)候需要嚴(yán)格按照編碼要求進(jìn)行工作,每一個(gè)條款都需要認(rèn)真執(zhí)行和審查。現(xiàn)在業(yè)界提供許多關(guān)于嵌入式軟件開發(fā)的標(biāo)準(zhǔn),大家可以通過網(wǎng)站搜索,最好能夠購(gòu)買業(yè)界一些比較著名的標(biāo)準(zhǔn)。
目前市場(chǎng)上也提供許多關(guān)于代碼檢驗(yàn)的工具。為什么一直提出代碼編碼規(guī)范?這是因?yàn)榍度胧杰浖馁|(zhì)量與代碼規(guī)范是十分重要的。舉個(gè)例子,著名的阿里亞火箭失事,專家進(jìn)行詳細(xì)的調(diào)查工作,最后發(fā)現(xiàn)問題出在代碼上。代碼是符合標(biāo)準(zhǔn)c語(yǔ)言的,但是在運(yùn)行過程中由于程序員將一個(gè)長(zhǎng)整形變量賦給了一個(gè)短整形變量,造成內(nèi)存溢出,這是導(dǎo)致火箭失事的關(guān)鍵所在。
(
int8 a;
int32 b;
…
a=b;
)
代碼測(cè)試
當(dāng)程序開發(fā)完畢,需要進(jìn)行測(cè)試工作,但是在程序燒入或固化芯片之前如何進(jìn)行測(cè)試呢?這里介紹一種方法:比如程序時(shí)使用c語(yǔ)言進(jìn)行開發(fā)的,請(qǐng)將所有的操作都封入在函數(shù)中,函數(shù)的定義都在相應(yīng)的頭文件中定義(.h),然后設(shè)計(jì)測(cè)試用例,書寫測(cè)試代碼,測(cè)試代碼包含相應(yīng)頭文件,可以對(duì)函數(shù)進(jìn)行檢測(cè)。測(cè)試案例往往分為兩類:一種是功能測(cè)試,主要測(cè)試函數(shù)的功能;另外一種是錯(cuò)誤參數(shù)測(cè)試,主要檢查程序?qū)M(jìn)行錯(cuò)誤參數(shù)進(jìn)行檢驗(yàn)。
功能測(cè)試
這種測(cè)試的運(yùn)行往往需要通過仿真器輔助完成,比如類似錄音機(jī)軟件程序,分別測(cè)試播放,加大(減。┮袅,停止,暫停(取消暫停),快速前進(jìn),快速后退,錄音對(duì)應(yīng)的功能是否能夠正常運(yùn)行。
錯(cuò)誤測(cè)試
主要測(cè)試函數(shù)在調(diào)用參數(shù)無效的時(shí)候,系統(tǒng)是否會(huì)按照規(guī)定返回正確的錯(cuò)誤代碼。比如
function test(int tid)
測(cè)試的時(shí)候給出一個(gè)錯(cuò)誤的序列號(hào)(tid),看程序是否返回正確的錯(cuò)誤代碼。
對(duì)于函數(shù)function test1(int t)需要進(jìn)行特出的處理
t 定義為1-100
我們可以按照邊界值法和等價(jià)分類法進(jìn)行測(cè)試
上邊界:-1,0,1
下邊界:99,100,101
中邊界:50
所以測(cè)試用例集合為(-1,0,1,50,99,100,101),其中-1,101為錯(cuò)誤測(cè)試用例,其他為正確測(cè)試用例
功能組合測(cè)試
在進(jìn)行完功能測(cè)試后,我們可以進(jìn)行功能組和測(cè)試,還是拿錄音機(jī)程序做個(gè)例子。我們可以定義將音量增加到10,快速前進(jìn),檢查音量,看是否還是為10;播放,暫停,試圖調(diào)整音量,檢查調(diào)整音量的功能是否可以被成功執(zhí)行。
燒入固化測(cè)試
當(dāng)以上測(cè)試都通過后可以將程序燒入芯片或者固化,進(jìn)行最后在實(shí)際環(huán)境中進(jìn)行測(cè)試工作。
歡迎轉(zhuǎn)載,信息來自維庫(kù)電子市場(chǎng)網(wǎng)(www.dzsc.com)
熱門點(diǎn)擊
- CPU學(xué)習(xí) (Cache Coherence
- 瑞薩推出具有1Mbyte片內(nèi)SRAM的32位
- MAP譯碼器嵌入式狀態(tài)信息存儲(chǔ)機(jī)制設(shè)計(jì)
- 嵌入式uClinux下的CAN總線設(shè)備驅(qū)動(dòng)程
- Atmel 在AT91SAM3中使用ARM3
- 全路由器掃描
- 嵌入式中C和匯編的一些技巧
- 基于ARM平臺(tái)的GPRS CQT測(cè)試系統(tǒng)的設(shè)
- 嵌入式系統(tǒng)軟件及編程語(yǔ)言
- 中文資料:vxwork bsp的制作1
推薦技術(shù)資料
- DFRobot—玩的就是
- 如果說新車間的特點(diǎn)是“靈動(dòng)”,F(xiàn)QPF12N60C那么... [詳細(xì)]
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究