
文章內容為本人這三年來在嵌入式軟體測驗(黑盒)上的一些積累吧,說起來也挺快的,畢業三年的時間就這樣過去了,在兩家公司作業過(現在這家是第二家),這幾年的測驗專案基本都是圍繞著嵌入式軟體,同時需要兼顧測驗App端、Web端功能、Web后端介面(Postman),只是測驗業務重心還是在嵌入式軟體上,
為什么測驗的這么雜呢,其實這些全部加起來只是一個產品,只是因為目前就只有我一個測驗,所以整套系統都是由我一個人來測,
就拿我現在這家公司做的一個視頻會議系統來說吧,整套系統包含有硬終端(Linux端)、App端、Web端(用于后臺賬戶/會議管理等)、PC端組成,
接觸過嵌入式軟體測驗的同學應該都明白這些事,下面我就來說說自己這幾年對嵌入式軟體測驗的理解和看法吧,歡迎留言補充或討論,勿噴喔~
什么是嵌入式系統?
嵌入式系統是一種“完全嵌入受控器件內部,為特定應用而設計的專用計算機系統”,
嵌入式系統是“用于控制,監視或輔助操作機器和設備的裝置”,
嵌入式系統還可以定義為“以應用為中心,以計算機技術為基礎,軟硬體可裁剪,功能、可靠性、成本、體積、功耗要求嚴格的專用計算機系統,”
嵌入式系統由嵌入式硬體和嵌入式軟體兩部分組成,硬體是支撐,軟體是靈魂, 嵌入式系統按實時性分類,可分為非實時性,軟實時性和硬實時性, 其中硬實時性是指系統對回應時間有嚴格要求,如果回應時間不能滿足,就要引起系統崩潰或致命錯誤;軟實時性是指系統對回應時間有要求,但是如果系統回應時間不能滿足,不會導致系統出現致命的錯誤或崩潰,什么是嵌入式軟體?
嵌入式軟體是基于嵌入式系統設計的軟體,它是計算機軟體的一種,同樣由程式及其檔案組成,可分為作業系統,支撐軟體,應用軟體三大類,是嵌入式系統的重要組成部分,
說通俗易懂一點就是一套安裝在帶有linux系統的PCB板子上的軟體,像這樣:
嵌入式軟體的特征
- 系統內核小
- 專用性強
- 系統精簡
- 高實時性作業系統
- 基于硬體和軟體的相輔相成
- 與商用軟體測驗異同點
此文單從黑盒測驗的角度來講,
相同點
嵌入式軟體測驗和商用軟體測驗的目的和原則是相同的,都是為了找Bug、跟蹤Bug、驗證Bug,使產品實作需求檔案上功能,滿足用戶需求,
不同點
需要的測驗環境不同,
測驗嵌入式軟體的時候,你需要準備的環境是一整套設備,里面可能包含電源、網線、高清線(各種視頻傳輸線)、交換機、攝像頭、麥克風、U盤、路由器等等,
測驗商用軟體可能就是一個安裝包,或者是一個測驗URL,你需要準備的可能就是一個電腦或者一部手機, 測驗的思維不同(要做到出現問題先自檢), 這里的測驗思維并不是說設計測驗用例時需要的思維方式,而是在定位Bug的時候,思維不一樣, 在測驗嵌入式軟體的時候,如果出現某個功能無法實作,有可能是確實是功能實作問題,有可能是記憶體問題,有可能是硬體支持問題,有可能是驅動問題,有可能是網路問題,有可能是硬體物理介面問題, 雖然看似這些問題與我無關,但是如果是硬體支持的問題,你拋出Bug,開發排查完之后發現是你自己沒有按照規格接入所能支持的硬體,到時候尷尬的是不是你? 再比如POE網口如果沒有接入支持POE的網線,造成問題是不是你的不專業了等等,我們既然是測驗工程師,那就應該要有工程師的專業程度來完成作業, 在測驗商用軟體的時候,遇到功能無法實作,我們大部分情況下就是直接拋出Bug給開發,附帶Bug截圖、log和操作步驟,通常都好使,如果對python自動化測驗、web自動化、介面自動化、移動端自動化、面試經驗交流等等感興趣的測驗人,可以 點我進測驗行業圈,里面有我們收集的配套教程和相關技術檔案提供給自學的伙伴…
需要的技能點不同
根據這幾年的測驗專案經驗,發現嵌入式軟體測驗對計算機網路原理的應用比較頻繁,
在測驗嵌入式軟體的時候,你要接入網線、進行網路配置、接入交換機、了解網路通信、資料傳輸等等……
也就是說嵌入式軟體測驗你需要的是(扎實的軟體測驗理論和測驗方法+計算機網路相關基礎知識),
而測驗商用軟體的時候,由于環境搭建沒有太復雜,涉及到計算機網路相關的知識比較少,需要的往往是扎實的軟體測驗理論和測驗方法,嵌入式軟體測驗的自身特點和測驗困難:
- 目前系統資源有限
- 與硬體系統緊密關聯
- 運行平臺多樣化
- 交叉式的測驗模式
- 系統的安全性、可靠性、系統運行結果的正確性等
嵌入式軟體的測驗策略與一般的商用軟體有很大的區別,
有人可能會問嵌入式軟體測驗難嗎?跟商用軟體測驗相比哪個難度更高?
我感覺在黑盒測驗中,嵌入式軟體測驗是要比商用軟體測驗難度高的,我只站在嵌入式軟體的黑盒測驗角度來發言,為什么這么說呢,我暫時只想到以下幾點:
硬體平臺不同導致測驗難度增大,由于嵌入式軟體是跟硬體平臺緊密關聯的,也就是說同一套軟體,如果移植到另一個平臺上,就要從頭到尾的測驗一遍,在作業量上就比商用軟體大,出錯幾率也會提升,相應的測驗難度也會提高一點,我就遇到一個專案需要跑在兩個平臺的情況,
測驗環境導致測驗難度增大,我可以很肯定的說,同一套設備在A環境操作正常,我只要換一個交換機,搭建一個B環境,就很有可能會出現Bug,所以有經驗的嵌入式軟體測驗同學在遇到客訴的Bug時第一時間都是問當時的環境是什么,設備有哪些,操作步驟是什么?必要時采取將設備全部寄回來復現,
硬體平臺性能導致測驗難度增大,硬體平臺的芯片性能是肯定沒有電腦上的CPU這么吊的,所以在測驗的時候,我們往往會出現一些硬體性能上的問題導致一些Bug偶現,這對我們測驗人員來說,想要找到一個偶現的Bug是非常的難,需要采取工具來跟蹤操作步驟列印log,
外接設備導致測驗難度增大,生活中基本上的嵌入式軟體都是需要外接其他的設備的,比如接入U盤、攝像頭、麥克風等等,在測驗時如果發現某個作業無法實作,我們需要從三個方面去考慮:
1、是不是軟體的功能Bug;
2、是不是硬體物理介面損壞問題;
3、是不是接入的外設與軟體協議有問題或者驅動有問題等等原因增加了測驗難度,
最后一個導致測驗難度大的原因就是嵌入式軟體測驗相對來說是比較獨立于軟體測驗的,相關的資料也是比較少的,并不像商用軟體測驗一樣,只要一搜索,就能找到測驗方法和一些測驗文章,嵌入式軟體測驗更多的是一個實戰,每一個應用場所的嵌入式軟體測驗的思維方式不一樣,
如果對python自動化測驗、web自動化、介面自動化、移動端自動化、面試經驗交流等等感興趣的測驗人,可以 點我進測驗行業圈,里面有我們收集的配套教程和相關技術檔案提供給自學的伙伴…
結尾
測驗也是一個有技術難度的崗位,需要不斷的積累經驗,老手測驗和新手測驗最大的不同就是老手測驗可以很快的定位和發現Bug,老手測驗可以有更多的測驗方法和測驗策略去找到Bug,有更好的測驗管理經驗和業務能力,
祝各位同學在測驗的道路上越來越好,一起加油!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/498732.html
標籤:其他
上一篇:實操自動生成介面自動化測驗用例
