嵌入式軟體的基本測試方法

shbwf發表於2013-09-06
隨著製造行業的再一次崛起,嵌入式軟體目前在軟體行業中越來越多,2004年軟體行業最火爆的三個專案是:嵌入式開發,軟體培訓以及軟體外包。由於嵌入式軟體與其他產品息息相關,這給嵌入式軟體的測試工作帶來了極大的困難,軟體的測試工作不能夠等程式燒到或者固化到晶片中才開始進行測試,這就太晚了,本文結合自己的一些經驗提出自己的看法,希望大家一起討論。
  搞好開發前的原型設計
  原型開發目前在開放流程中受到了更多的重視,同樣嵌入式軟體也是非常需要的。比如說一個錄音機版面的設計,可以定義好版面上面的按鍵以及每個按鍵的功能。然後畫出狀態轉化圖,寫清楚每個按鍵何時可以觸發,觸發後由哪個狀態轉入別的其他狀態。原型設計好了,組織專家,工程師進行評審,儘可能多的找出原型中不合理需要改進的地方;改進以後,有必要可以進行再一次的評審工作。每一次評審工作需要記錄評審建議是否需要解決?如何解決以及實際解決情況。
  進行設計和開發工作
  設計和開發工作需要設立里程碑。每個里程碑結束前都需要進行評審工作。由於嵌入式軟體的執行環境不同,受到很大的限制,所以在進行開發之前需要進行程式設計規範工作,編碼的時候需要嚴格按照編碼要求進行工作,每一個條款都需要認真執行和審查。現在業界提供許多關於嵌入式軟體開發的標準,大家可以通過網站搜尋,最好能夠購買業界一些比較著名的標準。目前市場上也提供許多關於程式碼檢驗的工具。為什麼一直提出程式碼編碼規範?這是因為嵌入式軟體的質量與程式碼規範是十分重要的。舉個例子,著名的阿里亞火箭失事,專家進行詳細的調查工作,最後發現問題出在程式碼上。程式碼是符合標準C語言的,但是在執行過程中由於程式設計師將一個長整形變數賦給了一個短整形變數,造成記憶體溢位,這是導致火箭失事的關鍵所在。
  (
  int8a;
  int32b;
  …
  a=b;
  )
  程式碼測試
  當程式開發完畢,需要進行測試工作,但是在程式燒入或固化晶片之前如何進行測試呢?這裡介紹一種方法:比如程式時使用C語言進行開發的,請將所有的操作都封入在函式中,函式的定義都在相應的標頭檔案中定義(.h),然後設計測試用例,書寫測試程式碼,測試程式碼包含相應標頭檔案,可以對函式進行檢測。測試案例往往分為兩類:一種是功能測試,主要測試函式的功能;另外一種是錯誤引數測試,主要檢查程式對進行錯誤引數進行檢驗。
  功能測試
  這種測試的執行往往需要通過模擬器輔助完成,比如類似錄音機軟體程式,分別測試播放,加大(減小)音量,停止,暫停(取消暫停),快速前進,快速後退,錄音對應的功能是否能夠正常執行。
  錯誤測試
  主要測試函式在呼叫引數無效的時候,系統是否會按照規定返回正確的錯誤程式碼。比如
  functiontest(intTid)
  測試的時候給出一個錯誤的序列號(Tid),看程式是否返回正確的錯誤程式碼。
  對於函式functiontest1(intt)需要進行特出的處理
  t定義為1-100
  我們可以按照邊界值法和等價分類法進行測試
  上邊界:-1,0,1
  下邊界:99,100,101
  中邊界:50
  所以測試用例集合為(-1,0,1,50,99,100,101),其中-1,101為錯誤測試用例,其他為正確測試用例
  功能組合測試
  在進行完功能測試後,我們可以進行功能組和測試,還是拿錄音機程式做個例子。我們可以定義將音量增加到10,快速前進,檢查音量,看是否還是為10;播放,暫停,試圖調整音量,檢查調整音量的功能是否可以被成功執行。
  燒入固化測試
  當以上測試都通過後可以將程式燒入晶片或者固化,進行最後在實際環境中進行測試工作。
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11323760/viewspace-1060898/,如需轉載,請註明出處,否則將追究法律責任。

相關文章