您現在的位置是:首頁 > 垂釣

嵌入式軟體開發測試要用什麼工具?

  • 由 易思訓教育 發表于 垂釣
  • 2022-04-01
簡介GUI測試工具可以作為指令碼工具有開發環境中執行測試用例,其功能包括對操作的記錄和回放、抓取螢幕顯示供以後分析和比較、設定和管理測試過程(Rational 公司的robot和Mercury的Loadrunner工具是傑出的代表)

電路os測試是什麼

通常嵌入式系統對可靠性的要求比較高。嵌入式系統安全性的失效可能會導致災難性的後果,即使是非安全性系統,由於大批次生產也會導致嚴重的經濟損失。這就要求對嵌入式系統,包括嵌入式軟體進行嚴格的測試、確認和驗證。隨著越來越多的領域使用軟體和微處理器控制各種嵌入式裝置,對日益複雜的嵌入式軟體進行快速有效的測試愈加顯得重要。

就像修車需要工具一樣,好的程式設計師應該能夠熟練運用各種軟體工具。不同的工具,有不同的使用範圍,有不同的功能。使用這些工具,你可以看到你的系統在幹些什麼,它又佔用什麼資源,它到底和哪些外界的東西打交道。讓你鬱悶好幾天的問題可能透過某個工具就能輕鬆搞定,可惜你就是不知道。

那麼為什麼那麼多的人總是在折騰個半死之後才想到要用測試工具呢?原因很多,主要有兩個:

一個是害怕;

另一個是惰性;

害怕是因為加入測試工具或測試模組到程式碼需要技巧同時有可能引入新的錯誤,所以他們總喜歡寄希望於透過不斷地修改重編譯程式碼來消除bug,結果卻無濟於事。

懶惰是因為他們習慣了使用printf之類的簡單測試手段。

下面來介紹一些嵌入式常用的測試工具

(1)、原始碼級偵錯程式[Source-levelDebugger]

這種偵錯程式一般提供單步或多步除錯、斷點設定、記憶體檢測、變數檢視等功能,是嵌入式除錯最根本有效的除錯方法。比如VxWorksTornadoII提供的gdb就屬於這一種。

(2)、簡單實用的列印顯示工具[printf]

printf或其它類似的列印顯示工具估計是最靈活最簡單的除錯工具。列印程式碼執行過程中的各種變數可以讓你知道程式碼執行的情況。但是,printf對正常的程式碼執行干擾比較大(一般printf佔用CPU比較長的時間),需要慎重使用,最好設定列印開關來控制列印。

(3)、ICE或JTAG偵錯程式[In- circuitEmulator]

ICE是用來模擬CPU核心的裝置,它可以在不干擾運算器的正常執行情況下,實時的檢測CPU的內部工作情況。像桌面除錯軟體所提供的:複雜的條件斷點、先進的實時跟蹤、效能分析和埠分析這些功能,它也都能提供。ICE一般都有一個比較特殊的CPU,稱為外合(bond-out)CPU。這是一種被打開了封裝的CPU,並且透過特殊的連線,可以訪問到CPU的內部訊號,而這些訊號,在CPU被封裝時,是沒法 “看到”的。當和工作站上強大的除錯軟體聯合使用時,ICE就能提供你所能找到的最全面的除錯功能。但ICE同樣有一些缺點:昂貴;不能全速工作;同樣,並不是所有的CPU都可以作為外合CPU的,從另一個角度說,這些外合CPU也不大可能及時的被新出的CPU所更換。JTAG(JointTestActionGroup)雖然它最初開發出來是為了監測IC和電路連線,但是這種序列介面擴充套件了用途,包括對除錯的支援。

(4)、ROM監視器[ROMMonitor]

ROM監控器是一小程式,駐留在嵌入系統ROM中,透過序列的或網路的連線和執行在工作站上的除錯軟體通訊。這是一種便宜的方式,當然也是最低端的技術。它除了要求一個通訊埠和少量的記憶體空間外,不需要其它任何專門的硬體。

提供瞭如下功能:下載程式碼、執行控制、斷點、單步步進、以及觀察、修改暫存器和記憶體。因為ROM監控器是操作軟體的一部分,只有當你的應用程式執行時,它才會工作。如果你想檢查CPU和應用程式的狀態,你就必須停下應用程式,再次進入ROM監控器。

(5)、Data監視器[DataMonitor]

這種監視器在不停止CPU執行的情況下不僅可以顯示指定變數內容,還可以收集並以圖形形式顯示各個變數的變化過程。

(6)、OS監視器[OperatingSystemMonitor]

作業系統監視器可以顯示諸如任務切換、訊號量收發、中斷等事件。一方面,這些監視器能夠為你呈現事件之間的關係和時間聯絡;另一方面,還可以提供對訊號量優先順序反轉、死鎖和中斷延時等問題的診斷。

(7)、效能分析工具[Profiler]

可以用來測試CPU到底耗在哪裡。profiler工具可以讓你知道系統的瓶頸在哪裡、CPU的使用率以及需要最佳化的地方。

(8)、記憶體測試工具[MemoryTeseter]

可以找到記憶體使用的問題所在,比如記憶體洩露、記憶體碎片、記憶體崩潰等問題。如果發現系統出現一些不可預知的或間歇性的問題,就應該使用記憶體測試工具測測看。

(8)、執行跟蹤器[ExecutionTracer]

可以顯示CPU執行了哪些函式、誰在呼叫、引數是什麼、何時呼叫等情況。這種工具主要用於測試程式碼邏輯,可以在大量的事件中發現異常。

(9)、覆蓋工具[CoverageTester]

主要顯示CPU具體執行了哪些程式碼,並讓你知道那些程式碼分支沒有被執行到哪裡。這樣有助於提高程式碼質量並消除無用程式碼。

(10)、GUI測試工具[GUITester]

很多嵌入式應用帶有某種形式的圖形使用者介面進行互動,有些系統性能測試是根據使用者輸入響應時間進行的。GUI測試工具可以作為指令碼工具有開發環境中執行測試用例,其功能包括對操作的記錄和回放、抓取螢幕顯示供以後分析和比較、設定和管理測試過程(Rational 公司的robot和Mercury的Loadrunner工具是傑出的代表)。

很多嵌入式裝置沒有GUI,但常常可以對嵌入式裝置進行插裝來執行GUI測試指令碼,雖然這種方式可能要求對被測程式碼進行更改,但是節省了功能測試和迴歸測試的時間。

(11)、自制工具[Home-madetester]

在嵌入式應用中,有時候為了特定的目的,需要自行編寫一些工具來達到某種測試目的。本人曾經編寫的影片流錄顯工具在測試影片會議資料流向和變化上幫了大忙,幫公司找到了幾個隱藏很深的bug。

嵌入式軟體開發測試要用什麼工具?

Top