原創|使用教程|編輯:龔雪|2015-12-11 14:25:51.000|閱讀 745 次
概述:關于Parasoft C / C ++test的嵌入式單元測試實踐,本文主要介紹了單元測試的結果傳輸和解決目標局限性
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
配置結果傳輸需要在C++test runtime library中選擇一個合適的通信信道。 MDK-ARM 4.1和ULINKPro運行測試的默認設置是基于指令跟蹤宏單元(Instrumentation Trace Macrocell)的通信(是ARM CoreSight debug和跟蹤技術的一部分)。在這種模式下,C++test將測試信息直接寫入ITM端口,ULINKPro確保數據傳輸到主機。然后,uVision IDE捕獲這些內容并存儲到文件中,以便C++test進行分析。
這種開發環境中目標到主機(target-to-host)的通信信道是Parasoft C++test所獨有的。它有著出色的頻帶寬度,并且比傳統的UART connections配置起來簡單的多。此外,由于是專用信道,因此與測試程序和測試框架生成的通信鏈路不沖突。C++test已經將ITM預先配置好了,無需再進行配置。
這里需要再次強調文章開頭所說的,單元測試并不是一件簡單的事情,尤其當同時遇到測試和開發平臺限制的時候。開發平臺的限制越多,需要做的額外工作就越多。以下就是在目標設備上測試時可能遇到的問題:
嵌入式項目往往是建立在免費的棧和堆內存上的。如果沒有可用的堆和棧,那么測試框架將不能繼續執行測試了。最壞的情況是,我們可能連一個測試用例都完成不了。最簡單的解決方法當然是增加堆和棧的數量。但大多數時候,這是不可能的。一般情況下,我們都選擇停止硬件的運作來獲得更多的內存?;蛘咧匦屡渲脺y試框架使內存消耗變少。你若是選擇放棄在測試案例中使用外部數據資源,使用DCPPTEST_DATA_SOURCES_ENABLED = 0將限制堆使用。你若是選擇測試執行問題的堆棧跟蹤報告,使用-DCPPTEST_ STACKTRACE_ENABLED = 0(禁用“stack traces reporting”)將減少內存的消耗。另一種方法是,對測試斷言的消息發出設置一個下限值。默認的值為1024b,可以通過-DCPPTEST_MAX_MESSAGE_SIZE=512進行設置,但是值的設定不能超過規定范圍。
以下是導致測試可執行文件增大的因素:
C++test運行庫是一個輔助例程的集合,并且可以進行配置。我們可以去掉一些功能來減少占用空間。通常,可以禁用運行庫的一些非核心功能來減少程序內存消耗。非核心功能的選擇要取決于測試和用戶的要求。C++test用戶手冊中,可以通過運行庫宏列表進程啟用/禁用操作。
通過在C++test中添加原始的源代碼,來收集測試過程和控制測試執行的各種信息。為了限制由此所產生的消耗,用戶可以禁用或去掉一些功能。設置界面中可以同時進行這兩種設置。界面如下圖所示。
這些是測試過程中產生的內部代碼片段。測試用例/存根的數量會影響測試可執行文件的內存使用。當大量的測試用例(成百甚至上千)同時運行時會產生問題。將這些測試用例分開運行,可以降低維護成本和內存使用。
這主要包括源代碼測試和后續C++test運行庫的調用。測試執行中添加的粘合代碼是可以忽略的。我們不能把執行時間僅僅看做是測試功能/方法的問題。這樣想的后果就是,我們只需運行功能,然后等待結果并驗證。你也許覺得這樣沒有什么不好,只是等待的時候久了點。但是,這些問題在集成測試的時候就會暴露出來了。因此,我們不能只是孤立地考慮單個功能,還要看它與其他模塊的協作。否則,可能會出現以下的問題。假設代碼測試設計要在xxx處停止,但是2*xxx已經執行了。結果,其他的代碼無法在規定時間內執行,打破了整個模塊的時間相關性,導致了測試失敗。這個問題可以這樣解決。在前文提到C++test提供了一個用戶接口。用戶可以指定哪些部分要測試,哪些測試功能要用到。
通信信道的選擇主要是由開發平臺和目標設備決定的。結果可以通過TCP/IP sockets、RS232進行發送,或存儲在文件系統或閃存中。每一種方式都有它自己的優缺點。我們還可以對通信信道進行自定義。用戶只需實現以下幾個簡單的功能:initializeCommunicaiton, sendByte, finalizeCommunication。以下是常見問題:
①通信信道的緩慢導致執行時間的增加(如串行線路的傳輸速率低下)
②通信信道訪問沖突(被測程序有時也需要訪問通信信道)
若結果發送缺少通信則返回主機。
多數時候,由于開發環境中通信信道的限制會讓我們束手束腳。因此,選擇一個好的測試功能是非常重要的。下圖中展示了UART和ITM分別發送一個字節所消耗的時間對比。
購買最新正版授權Parasoft贈送Macbook!""
慧都年終盛典火爆開啟,一年僅一次的最強促銷,破冰鉅惠不容錯過(12.01~12.31)!!優惠詳情點擊查看>>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn