嵌入式做白盒測試,如果是平臺級的軟件還是有必要的,但是如果是產品級的測試,基本上投入太大,得不償失。
我是這么看待自動化測試工具的,輸入、輸出、預期結果。簡單而言,自動化測試就是自動輸入數據,然后記錄輸出數據,與預期結果進行比較,得到測試結果。
不管針對什么產品,在構建自動化測試工具時,都可以使用這個流程。
對嵌入式產品而言,難點在于,輸入輸出數據的載體該如何選擇?
以手機測試為例子,大家可以想到的是,利用GSM標準或擴展AT命令進行輸入/輸出/比較。這種方案使用AT命令作為數據載體,但是需要軟件支持,比較麻煩。
手機的功能測試,基本上是使用鍵盤輸入,屏幕輸出。能不能在這上面想想辦法?
使用鍵盤作為輸入載體,使用屏幕作為輸出載體,構建一個自動化測試工具,可行否?
制作一個鍵盤模擬板,與測試手機的連接接口與實際鍵盤與手機的接口一致,同時將鍵盤模擬板接入PC,使用PC控制鍵盤按鍵命令作為輸入數據。
將屏幕與手機的連接取下,制作一個連接線裝置,使用同樣的接口連接手機與PC,這樣原來在手機屏幕上顯示的內容可以在PC上顯示(當然,需要開發驅動)。
測試時使用PC控制鍵盤輸入數據,記錄屏幕輸出數據,在完成第1次正確操作后,將屏幕輸出數據置為預期結果,后續的回歸測試不是都可以使用PC自動完成(當然,在需求發生變化造成界面重新設計后需要重新錄制腳本)?
這種方案的好處是脫離了對軟件的要求,即使軟件平臺發生變化,依然可復用。
同樣的,其他的嵌入式軟件測試,也可以使用相同的思路。GPS可以使用觸摸屏作為輸入數據載體,同樣使用屏幕作為輸出數據載體。MP3可以使用按鍵作為輸入數據載體,屏幕與音頻接口可作為輸出數據載體。
開發難度與復用率?
測試團隊可以編寫一個工具框架,項目組的硬件成員可開發相關硬件,手機上的鍵盤與屏幕都設計出來了,轉到PC上應該不難吧?軟件成員既然在手機上定義了驅動,在PC上寫個驅動不難吧?只要輸入輸出數據的載體不發生變化(出于采購以及成本的考慮,我想沒什么公司會天天變吧),這些驅動可以一直沿用?蓮陀眯赃是可以接受的。
大家的意見呢?
文章來源于領測軟件測試網 http://www.kjueaiud.com/