国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

嵌入式軟件測試淺談

開發 測試
隨著越來越多的領域使用軟件和微處理器控制各種嵌入式設備,對門益復雜的嵌入式軟件進行快速有效的測試愈加顯得重要。下面讓我們一起來了解嵌入式軟件。

嵌入式軟件測試與普通軟件測試的目的一樣,都是為了發現軟件缺陷,而后修正缺陷以提高軟件的可靠性。嵌入式系統安全性的失效可能會導致災難性后果,即使非安全性失效,由于其應用場合特殊也會導致重大經濟損失。因此,往往嵌入式軟件對可靠性的要求比普通軟件高。這就要求對嵌入式軟件進行嚴格的測試、確認和驗證,以提高產品的可靠性。 

不過由于嵌入式軟件的多樣性,基于的操作系統,使用的開發環境,微控制器都是日益繁多,完整規范的測試實現起來比較困難,一般企業都是直接進行系統測試。單元測試,集成測試由于測試執行的運行環境建立困難,執行效率低下,或者維護困難就往往被忽略。 

實際上,只要時間上做好安排,確立測試方案,根據情況建立單元測試環境,還是可以順利實施單元測試,盡早發現軟件缺陷,整體上獲得時效,提高了系統可靠性。文中筆者就根據多年工作實踐,將嵌入式軟件單元測試相關的一些經驗與大家分享,同時拋磚引玉。 

測試環境

單元測試首先需要動態運行代碼的環境,嵌入式軟件開發環境往往是交叉開發環境,我們希望將代碼移植到開發主機上運行(比如Windows系統),這樣做有幾個好處:  

1 可以利用高速的主機提高代碼運行效率; 

2 有利于測試管理,便于測試用例輸入和形成測試結果報表和維護; 

3 充分利用Windows系統的測試工具,實現自動化測試。 

不過移植代碼至Windows系統需要將嵌入式軟件的API都移植到Windows,形成虛擬系統接口層,這種方法往往是長期使用這一嵌入式系統,一勞永逸的長遠性方案。 

當然還可以通過購買使用一些商用的工具,比如CodeTest,VcTester,使用這些工具在嵌入式系統上直接開展單元測試工作。 

這兩種方案對于一些中小企業來說,由于不愿投入這么大人力物力,不能建立長期有效的開發方案而無法實施。對于這種條件還可以采用一種投入較小的短時方案,直接在程序中加入測試代碼,直接在目標板上運行查看結果,測試用例也可以直接在代碼中,或者通過接口從主機獲得測試輸入及輸出測試結果。這一方案對于測試硬件驅動也是相當適用的,比如測試某設備讀寫做了以下c語言代碼(詳見本刊網站): 

在實際平臺上運行該代碼執行測試,這種方法主要用于單元的功能測試。雖然需要在單元測試階段編寫額外的代碼,但是由上面例子可見,被測單元接口定義清晰,測試代碼很容易完成,至于測試用例的編寫是無法避免的。正式發布代碼時通過條件編譯將這些代碼屏蔽即可。  

測試策略 

從測試效果上看,當然是花費越多的時間、人力,發現的問題越多,產品的質量控制得更好。但實際上,徹底做好軟件單元測試幾乎是不可能的,我們需要綜合考慮成本和效率,這是實際產品開發中經常遇到的問題,都面對這樣兩難的境地——上市時間延誤而沒有及時占領市場;或是時間上搶先,不過測試不充分導致出廠的產品質量不高。如果測試時間不充足,如何在限定時間內更好地完成測試工作呢? 

1 我們需要強調對隱藏缺陷多的模塊進行測試:問題是怎么在測試計劃之前確定哪些模塊缺陷多,容易出錯呢?根據經驗,出錯率大的地方往往是以下幾種情況: 

1)時間壓力大的情況下完成的模塊; 

2)經驗不足的員工編寫的模塊;  

3)前期發現過大量bug的模塊;  

4)接口關系復雜的模塊;  

5)技術難度大,處于行業領先地位的模塊; 

6)從未做過測試或缺乏底層測試的模塊。 

2 對于重要的模塊加強測試:“重要”這個概念在這里往往也不是輕易評估的,實際實施中應該需要測試評審小組商議決定。這里就根據經驗列出以下幾點作為參考: 

1)和安全相關的模塊,比如產生輻射,高溫,高壓等威脅人身安全的模塊,這是最為關鍵的一點; 

2)從經濟利益角度考慮,出現故障將造成較大經濟損失的模塊; 

3)從使用角度看,用戶操作的模塊優先級要高于服務操作模塊,因為用戶的優先級高于客服人員;  

4)基本功能模塊優先級高于擴展功能模塊,試想基本功能都不能使用,那擴展功能豈不是空中樓閣; 

5)執行概率高的模塊,因為執行概率高的代碼在運行中暴露缺陷的幾率也大。 

編碼注意事項 

以上是從測試角度討論如何建立單元測試執行環境的幾種方案和測試策略的制定,不過,為單元測試的實施奠定堅實的基礎的還是良好的程序設計。接下來從代碼編寫角度列舉提高嵌入式軟件的可測性的幾點經驗教訓: 

1 與硬件設備操作相關的需要與硬件操作無關的代碼分離,這樣與硬件操作相關的驅動代碼可以獨立在目標板上測試,當然邏輯簡單也可不作測試;大部分與硬件操作無關的代碼就容易實現跨平臺移植測試。 

2 中斷響應函數功能盡量簡單,這是因為中斷響應相對不好測試,如果代碼復雜,也不易定位錯誤,因為很多的開發環境或操作系統難以支持中斷響應函數的斷點調試。 

3 系統調用及操作系統相關的操作做到與應用層分離,可以通過中間函數實現,比如虛擬操作系統函數,這樣跨平臺移植測試的時候只需將這些中間層函數修改就可以實現。 

4對數據類型的差異性也可通過宏定義來實現統一,對于庫文件的差異也通過宏定義來實現上層代碼的一致性。 

5 使用靜態代碼檢測工具,比如PC-Lint,以盡早發現代碼缺陷。PC-Lint是在代碼產生初期靜態查找代碼缺陷,更有利用錯誤定位和修改,因為軟件開發階段越早發現問題,解決問題花費的代價越小。因此,一般應該是靜態檢查通過后再實施動態測試。 

嵌入式軟件單元測試也是基于普通軟件單元測試的理論,仍需遵守,以上是對嵌入式軟件單元測試特別之處的經驗總結,希望能對初涉嵌入式軟件開發的朋友有所幫助,重視軟件質量,提高嵌入式系統的可靠性。 

  1. {     
  2. typedef struct _TEST_CASE // 測試用例結構體     
  3. {     
  4. UINT8* pBuf; //讀寫緩沖區指針     
  5. int len; //讀寫數據長度     
  6. STATUS result; // 測試結果,OK或ERROR     
  7. } TESTCASE;     
  8. #define TEST_NUM 4 // 測試用例數     
  9. UINT8* rBuf;     
  10. TESTCASE testCase[TEST_NUM]={     
  11. {0,DATA_MAX_LEN+1,ERROR}, // DATA_MAX_LEN指允許讀寫的***長度     
  12. {"a",1,OK},     
  13. {"12",2,OK},     
  14. {0,DATA_MAX_LEN,OK}     
  15. };     
  16. for (int i=0;i< TEST_NUM;i++)     
  17. {     
  18. if(write(testCase[i].pBuf,testCase[i].len) != testCase[i].result) // 寫測試     
  19. LOG ("test write failed!");     
  20. if(read(rBuf,testCase[i].len) != testCase[i].result) // 讀測試     
  21. LOG ("test read failed! ");     
  22. if(bcmp(testCase[i].pBuf,rBuf,testCase[i].len) != 0// 比較讀寫數據     
  23. LOG ("compare data failed! ");     
  24. }     
  25. }  

其實大多數軟件測試方法都可以直接或間接地用于嵌入式軟件的測試,但是由于操作系統的實時和嵌入式特性,嵌入式軟件測試也面臨一些特殊的問題。雖然日前已經有一些針對嵌入式軟件的測試和調試工具,但是在有些方面仍存在不足,包括許多任務操作系統的并發、非侵入式的測試和凋試、嵌入式系統的軟件抽象等。對于嵌入式軟件測試技術的研究人選測試工具有待開發,仍須要做很多進一步的工作。

【編輯推薦】

  1. 嵌入式軟件測試的十大秘訣
  2. 軟件測試中排錯的基本方法
  3. 軟件自動化測試在功能測試中的應用
  4. 軟件評測師:軟件測試中白盒測試方面的總結
責任編輯:于鐵 來源: 電子工程世界
相關推薦

2011-05-16 16:41:06

軟件測試單元測試

2010-03-26 11:23:59

無線嵌入式控制技術

2009-12-22 17:46:56

Fedora 9嵌入式

2023-04-27 07:06:18

2022-12-14 08:06:08

2023-01-04 09:37:16

2023-07-16 22:48:59

2023-05-04 00:27:40

2023-11-29 07:51:40

嵌入式軟件設計

2022-04-13 09:34:52

軟件開發嵌入式軟件

2015-05-07 10:10:28

嵌入式設計軟件

2012-03-05 15:45:32

嵌入式開源軟件

2011-05-24 17:34:38

嵌入式系統

2011-01-14 13:13:23

嵌入式Linux開發

2018-03-12 16:18:31

嵌入式開源

2010-04-21 13:22:20

Windows CE

2009-12-03 12:29:54

嵌入式軟件工程師

2022-02-14 23:17:16

Gitlab嵌入式工具

2023-01-27 23:46:36

嵌入式軟件技巧

2010-01-19 09:08:46

嵌入式Windows Emb
點贊
收藏

51CTO技術棧公眾號

久久精品视频在线观看| 九九在线精品视频| 精品毛片三在线观看| 成人高h视频在线| 日本资源在线| 久久你懂得1024| 国产激情小视频在线| 中文高清一区| 久久五月情影视| 岛国中文字幕在线| 亚洲国产高清在线| 久久久99精品视频| 国产精品入口久久| 亚洲18私人小影院| 超碰中文在线| 日韩亚洲欧美成人一区| 国产wwww| www.这里只有精品| 日本中文字幕一区二区有限公司| 中文字幕日韩视频| 肉肉视频在线观看| 在线观看国产日韩| 天海翼一区二区三区四区在线观看| 九九**精品视频免费播放| 91精品国产成人www| 亚洲日本网址| 亚洲女人天堂色在线7777| 欧美捆绑视频| 欧美性猛交xxxxx水多| 能看的毛片网站| 国产视频911| 福利视频一二区| 男男成人高潮片免费网站| 久久国产精品一区二区三区| 青草国产精品| 91精品国产综合久久久久久久久| 黑人久久a级毛片免费观看| 一区国产精品视频| 青青青国产精品| 欧美成人精品激情在线观看| 久久xxx视频| 97免费视频在线播放| 亚州国产精品| 91九色视频在线| 66国产精品| 久久99热只有频精品91密拍| 亚洲理论在线| 日本久久高清视频| 天堂v视频永久在线播放| 精品播放一区二区| 一本一道久久a久久精品蜜桃| 欧美视频第三页| 亚洲三级黄色在线观看| 深夜福利视频在线观看| 爽爽爽爽爽爽爽成人免费观看| 欧美aⅴ99久久黑人专区| 国产免费人做人爱午夜视频| 日韩一区二区在线观看视频播放| 99a精品视频在线观看| 97超碰在线人人| 国产亚洲欧洲在线| 国产传媒久久文化传媒| 亚洲欧美电影| 免费在线看黄色片| 欧美精品一级二级三级| 成人在线直播| 国产91|九色| 粉嫩av亚洲一区二区图片| 天堂中文字幕在线| 久久中文字幕一区| 99精品久久| 日韩不卡一二三| 亚洲深夜福利视频| 亚洲乱码免费伦视频| 成年人视频在线免费| 99精品国产一区二区三区不卡| mm1313亚洲国产精品美女| 99热在线国产| 欧美美女一区二区三区| 欧美人成网站| 波多野结衣在线网站| 国产精品青青在线观看爽香蕉| 91最新地址在线播放| 四虎4545www精品视频| www婷婷av久久久影片| 亚洲第一区中文99精品| 日本vs亚洲vs韩国一区三区二区 | 免费在线成人av电影| 在线观看一区二区视频| 亚洲一区二区三区高清| 日本一级理论片在线大全| 欧美少妇一区| 精品国产一区二区三区久久狼5月| 成人精品电影在线观看| 国产伦理久久久久久妇女| 富二代精品短视频| 91在线观看欧美日韩| 麻豆乱码国产一区二区三区| 99a精品视频在线观看| 91精品国产高清久久久久久91| 亚洲日韩欧美一区二区在线| 99精品国产一区二区| 激情另类小说区图片区视频区| 在线免费观看黄| 成人在线免费网站| 日韩大片在线观看视频| 久久久电影一区二区三区| 九九热精品视频在线观看| 唐人社导航福利精品| 午夜视频在线免费| 日韩高清av电影| 欧美亚洲在线播放| 欧洲永久精品大片ww免费漫画| 欧美三级视频在线| 自慰无码一区二区三区| 欧美精品一区视频| 91麻豆精品国产自产在线观看一区 | 777精品久无码人妻蜜桃| 午夜精品区一区二区三| 亚洲一区二区三区四区视频| 国产精品久久77777| 国产一区视频在线播放| 精品综合久久| 国产日韩欧美视频| 91|九色|视频| 91老司机精品视频| 91日本视频在线| 99在线看视频| 91综合免费在线| 欧美一乱一性一交一视频| 亚洲国产精品va在线| 7777精品伊人久久久大香线蕉完整版| 亚洲一区二区影院| 综合色天天鬼久久鬼色| 国产一区二区三区的电影 | 蜜桃传媒在线| 黄频免费在线观看| 视频一区欧美日韩| 韩国精品在线观看| 久久精品66| 久久99亚洲网美利坚合众国| 亚洲人成影视在线观看| 激情av一区| 岛国一区二区| 一区二区欧美激情| 99久久国产综合色|国产精品| 亚洲欧美日韩国产一区二区三区| caoporn97在线视频| 欧美专区在线| 91精品影视| 69中国xxxxxxxxx69| 99爱精品视频| 97国产在线观看| 色综久久综合桃花网| 欧美日韩一二三区| 欧美 亚洲 视频| 亚洲成人久久电影| 黄色网战入口| 亚洲国产欧美一区二区三区不卡| 蜜桃欧美视频| 欧美激情喷水视频| 国产91精品不卡视频| 精品久久久网站| 国产精品91久久久| 色综合久久综合| 东方欧美亚洲色图在线| 国产区一区二区| 国产亚洲污的网站| 不卡一二三区| 蜜桃视频在线观看网站| 成人在色线视频在线观看免费大全 | 欧美成人a在线| 青青青伊人色综合久久| 国产成人精品一区二区三区在线| 特黄aaaaaaaaa毛片免费视频| 欧美影院在线播放| 亚洲天堂精品视频| 日本强好片久久久久久aaa| 国产成人三级| 欧美精品电影| 日韩大片b站免费观看直播| 久久久久久av无码免费网站下载| 91精品国产高清久久久久久| 精品久久久久国产| 久热成人在线视频| 欧美精品momsxxx| 四季久久免费一区二区三区四区| 日韩精品在线中文字幕| 久久人人九九| www国产无套内射com| 精品午夜一区二区三区| 懂色一区二区三区av片| 成人精品在线| 中文字幕人成乱码在线观看| 成人国产电影在线观看| h网站久久久| 午夜男人视频在线观看| www污在线观看| 亚洲精品久久久久久久蜜桃臀| 欧美日韩在线免费观看视频|