原文出處 : https://gitmaruneko.github.io/2019/03/17/TravelOfLinuxTestProject00.html
最近在學習如何做嵌入式系統的穩定性測試,
一直都覺得嵌入式系統因其特有的即時性, 高可靠性等要求,
導致嵌入式系統的測試大不同於一般軟體測試,
這些特點同時也增加了嵌入式測試的複雜度以及難度, 而且也少有方便好用的測試工具
想起在前公司開發 Android 產品時, 曾經玩過 LTP 這個自動化測試框架
(其實當時只是無聊, 想把 kernel 搞掛 XDD)
沒想到正好拿來應用於手邊的產品
選擇 LTP 當作穩定測試的工具
除了因為其開源, 具有一定的公信力以外
它還具備一個靈活特性
和 robotframework 一樣, 可以自由設計並組裝測內容
robotframework 利用 關鍵字 來組裝
而在 LTP 內, 一個小單元的 testcase 就等於是 robotframework 的關鍵字
甚至 testsuite 也是一個關鍵字
它至少有以下特點 :
所以, 相比其他嵌入式系統測試框架
它真的是一個非常友善的測試工具
C
$git clone https://github.com/linux-test-project/ltp.git
(關於 Raspberry Pi 的 toolchain 設定可參考此 :
安裝 Raspberry Pi 的 Toolchain)
下載並決定 toolchain 存放路徑後,
於 LTP 原始碼專案下的 doc/build-system-guide.txt 確認編譯設定細節
$make
$make install
$mkdir /tmp/ltp
$mount /mnt/sda1 /tmp/ltp
$./runltp -f ipc_customized
如果是第一次進行測試, 工具會先建立測試過程所需要用到的使用者帳戶及群組
可以很清楚地看到測試過程, TPASS 表示此測項通過
在output資料夾可以看到兩個副檔名分別為 *.fail 以及 *.conf 的檔案
顧名思義, 測試過程中的 fail 測項, 還有需要做進一步 configure 的測項
會分別被記錄在兩個檔案中 (真的很貼心), 提供使用者做下一次測試的參考
下圖為運行測試過程中的 CPU 以及 MEM 利用率
可用來作為穩定性評估的參考資料
最近跟 LTP 相處下來, 覺得最難之處在於測試後的分析
深入看測試內容後, 越發覺得 OS 學得不夠好
測試工作本身就是一門需要技術的學問, 其中包含了眾多理論與實踐,
如果缺乏這些知識和經驗, 測試的深度和廣度就不夠, 當然就無法保證測試品質
所以 運行完測試並不是看完結果就算了
重點在於分析測試結果後的動作
由這些結果中得到回饋, 然後修正
經由不知多少次的反覆 才能逐步讓測試發揮最大價值