闲聊嵌入式测试
                            
                            
                            就職在一家物聯網平臺公司,剛入職熟悉業務的時候負責過嵌入式的測試。由于嵌入式測試比較偏門,就和大家聊一聊嵌入式測試和常見的軟件測試有什么區別。
 
 
                        
                        
                        -  嵌入式產品類型 
-  安防行業 - 通過車載攝像頭的數據進行實時傳輸達到的視頻云監控,對周邊路口進行實時預警,盲區監測等。
- 通過采集用戶生物信息達到的智能門禁識別。
- 通過5G高速網絡實現的車載設備和紅綠燈交互通信,攝像頭對路口人員檢測,讓紅綠燈更加高效的協調各個路口交通。
- 通過校園點位檢測,人臉識別簽到機,實驗室氣體檢測報警設備達到的智能校園等等。
 
-  通信行業 - 路由器,本質上還是基于Linux進行二次開發,內置有DNS服務器,DHCP服務器,HTTP服務器,至于4G/5G,我認為是多了一個通信模塊和降低功耗,增強信號強度等
- 交換機,上學的時候經常和這玩意打交道,思科(Cicso)和華為的設備都是基于Linux二次開發,一些命令都一樣,例如:查看網卡功能ipconfig,查看路由:route 等
- 防火墻,接觸過網御星云的一些防火墻,產品類型是基于Linux二次開發。舉個例子,防火墻的目的是管理墻內的網絡,對IP,端口,域名等進行限制,那CentOS6的iptables是不是也可以達到這樣的效果?想了解防火墻的話,研究一些Linux上的防火墻就可以?四表五鏈,各自負責自己的功能。
 
-  物聯網平臺 - 小米全家桶,智能空調,智能音箱,智能洗衣機,智能電視等等
- 人臉支付,智能體溫計等等
 
-  其他產品 
-  嵌入式用到技術/系統 
-  Linux 
- 需要做復雜的業務處理的產品,像防火墻,路由器,交換機,控制設備的主機
-  安卓 
- 注重交互的產品,智能電視,路邊的電子站牌,車載主機的顯示屏等
-  開發板 
- 注重和硬件交互,C/C#,像共享單車智能的開關,停車場道閘的升降等
-  特有名字 
-  燒錄 - 像上面描述的開發板,想在上面裝程序就需要用到燒錄,其實是通過程序來進行安裝。(如果愛搞機的水友應該知道有一種安裝系統的方式就是燒錄,或者是重新安裝BIOS程序,就需要燒進去)
 
-  串口 - 用來和純硬件程序做交互的方式,常說串口通信, 日常用作讀取硬件的日志,看下發的命令和收到的日志是否正確,如果不正確,就是BUG
 
-  看門狗 - 重啟解決80%的問題,硬件運行環境極其復雜,各種疑難雜癥,為了應對這些疑難雜癥,一般遇到異常之后就會自動重啟,然后通過看門狗程序拉起應用(類似于檢測主程序進程,如果主進程丟失,就運行啟動命令)
 
-  測試工具 
聊嵌入式測試就不得不聊嵌入式的測試設備。
- 串口線 - 和硬件通信的工具,類似于數據線,一端USB口,另一端插在板子上
 
- 杜邦線 - 目的是為了讓設備短路,線的兩頭一樣
 
- 藍牙燒錄器 - 硬件設備很大一部分靠藍牙通信(沒接觸嵌入式之前,感覺藍牙沒啥用,就只能連接藍牙耳機一樣),之前一直不明白滴滴的青桔單車開鎖的時候為什么一定 要開啟藍牙,原來是因為開鎖的指令是通過手機藍牙下發給智能鎖來達到開鎖的效果。
 
- 高低溫箱 - 溫度對硬件的工作影響是比較大的,例如北方的共享單車用的都是低溫電池,南方的共享單車用的都是常溫電池;北方的車載設備內置硬盤應該都是被處理過的,南方的就是普通的,外加防震,因為低溫下會降低磁盤讀寫速度,不然實時查看錄像的時候會卡頓。
 
- 熱熔槍
- 錫焊
- 示波器
- 萬用表
- 等等
- 測試類型
- 功能測試 - 基于安卓的嵌入式應用,正常的功能測試和交互測試,其中,尤其注意安裝/升級測試等。
- 基于Linux的嵌入式應用,讀日志,命令控制,功能,交互測試等。
- 基于C#的嵌入式應用,根據日志來判斷業務功能狀態是否正確。
- 要注意的是如果測試環境中換了一個元件,需要從頭再測試一遍,因為硬件的不穩定性太多太多
 
- 穩定性測試 - 嵌入式設備一般長期工作,7*24小時,是否存在離線的情況
- 網絡波動,網絡恢復后是否能修復影響
- 死機之后,看門狗是否能拉起設備
 
- 專項測試(尤其重要,否則可能造成大批量設備問題,修復問題成本極高) - 高低溫
- 壓力測試
- 電池壽命
- 功耗高低
- 等等
 
總的來說,嵌入式的測試和軟件的測試工作大同小異。
 軟件測試是根據需求文檔,然后進行需求和實現的功能進行測試,測試過程中可有清晰的交互和明明白白的日志可以幫助排查問題。
 嵌入式測試也是根據需求文檔,然后進行需求和實現的功能進行測試。但是,基于安卓的嵌入式產品還好,如果是其他類型的產品測試,根據自己實現的操作和研發定好的協議進行對比,從頭到尾都在對比日志,測試一天發現三個BUG,研發一個BUG改一天。
總結
 
                            
                        - 上一篇: Revit二次开发:VS常用快捷键
- 下一篇: 2小时教会你用微信小程序做高端大气的简历
