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