iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 22
2
Software Development

自動化測試開發的美麗與憂愁系列 第 22

關於(固態)硬碟的耐力測試是怎麼做的 ...

  • 分享至 

  • xImage
  •  

這次要介紹的是如何做(固態)硬碟的耐力測試, 通常市面上常見的耐力測試都是依循JEDEC 218A 或JEDEC 219 協議規範的內容去做測試

原理:

懶人版測試流程-快速理解:

  1. 選擇一個測試用的SSD or HDD
  2. 把每一個LBA or sector內的空間塞滿特定資料
  • 特定資料: 通常是使用亂數字元塞到滿
  1. 在常溫或特定的溫度及濕度環境下擺放特定時數
    • 特定的溫度及濕度: 通常是參考裝置的SPEC 定義的最大值為主
    • 特定時數: 通常是24/ 48/ 72 小時
  2. 時間到了後開始做資料比對
  3. 判斷是否通過驗證

通常這類的資料驗證方式會在以下幾種情境下模擬:

  • 高溫、高濕的環境
  • 不正常斷電
  • 寫入資料的行為

接下來開始實作:

這類型的測試方式, 通常是使用專門的治具來做或者是使用自研的點子來做

方案一: 使用ulink 企業提供的商業解決方案

  1. 使用ulink 治具提供的腳本編輯器, 撰寫簡單的資料寫入及比對方案

程式行為:

  • 欲寫入每一個LBA的資料為1234
  • 連續寫入資料到每一個LBA 並做flush
  • 等待0.5秒
  • 讀出每一筆資料並做資料比對

引用自datacmp.srt - test script

可能有不少人會覺得是不是可以自幹一個, 商業解決方案. 只要是遇到硬體相關的就是很貴或不好買

方案二: 使用python 自幹一個
程式行為:

  • 把disk 塞滿, 使用/dev/random 產生的亂數字串
    • 如果是在企業寫這類的測試工具, 通常在sector 0 跟最後的sector 都會加入特定字串 e.g ironmen demo test ... ironmen demo test
  • 讀取MD5並存入檔案
  • 比對MD5 檔案
    • 快速比對: 直接比對 前後兩個MD5檔案的特徵碼是否一致即可
    • 深度比對: MD5 檔案內一行一行的比對 (非常耗時)

程式碼片段

耐力測試方案:
方案 做完後 => 放入溫濕度控制箱內 烤一烤 一定時間後 => 取出 => 做資料比對

結論:
很多測試工具通常是只要搞懂理論後, 就可以開始跟團隊討論, 設計發想後就開發, 理論跟原理很重要, 如果不懂這些, 只是做個碼農就太可惜

參考資料:


上一篇
playwright for go - 網頁自動化控制
下一篇
Windows 桌面自動化的另類選擇
系列文
自動化測試開發的美麗與憂愁30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言