原文出處 : https://gitmaruneko.github.io/2019/03/17/TravelOfLinuxTestProject00.html

使用目的

最近在學習如何做嵌入式系統的穩定性測試,
一直都覺得嵌入式系統因其特有的即時性, 高可靠性等要求,
導致嵌入式系統的測試大不同於一般軟體測試,
這些特點同時也增加了嵌入式測試的複雜度以及難度, 而且也少有方便好用的測試工具

想起在前公司開發 Android 產品時, 曾經玩過 LTP 這個自動化測試框架
(其實當時只是無聊, 想把 kernel 搞掛 XDD)
沒想到正好拿來應用於手邊的產品

選擇 LTP 當作穩定測試的工具
除了因為其開源, 具有一定的公信力以外
它還具備一個靈活特性
和 robotframework 一樣, 可以自由設計並組裝測內容
robotframework 利用 關鍵字 來組裝
而在 LTP 內, 一個小單元的 testcase 就等於是 robotframework 的關鍵字
甚至 testsuite 也是一個關鍵字
它至少有以下特點 :

所以, 相比其他嵌入式系統測試框架
它真的是一個非常友善的測試工具

以 RaspberryPi 來練習 LTP

取得 LTP

TOOLCHAIN 設定

(關於 Raspberry Pi 的 toolchain 設定可參考此 :
安裝 Raspberry Pi 的 Toolchain)

Cross compiler 設定

$make
$make install

運行測試

$mkdir /tmp/ltp
$mount /mnt/sda1 /tmp/ltp
$./runltp -f ipc_customized

測試結果

output資料夾可以看到兩個副檔名分別為 *.fail 以及 *.conf 的檔案
顧名思義, 測試過程中的 fail 測項, 還有需要做進一步 configure 的測項
會分別被記錄在兩個檔案中 (真的很貼心), 提供使用者做下一次測試的參考

下圖為運行測試過程中的 CPU 以及 MEM 利用率
可用來作為穩定性評估的參考資料

最近跟 LTP 相處下來, 覺得最難之處在於測試後的分析
深入看測試內容後, 越發覺得 OS 學得不夠好
測試工作本身就是一門需要技術的學問, 其中包含了眾多理論與實踐,
如果缺乏這些知識和經驗, 測試的深度和廣度就不夠, 當然就無法保證測試品質

所以 運行完測試並不是看完結果就算了
重點在於分析測試結果後的動作
由這些結果中得到回饋, 然後修正
經由不知多少次的反覆 才能逐步讓測試發揮最大價值

REF


↙↙↙阅读原文可查看相关链接,并与作者交流