Linux Linux Test Project 之旅 - 00

Ms.Test · 2019年03月19日 · 最后由 hellcat 回复于 2019年03月19日 · 3492 次阅读

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

使用目的

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

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

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

  • 易於組裝測試場景
  • 易於運行測試
  • 測試粒度大小多元
  • 由於以上兩點, 也非常容易找出測試失敗點
  • 提供整合 GDB, PERF, CVE...等工具
  • 即使運行中途 ctrl-c, 測試結果仍有完整記錄
  • ...等

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

以 RaspberryPi 來練習 LTP

取得 LTP

  • 首先至 Linux Test Project下載原始碼 C $git clone https://github.com/linux-test-project/ltp.git

TOOLCHAIN 設定

  • 因為 LTP 要運行在 RaspberryPi 開發板上, 所以要下載 RaspberryPi 的 toolchain 以進行 cross compile

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

Cross compiler 設定

  • 下載並決定 toolchain 存放路徑後,
    於 LTP 原始碼專案下的 doc/build-system-guide.txt 確認編譯設定細節

    • 利用 shell script 來設定適才下載的 toolchain 路徑, 順便加入 configure, 加上參數指示安裝
    • 設定完後, 就是一般開源動作, 編譯 > 安裝 (開源有三寶 : configure, make, make install)
$make
$make install

運行測試

  • 考量到記憶體大小, 我將編譯後的整包執行工具, 複製到 USB, 以 mount 方式進行測試, 以確保空間足夠存放測試結果 (整包工具多達近 600MB, RBPI 的 MEM 才 1G, 可能會爆)
$mkdir /tmp/ltp
$mount /mnt/sda1 /tmp/ltp
  • 進行測試的方式可以參考Linux Test Project的說明 在此以進行 IPC(Inter-Process Communication) 測試為例
$./runltp -f ipc_customized
  • 如果是第一次進行測試, 工具會先建立測試過程所需要用到的使用者帳戶及群組

  • 可以很清楚地看到測試過程, TPASS 表示此測項通過

測試結果

  • 如果是運行 testsuite (例如 runtest 資料夾下的 senario test)), 就會以下圖呈現

  • 測試過程會建立兩個資料夾 results 以及 output 來存放測試結果

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

  • results 用來存放測試總結果, 檔名以時間區別

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

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

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

REF

共收到 1 条回复 时间 点赞

小姐姐这么秀的吗?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册