陳果


摘要:本文首先從移動電子設備的軟件開發和軟件測試的現狀開始介紹,然后根據現狀分析了當前開發測試模式存在的問題;然后針對真實的手機運行的環境以及運行機制提出了模擬器平臺的體系架構,所設計的體系結構實現了兩個目標,即應用程序代碼的獨立性和系統的可配置性。最后,恨據所設計的體系結構,使用PC機模擬器對其進行了實現。實驗的結果顯示,在模擬器上進行軟件的開發會顯著的提高手機軟件的開發效率,而且在模擬器上進行可以非常詳細的測試在現實生活中發生的事情,比如來電、打電話和多方通話等情況。
【關鍵詞】電子設備 軟件測試 模擬器
1 現狀和存在的問題
現在的手機越來越高級,性能越來越高,能夠在手機上運行的應用程序越來越多,幾乎每個人的手機上都安裝了各種各樣的軟件,因此導致了手機復雜性的顯著提高,另外由于手機單一的測試條件,大大限制了手機軟件的開發。而且在用手機進行測試的時候,許多發生的情況會影響到測試的結構,所以,現在國內的許多廠家都使用PC機進行開發軟件,然后下載到手機上,通過串口通信將Trace信息寫的PC機上,然后通過Trace信息定位問題。但是針對手機通話這種相對來說比較復雜的問題,通常情況下是通過內部蜂窩站多人協同測試,相率怎么樣可想而知。
上而所涉及到的是PC機的優點,可否利用PC機的開發環境來輔助手機的軟件開發是一個值得思考的問題?再一個問題是,能否利用所提到的模擬平臺來測試多方通話等現實生活中能夠遇到卻很難把握的情況。
2 手機運行環境
實時操作系統是多任務的操作系統,核心軟件,能夠提供許多功能,比如內存分配功能,中斷控制功能,任務調度功能等。
2.1 體系結構
如圖1所示。
(1)表示信息在Service Task和MMITask之問傳遞:
(2)表示信息在Handler和MMI Task之間傳遞;
(3)表示函數調用;
(4) RTOS向MMI Task發送的延時信息。
2.2 運行機制
MMI即人機界而接口它的功能是完成底層與用戶之問的交互,它的工作方式分為兩種,即主動的方式和被動的方式。
被動方式:用戶需要輸入,然后調用底層的函數返回結果,并將結果返回給用戶。
主動方式:對底層的消息進行接收,針對接收到的消息主動的反饋給用戶,比如說接收到了電話,手機的電量不足等。
從圖1我們可以看到,有三種不同的信息傳遞的表示方式,但是我們用實線箭頭來表示函數調用,比如申請動態內存,如圖1中的虛線所示,大多數是通過消息這一機制來運行的。
2.3 消息大致有以下幾類
MMI要想指定的服務器發送某個消息,服務器會在一定的時問問隔內返回給MMI成功的消息或者是失敗的消息,這是標準的雙向消息。
MMI會以Handler為目標發送請求消息,比如說MMI通過發送一個CLOCK消息獲取時間,然后在指定的時問問隔內CLOCK會向MMI發送當前的時問,這個也是標準的雙向消息。
定時器消息。MMI程序顯示類似于屏保這樣的畫而需要用到定時器消息,這個消息不需要返回消息,所以說這種消息是單向的。
單向的消息還有很多,比如說,MMI任務要求刷新屏幕需要請求LCD任務,而不需要返回消息,這就是單向的消息:又比如,鍵盤可以向MMI發送按壓鍵盤還是釋放鍵盤的消息,只需要提示而不需要返回消息,這也是單向的。
2.4 小節
在一個系統中,有一個MMI任務和許多的服務任務,但是對于每一個任務,他只有一個消息隊列和唯一的ID標識。3PC模擬平臺體系結構設計
3.1 系統應該提供的函數
RTOS提供的內存分配函數用于實現各個任務的調用,電泳完成之后要能夠正確的釋放。
對于RTOS的消息派發函數,根據所接收到的四元組的信息,包括發送方ID、消息ID、接收方ID、和實際消息數據塊這四個部分,將所接收到的四元組的信息正確無誤的放在接受任務的消息隊列中等待處理。
對于定時器的實現,所使用的的函數參數就是TimerID,根據TimerID來得到調用者的任務的ID,當任務超市后,必須向消息隊列中添加相應的超時的消息。
3.2 系統的可配置性
在大多數情況下,只有當時問發生了之后,服務器才會給MMI發型消息,四元組中的第四個消息其實沒有意義,換句話說,可以是一個固定的數值,這種情況發生時,可以將缺省的參數發送給MMI,這樣MMI發送請求的時候,測試人員可以直接發送通知消息給MMI。
對于不同的請求,一個請求消息對應的可以是一定數量的返回消息,比如說定時器消息,當MMI向CLOCK發送時問的請求消息時,CLOCK會定時向MMI發送當前時問的消息,比如沒30秒就會給MMI發送消息。
3.3 應用程序代碼的獨立性
對于應用在手機上的代碼,要完整的原封不動的復制到模擬器上運行,只有這樣才能保證發生在手機上的事情也能夠在模擬器上真實的顯現出來,能夠使測試的結果最大限度的接近現實情況,也能夠因此證明模擬器的可靠性。
3.4 模擬器體系結構
如圖2所示。
(1) MMI向服務器發送請求消息
(2)服務器向MMI發送的回應消息或者是服務器主動給MMI發送的消息
(3)控制臺線程主動給MM你發送的帶缺省參數的消息或者通知消息服務模塊的功能
(4)控制臺界而線程發送給服務器的內部的超時消息,服務器模塊可以實現特定時問問隔向MMI發送消息;
(5)模擬PTOS給MMI發送的延時消息。
4 結論
本文通過分析手機在軟件開發和軟件測試中出現的問題,然后對手機的可運行環境做了簡要的介紹,對于所涉及的體系結構的設計,實現了系統的可配置性和應用程序代碼的獨立性,實現模擬器上的軟件開發的同時大大提高了手機軟件的開發效率,而且對于在測試過程中出現的突然來電等情況進行更詳盡的測試,提高了開發測試的效率。endprint