.
版本:v0.1
作者:河東西望
日期:2022-7-15
.
對很多安卓智慧裝置廠商來說,他們的通用開發模式一般是:ODM/OEM設計開發主機板PCBA(包括BSP驅動、原生AOSP系統及簡單客製化),自己做簡單的系統二次客製化及應用開發。而開發實力和水平較強的公司,則會做整體系統ROM客製化和優化、應用SDK平臺化等深度開發。
不管怎麼開發,只要主機板是PCBA廠商提供的,都面臨一個問題,就是如何驗收ODM廠商的PCBA主機板質量,包括設計質量和生產質量。硬體和結構的質量,各行業都有相關國家標準體系,例如電子行業的3C標準,醫療行業的NMPA標準等等。本檔案並不討論這些硬體和結構質量標準及測試方法。
這裡討論的是PCBA主機板的軟體系統相關的質量驗收測試方法,例如,安卓系統的穩定性,元器件(CPU/MEM/Disk/USB/WIFI/LAN/Battery等)的軟體效能,甚至也不關注質量標準。本文基於工程專案實踐經驗,提供一些快速可靠的測試工具和方法。
首先,我們要搞清楚在哪些情況下我們需要驗收?驗收的內容是什麼?
我們還是有必要先了解一下PCBA主機板的生命週期。一般情況下,硬體裝置開發生產的標準流程:
設計階段 | O ─> EVT
開發階段 | └──> DVT
試產階段 | └──> PVT
量產階段 | └──> PRD
EVT,Engineering Verification Test
DVT,Design Verification Test
PVT,Product Verification Test
PRD,Production,生產階段。
在這四個階段,理論上來說,每塊PCBA主機板都需要進行驗收測試,但是綜合考慮專案時間進度、人力裝置資源、驗收測試周期等因素,每個階段主機板驗收的重點不一樣:
硬體階段 | 測試版本 | 測試專案 | 測試說明 |
---|---|---|---|
EVT | 原生系統版本 | 工程測試、效能測試、壓力測試、功耗測試 | 硬體和系統基本摸底測試 |
DVT | 開發穩定版本 | 壓力測試、功耗測試 | 整機效能和功耗測試,檢驗執行應用質量 |
PVT | 生產測試版本 | 主機板測試、工程測試、效能測試 | 生產流程和效率驗證 |
PRD | 量產出貨版本 | 主機板測試、工程測試、效能測試、應用測試 | 出廠質量測試 |
所以我們會有如下這些工程測試:
研發、測試和生產團隊,可以根據自己的專案實際情況來安排要實施哪種測試組合。後面簡單說一下這些測試都有那些內容,以及測試工具和方法。
實際上,很多中小型公司的生產開發流程一般是這樣的:
首板開發階段:
EVT
└──> DVT
└──> PVT
└──> PRD
批次出貨階段:
備貨計劃
└──> 生產貼片
└──> 刷入主機板小系統
└──> PCBA主機板測試
└──> 主機板入庫
出貨計劃
└──> 刷入整機系統版本
└──> 工程測試
├── 效能測試 │
├── 老化測試 │
└── 應用測試
└──> 出貨
PCBA主機板功能測試,主要在SMT貼片線實施,主要測試的內容就是測試PCBA主機板各種硬體和驅動是否都正常使能及正常工作,測試要求快速方便。
PCBA主機板測試工具由晶片平臺廠商(qcom、mtk、rockchip、amlogic等)提供。實際上是一個bootloader小linux系統,不包含android完整系統,大小隻有幾MB,可以快速燒錄到主機板中。在AOSP原始碼中也會有這個工具,可以根據實際情況修改原始碼調整測試項。
就是常說的工程模式測試,在android執行環境中對硬體功能進行簡單驗證測試。例如:
工程模式是一個應用APK,是通用的測試工具,一般由晶片廠商開發提供的,在AOSP工程中也有原始碼,開發團隊只需要根據實際狀況進行修改就可直接使用。
硬體效能測試,在android裝置中並沒有通用的工具和測試標準。測試的主要目的是為了檢查硬體效能是否滿足規格要求。例如DDR3和DDR4的讀寫速率,EMMC讀寫速率,USB2.0和USB3.0的讀寫速率,2G/3G/4G網路速率等等。
硬體效能測試包括硬體電氣特性測試和軟體效能測試。硬體的電氣特性測試(例如USB眼圖測試,USB浪湧測試,WIFI輻射測試等),一般由硬體團隊來完成。而軟體效能測試(例如DDR讀寫速率,CPU浮點運算、USB傳輸速率、網路傳輸速率等),則需要編寫自動化測試用例和指令碼來完成。
硬體效能測試的測試目的、工具方法如下:
硬體 | 效能 | 方法和工具 | 說明 |
---|---|---|---|
CPU | 頻寬和運算能力 | 圓周率浮點運算1W位的時間 | 可以對不同的CPU時脈頻率進行測試 |
DDR | 記憶體頻寬 | 記憶體MEMCPY、DUMB、MCBLOCK等操作時間 | |
EMMC | 壞塊和讀寫速率 | 檢查EMMC磁碟壞塊;dd命令分割區讀寫時間 | 檔案大小為10Mx1000次和10Gx1次 |
USB | USB讀寫速率 | dd命令對U盤進行讀寫 | 1.檔案大小為10Mx1000次和10Gx1次。2. USB host/OTG測試讀寫方向不一樣。 3. U盤必須是高速穩定的 |
網路 | 網路速率和頻寬效能 | TTL響應時間和頻寬 | 1. 測試物件包括蜂窩/有線/無限網路。2.必須在高速穩定的網路環境下,伺服器不能限速 |
電池 | 最長待機時間 | 待機休眠靜置直至自動關機 | 純硬體測試方法 |
觸屏 | 響應時間 | 手指觸控到響應的介面響應的時間 | 軟體插樁測試 |
溫度 | 溫升時間 | 最大持續負載下CPU達到90度的時間 | 具體溫度指標可以自定 |
當然,不同的裝置可能還有其他硬體例如耳機、喇叭、陀螺儀、距離感應器、光感應器等,需要根據實際情況自己設計測試方法和質量標準。
當然,軟體系統本身還有一些效能測試專案:例如開機速度、卡頓測試、拷貝測試,壓縮/解壓測試,多媒體編解碼測試等,可以作為作業系統或者元件效能的測試專案,而不作為PCBA主機板質量和效能測試專案。
每種具體的測試方法和工具,後續的檔案會逐步的展開。
硬體的執行效能壓力測試,就是在最大負載條件下持續長時間執行,硬體表現出來的效能。例如對CPU、記憶體,BLKIO進行持續高壓測試,採集執行資料,檢視效能曲線,分析最大值,最小值,平均值,溫度及異常資料資訊等等。
一般的壓力測試有CPU壓力測試,記憶體壓力測試,BLKIO壓力測試,如果有條件的話,可以加入卡頓測試。
硬體 | 測試方法 | 測試工具 |
---|---|---|
CPU | 執行緒拷貝運算 | stressapptest |
DDR | 記憶體拷貝操作 | stressapptest、mbw、memtester |
EMMC | 塊IO讀寫操作 | stressapptest |
詳細的測試方法和工具,在以後的博文中詳細展開。
在工廠生產測試中,對主機板有老化實驗測試,主要是針對硬體元器件進行持續2~4小時的測試,確保在出廠時間段內元器件沒有失效。這些實驗方法一般由廠商的NPI部門負責設計和開發測試工具。只需要對壓力測試工具和方法調整測試時間即可。
就是對各種系統負載下的功耗進行測試。這個測試是一個硬體測試,但是需要硬體團隊和軟體團隊一起協同來完成整個測試。
軟體團隊主要是設計各種負載測試條件,編寫測試指令碼和紀錄檔提取工具,生成測試報告等。硬體團隊主要是根據負載測試要求,採用帶有GPIB採集介面的精密電源,監測硬體功耗,提供測試資料和測試報告。
負載測試的內容包括如下幾個:
整機功耗測試,一般會基於不同的系統基線進行測試:
每種系統基線的功耗測試,一般要基於如下幾種工作負載場景來進行測試:
系統開機後,對裝置的關鍵應用做真實場景的應用測試,確保功能正常。這個測試一般由工廠來設計實施,沒有統一的操作方法和質量要求。
這個實驗由質量部門確認,是做全測還是做一定比例的抽測。