專利名稱::一種支持版本兼容的數(shù)字終端測(cè)試環(huán)境及其構(gòu)建方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于自動(dòng)化測(cè)試領(lǐng)域,尤其針對(duì)數(shù)字終端的自動(dòng)化測(cè)試領(lǐng)域。
背景技術(shù):
:隨著普適計(jì)算技術(shù)的飛速發(fā)展,以智能手機(jī)、PDA、智能家電以及便攜式媒體中心為代表的數(shù)字終端設(shè)備不斷發(fā)展和成熟,擁有越來(lái)越豐富的第三方應(yīng)用程序并且具有人機(jī)交互的軟、硬件界面。對(duì)數(shù)字終端平臺(tái)上的應(yīng)用程序的功能、可信度和安全性進(jìn)行測(cè)試已經(jīng)成為程序數(shù)字終端廠商、數(shù)字終端操作系統(tǒng)提供商、移動(dòng)運(yùn)營(yíng)商和移動(dòng)用戶面臨的一個(gè)重要問(wèn)題。目前,數(shù)字終端測(cè)試主要以人工測(cè)試為主?;谀_本的自動(dòng)化測(cè)試工具是當(dāng)前流行的自動(dòng)化測(cè)試解決方案。如果能將自動(dòng)化測(cè)試引入數(shù)字終端測(cè)試,上面的問(wèn)題將很容易解決。主機(jī)-數(shù)字終端(HOST-TARGET)是一種有效的數(shù)字終端自動(dòng)化測(cè)試方式,采用這種測(cè)試方式時(shí),需要在數(shù)字終端上構(gòu)建測(cè)試環(huán)境。數(shù)字終端生產(chǎn)廠商發(fā)布一個(gè)新版本系統(tǒng)后,測(cè)試人員為了實(shí)現(xiàn)對(duì)數(shù)字終端第三方應(yīng)用程序進(jìn)行全面、有效的測(cè)試,需要在新版本上構(gòu)建新的測(cè)試環(huán)境。多版本的并行構(gòu)建增加了開(kāi)發(fā)成本,提高了測(cè)試環(huán)境的管理成本,同時(shí)增加了維護(hù)難度。另一方面,在較高系統(tǒng)上構(gòu)建的測(cè)試環(huán)境無(wú)法在低版本系統(tǒng)上運(yùn)行,造成了測(cè)試環(huán)境的復(fù)用率低,版本兼容性差。而較低版本系統(tǒng)開(kāi)放的應(yīng)用程序編程接口(API,ApplicationProgrammingInterface)種類(lèi)非常少(Android數(shù)字終端系統(tǒng)2.0以前的版本未開(kāi)放藍(lán)牙API,無(wú)法調(diào)用藍(lán)牙API實(shí)現(xiàn)具有通信功能的應(yīng)用程序),僅依賴于軟件開(kāi)發(fā)工具包(SDK,SoftwareDevelopmentKit)的開(kāi)發(fā)滿足不了開(kāi)發(fā)人員的需求,從而大大降低了測(cè)試環(huán)境的便捷性、靈活性,因此協(xié)調(diào)兩者的矛盾是亟需解決的問(wèn)題。數(shù)字終端廠商不斷發(fā)布新的系統(tǒng)版本,新版本的系統(tǒng)有時(shí)會(huì)對(duì)實(shí)現(xiàn)相應(yīng)功能的類(lèi)和方法進(jìn)行修改,這是造成測(cè)試環(huán)境版本兼容性差的主要原因。而Java反射機(jī)制是指Java程序可以于運(yùn)行時(shí)加載、探知、使用編譯期間完全未知的類(lèi),因此可以基于Java反射機(jī)制構(gòu)建測(cè)試環(huán)境,測(cè)試環(huán)境能夠在運(yùn)行時(shí)獲取系統(tǒng)版本,動(dòng)態(tài)加載與當(dāng)前系統(tǒng)版本對(duì)應(yīng)的應(yīng)用框架類(lèi)以實(shí)現(xiàn)相應(yīng)的功能。
發(fā)明內(nèi)容針對(duì)上述需求,本發(fā)明將Java反射機(jī)制與HOST-TARGET測(cè)試架構(gòu)相結(jié)合,提出一種支持版本兼容的數(shù)字終端測(cè)試化境的構(gòu)建方法,主要利用Java反射機(jī)制動(dòng)態(tài)加載具有通信、驅(qū)動(dòng)以及捕獲反饋功能的應(yīng)用框架類(lèi),通過(guò)調(diào)用這些應(yīng)用框架類(lèi)實(shí)例的方法來(lái)實(shí)現(xiàn)相應(yīng)的功能,輔助測(cè)試平臺(tái)完成對(duì)數(shù)字終端的自動(dòng)化測(cè)試。本發(fā)明提出的一種支持版本兼容的數(shù)字終端測(cè)試環(huán)境的構(gòu)建方法,基于HOST-TARGET架構(gòu)的測(cè)試平臺(tái)構(gòu)建數(shù)字終端的測(cè)試環(huán)境,在TARGET端構(gòu)建測(cè)試環(huán)境具體包括下面步驟步驟一、將數(shù)字終端的測(cè)試環(huán)境分為三個(gè)功能模塊通信模塊、驅(qū)動(dòng)模塊、捕獲反饋模塊;步驟二、利用Java反射機(jī)制,根據(jù)實(shí)際需要為實(shí)現(xiàn)三個(gè)功能模塊的應(yīng)用框架類(lèi)做封裝類(lèi),實(shí)現(xiàn)封裝類(lèi)的方法,并設(shè)計(jì)封裝類(lèi)的自動(dòng)獲取機(jī)制;首先在實(shí)現(xiàn)通信模塊方面,建立系統(tǒng)版本號(hào)、通信方式與通信應(yīng)用框架類(lèi)的映射表,在實(shí)現(xiàn)驅(qū)動(dòng)模塊方面,建立系統(tǒng)版本號(hào)與驅(qū)動(dòng)應(yīng)用框架類(lèi)的映射表,在實(shí)現(xiàn)捕獲反饋模塊方面,建立系統(tǒng)版本號(hào)與捕獲反饋應(yīng)用框架類(lèi)的映射表;然后在此基礎(chǔ)上,為上述的三種應(yīng)用框架類(lèi)做封裝類(lèi),封裝類(lèi)利用Java反射機(jī)制實(shí)現(xiàn)統(tǒng)一的接口;最后,利用抽象工廠模式創(chuàng)建封裝類(lèi)實(shí)例,實(shí)現(xiàn)封裝類(lèi)的自動(dòng)獲取機(jī)制;步驟三、在步驟二的基礎(chǔ)上各模塊根據(jù)當(dāng)前系統(tǒng)版本號(hào)自動(dòng)獲取相應(yīng)的封裝類(lèi)實(shí)例,通過(guò)調(diào)用封裝類(lèi)實(shí)例的方法實(shí)現(xiàn)各模塊的功能;步驟四、將三個(gè)模塊整合,并添加錯(cuò)誤信息提示功能,完成數(shù)字終端測(cè)試環(huán)境的構(gòu)建。最終,Java反射機(jī)制與HOST-TARGET測(cè)試架構(gòu)相結(jié)合,提出一種支持版本兼容的數(shù)字終端測(cè)試環(huán)境的構(gòu)建方法,實(shí)現(xiàn)了一種新的對(duì)數(shù)字終端進(jìn)行自動(dòng)化測(cè)試機(jī)制。該測(cè)試機(jī)制在一定程度上屏蔽不同版本API的差異性,能夠大大提高測(cè)試環(huán)境的復(fù)用率、降低數(shù)字終端廠商的測(cè)試成本。本發(fā)明提出的支持版本兼容的數(shù)字終端測(cè)試環(huán)境,包括通信模塊、驅(qū)動(dòng)模塊以及捕獲反饋模塊三部分。三個(gè)模塊功能的實(shí)現(xiàn)都采用了Java反射機(jī)制。具體如下通信模塊采用Java反射機(jī)制獲取通信應(yīng)用框架類(lèi),能通過(guò)多種通信方式與HOST進(jìn)行連接,并負(fù)責(zé)將數(shù)字終端發(fā)送的數(shù)據(jù)轉(zhuǎn)發(fā)到驅(qū)動(dòng)模塊,將數(shù)字終端本身的打包數(shù)據(jù)反饋給主機(jī)。驅(qū)動(dòng)模塊實(shí)現(xiàn)模擬用戶輸入的功能,接收通信模塊轉(zhuǎn)發(fā)過(guò)來(lái)的主機(jī)HOST的測(cè)試命令,通過(guò)模擬用戶輸入向數(shù)字終端注入測(cè)試激勵(lì)以驅(qū)動(dòng)數(shù)字終端的執(zhí)行。因而,模擬用戶輸入是實(shí)現(xiàn)HOST-TARGET測(cè)試環(huán)境的關(guān)鍵環(huán)節(jié)。捕獲反饋功能動(dòng)態(tài)加載與當(dāng)前系統(tǒng)版本對(duì)應(yīng)的捕獲反饋功能的應(yīng)用框架類(lèi),實(shí)現(xiàn)對(duì)數(shù)字終端系統(tǒng)的實(shí)時(shí)捕獲,并將反饋信息打包發(fā)送到通信模塊回傳。本發(fā)明的優(yōu)點(diǎn)與積極效果在于(1)本發(fā)明構(gòu)建的測(cè)試環(huán)境能夠應(yīng)用于多個(gè)數(shù)字終端系統(tǒng)版本之上,真正實(shí)現(xiàn)一次開(kāi)發(fā),多版本系統(tǒng)之上運(yùn)行。(2)本發(fā)明提出的多版本兼容的測(cè)試環(huán)境的構(gòu)建方法具有普適性,適用于Android和其他以Java為開(kāi)發(fā)語(yǔ)言的數(shù)字終端平臺(tái)。(3)擴(kuò)展低版本的API,低版本數(shù)字終端系統(tǒng)對(duì)開(kāi)發(fā)人員開(kāi)放的API種類(lèi)較少,無(wú)法滿足開(kāi)發(fā)人員的需求,本發(fā)明提出的基于Java反射機(jī)制的方法可以使開(kāi)發(fā)人員在運(yùn)行時(shí)動(dòng)態(tài)加載應(yīng)用框架類(lèi)和方法完成所需的功能,從而擺脫對(duì)SDK中API的過(guò)度依賴。(4)本發(fā)明所述的構(gòu)建方法提高了測(cè)試環(huán)境的數(shù)字終端系統(tǒng)版本兼容性,避免了測(cè)試環(huán)境的多版本并行構(gòu)建,降低了測(cè)試環(huán)境的構(gòu)建、維護(hù)成本。(5)本發(fā)明所述的構(gòu)建環(huán)境在保證數(shù)字終端系統(tǒng)版本兼容性的同時(shí),提高了測(cè)試環(huán)境的可擴(kuò)展性,出現(xiàn)新版本系統(tǒng)時(shí),可以對(duì)測(cè)試環(huán)境進(jìn)行擴(kuò)展,而不需重復(fù)開(kāi)發(fā),以支持新版本數(shù)字終端系統(tǒng)的測(cè)試。圖1是基于HOST-TARGET測(cè)試平臺(tái)的測(cè)試環(huán)境的整體架構(gòu)圖;圖2是一種支持版本兼容的數(shù)字終端測(cè)試環(huán)境的構(gòu)建方法流程圖;圖3是基于抽象工廠模式創(chuàng)建封裝類(lèi)實(shí)例圖;圖4是本發(fā)明構(gòu)建的數(shù)字終端測(cè)試環(huán)境中通信模塊獲取封裝類(lèi)實(shí)例的執(zhí)行流程圖。具體實(shí)施例方式為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)和深入描述。本發(fā)明提供的構(gòu)建方法基于主機(jī)-數(shù)字終端即HOST-TARGET架構(gòu)的測(cè)試平臺(tái),通過(guò)該方法構(gòu)建的數(shù)字終端測(cè)試環(huán)境,支持?jǐn)?shù)字終端系統(tǒng)的自動(dòng)化黑盒測(cè)試的實(shí)施,HOST端的測(cè)試環(huán)境負(fù)責(zé)向TARGET端測(cè)試環(huán)境發(fā)送測(cè)試命令,并對(duì)捕獲反饋模塊所捕獲的信息保存和處理,以使測(cè)試平臺(tái)能夠利用數(shù)字終端反饋信息控制測(cè)試流程或進(jìn)行結(jié)果驗(yàn)證。采用基于HOST-TARGET架構(gòu)測(cè)試平臺(tái)構(gòu)建的測(cè)試環(huán)境,如圖1所示,整體架構(gòu)分為兩個(gè)部分測(cè)試主機(jī)HOST用于運(yùn)行測(cè)試平臺(tái)實(shí)施測(cè)試,包括測(cè)試代碼開(kāi)發(fā)模塊M01、測(cè)試代碼保存模塊M02、測(cè)試代碼執(zhí)行模塊M03、測(cè)試數(shù)據(jù)處理模塊M04與測(cè)試主機(jī)通信模塊M05;數(shù)字終端TARGET端是被測(cè)系統(tǒng),包括終端驅(qū)動(dòng)模塊M06、捕獲反饋模塊M07與數(shù)字終端通信模塊M08。本發(fā)明提出的支持版本兼容的數(shù)字終端測(cè)試環(huán)境包括數(shù)字終端的三個(gè)模塊通信模塊、驅(qū)動(dòng)模塊和捕獲反饋模塊,分別對(duì)應(yīng)上述數(shù)字終端TARGET端的數(shù)字終端通信模塊M08、終端驅(qū)動(dòng)模塊M06和捕獲反饋模塊M07。數(shù)字終端與主機(jī)端結(jié)合一起進(jìn)行測(cè)試過(guò)程中,各模塊之間的關(guān)系如下測(cè)試代碼開(kāi)發(fā)模塊M01,提供用戶對(duì)測(cè)試代碼和中斷、異常代碼的編寫(xiě)環(huán)境,包括代碼的輔助生成工具,開(kāi)發(fā)完測(cè)試代碼后進(jìn)入測(cè)試代碼保存模塊M02;測(cè)試代碼保存模塊M02,將測(cè)試代碼以統(tǒng)一格式存儲(chǔ),并為測(cè)試代碼執(zhí)行模塊M03提供讀取接口;測(cè)試代碼執(zhí)行模塊M03,根據(jù)測(cè)試配置解析測(cè)試代碼并翻譯成為測(cè)試指令,并將測(cè)試指令發(fā)送至測(cè)試數(shù)據(jù)處理模塊M04進(jìn)行處理;測(cè)試數(shù)據(jù)處理模塊M04,用于接收測(cè)試指令,然后打包封裝并發(fā)送到測(cè)試主機(jī)通信模塊M05,另外接收測(cè)試主機(jī)通信模塊M05返回的測(cè)試數(shù)據(jù),進(jìn)行測(cè)試結(jié)果的校驗(yàn),同時(shí)根據(jù)返回的測(cè)試數(shù)據(jù)控制測(cè)試代碼執(zhí)行模塊M03中測(cè)試代碼的執(zhí)行進(jìn)度;測(cè)試主機(jī)通信模塊M05,負(fù)責(zé)與數(shù)字終端TARGET通信,向數(shù)字終端通信模塊M08發(fā)送由測(cè)試數(shù)據(jù)處理模塊M04打包的數(shù)據(jù),以及將數(shù)字終端通信模塊M08的反饋數(shù)據(jù)轉(zhuǎn)發(fā)到測(cè)試數(shù)據(jù)處理模塊M04;數(shù)字終端通信模塊M08,與測(cè)試主機(jī)HOST的測(cè)試主機(jī)通信模塊M05相互通信,并負(fù)責(zé)將HOST發(fā)送的數(shù)據(jù)轉(zhuǎn)發(fā)到終端驅(qū)動(dòng)模塊M06,并且將數(shù)字終端本身的打包數(shù)據(jù)反饋給測(cè)試主機(jī);終端驅(qū)動(dòng)模塊M06,用于接收數(shù)字終端通信模塊M08的測(cè)試指令,并將測(cè)試指令解析為終端動(dòng)作驅(qū)動(dòng)數(shù)字終端運(yùn)行,實(shí)現(xiàn)模擬用戶輸入的功能;捕獲反饋模塊M07,負(fù)責(zé)捕獲終端驅(qū)動(dòng)后的反饋,并將反饋信息打包發(fā)送到數(shù)字終端通信模塊M08回傳。本發(fā)明提出的方法主要應(yīng)用于數(shù)字終端TARGET端,圖2給出了流程圖。PO表示將在數(shù)字終端的測(cè)試環(huán)境分為三個(gè)模塊來(lái)實(shí)現(xiàn),三個(gè)模塊分別為數(shù)字終端TARGET端的通信模塊(對(duì)應(yīng)圖1中數(shù)字終端通信模塊M08)、驅(qū)動(dòng)模塊(對(duì)應(yīng)圖1中終端驅(qū)動(dòng)模塊M06)和捕獲反饋模塊(對(duì)應(yīng)圖1中捕獲反饋模塊M07)。在實(shí)現(xiàn)數(shù)字終端的測(cè)試環(huán)境時(shí),通信模塊、驅(qū)動(dòng)模塊和捕獲反饋模塊三個(gè)模塊的功能實(shí)現(xiàn)都采用Java反射機(jī)制,實(shí)現(xiàn)多版本兼容性時(shí)采用了相同的方法,由于通信模塊除了要考慮多種版本以外還要考慮多種不同的通信方式,因而實(shí)現(xiàn)時(shí)更復(fù)雜,在此給出通信模塊在實(shí)現(xiàn)多版本兼容時(shí)的設(shè)計(jì),其他兩部分依此實(shí)現(xiàn)即可。Pl表示實(shí)現(xiàn)通信模塊的過(guò)程,首先,PlOl建立系統(tǒng)版本號(hào)、通信方式與通信應(yīng)用框架類(lèi)的映射;在此基礎(chǔ)上,P102為通信應(yīng)用框架類(lèi)做封裝類(lèi),封裝類(lèi)實(shí)現(xiàn)統(tǒng)一的接口,針對(duì)不同的版本具有不同的實(shí)現(xiàn)方式,實(shí)現(xiàn)時(shí)利用Java反射機(jī)制;P103實(shí)現(xiàn)封裝類(lèi)的自動(dòng)獲取機(jī)制,能夠根據(jù)系統(tǒng)版本號(hào)和通信方式自動(dòng)獲取對(duì)應(yīng)的通信方式的封裝類(lèi);同理P3和P4分別是驅(qū)動(dòng)模塊功能和捕獲反饋模塊功能的設(shè)計(jì)。三個(gè)功能模塊都設(shè)計(jì)完以后,P2、P5和P6分別利用上述的設(shè)計(jì)實(shí)現(xiàn)了三個(gè)模塊的功能。P2根據(jù)系統(tǒng)版本號(hào)和通信方式自動(dòng)獲取通信封裝類(lèi),調(diào)用封裝類(lèi)實(shí)例的方法實(shí)現(xiàn)通信功能。P5根據(jù)系統(tǒng)版本號(hào)自動(dòng)獲取驅(qū)動(dòng)封裝類(lèi),調(diào)用封裝類(lèi)實(shí)例的方法實(shí)現(xiàn)驅(qū)動(dòng)功能。P6根據(jù)系統(tǒng)版本號(hào)自動(dòng)獲取捕獲反饋封裝類(lèi),調(diào)用封裝類(lèi)實(shí)例的方法實(shí)現(xiàn)捕獲反饋功能。最終通過(guò)P7整合三個(gè)功能模塊,實(shí)現(xiàn)具有版本兼容性的測(cè)試環(huán)境。下面主要以通信模塊功能的實(shí)現(xiàn)為例來(lái)說(shuō)明圖2中Pl過(guò)程,具體包括下面三個(gè)步馬聚ο步驟一、建立系統(tǒng)版本號(hào)、通信方式與應(yīng)用框架類(lèi)的映射。隨著數(shù)字終端系統(tǒng)不斷升級(jí),許多功能的實(shí)現(xiàn)邏輯隨著系統(tǒng)升級(jí)而更改,不同的系統(tǒng)版本實(shí)現(xiàn)通信功能時(shí)采用不同的應(yīng)用框架類(lèi)和方法,這是造成版本不兼容的主要原因。基于本發(fā)明的方法構(gòu)建的版本兼容性的測(cè)試環(huán)境部署到具體的系統(tǒng)后,能夠獲取當(dāng)前系統(tǒng)版本,根據(jù)查詢映射表動(dòng)態(tài)加載與當(dāng)前系統(tǒng)對(duì)應(yīng)的通信應(yīng)用框架類(lèi)。因而在設(shè)計(jì)通信模塊時(shí),需要查看系統(tǒng)已有的版本,建立系統(tǒng)版本號(hào)與通信應(yīng)用框架類(lèi)的映射表?,F(xiàn)有通信方式、系統(tǒng)版本號(hào)與通信應(yīng)用框架類(lèi)名的映射對(duì)應(yīng)如表1所示。表中列出了兩種通信方式藍(lán)牙(Bluetooth)與WI-FI,在每個(gè)版本中實(shí)現(xiàn)通信功能的應(yīng)用框架類(lèi)的名稱,以版本1.0為例,實(shí)現(xiàn)藍(lán)牙(Bluetooth)通信功能的應(yīng)用框架類(lèi)是RFCOMMSocket,實(shí)現(xiàn)WI-FI通信功能的應(yīng)用框架類(lèi)是Wifi,其他版本依此類(lèi)推。其中,WI-FI是一種可以將個(gè)人電腦、手持設(shè)備(如PDA、手機(jī))等終端以無(wú)線方式互相連接的技術(shù)。表1通信方式、系統(tǒng)版本號(hào)與通信應(yīng)用框架類(lèi)的映射表<table>tableseeoriginaldocumentpage7</column></row><table>對(duì)于驅(qū)動(dòng)模塊功能的實(shí)現(xiàn),在該步驟中需要建立系統(tǒng)版本號(hào)與驅(qū)動(dòng)應(yīng)用框架類(lèi)的映射表,對(duì)于捕獲反饋模塊功能的實(shí)現(xiàn),則需要建立系統(tǒng)版本號(hào)與捕獲反饋應(yīng)用框架類(lèi)的映射表,如圖2所示。步驟二、為實(shí)現(xiàn)通信功能的應(yīng)用框架類(lèi)做封裝類(lèi),封裝類(lèi)實(shí)現(xiàn)統(tǒng)一的接口,針對(duì)不同的版本具有不同的實(shí)現(xiàn)方式,實(shí)現(xiàn)時(shí)利用Java反射機(jī)制。在步驟一中,建立了系統(tǒng)版本號(hào)與應(yīng)用框架類(lèi)的映射表,不同版本的應(yīng)用框架類(lèi)在實(shí)現(xiàn)通信功能時(shí),可能使用不同的方法和控制邏輯。為了屏蔽不同版本的差異性,為每個(gè)通信應(yīng)用框架類(lèi)做封裝類(lèi),封裝類(lèi)將應(yīng)用框架類(lèi)實(shí)例作為其私有屬性,封裝類(lèi)實(shí)現(xiàn)統(tǒng)一的接口,接口方法的實(shí)現(xiàn)依賴于對(duì)應(yīng)版本的應(yīng)用框架類(lèi)實(shí)例的方法,封裝類(lèi)的方法調(diào)用應(yīng)用框架類(lèi)實(shí)例的方法完成相應(yīng)的功能。系統(tǒng)版本升級(jí)時(shí)可能未對(duì)通信應(yīng)用框架類(lèi)進(jìn)行修改,此時(shí)的封裝類(lèi)與前一個(gè)版本的封裝類(lèi)完全相同。因而,不必為每個(gè)版本的應(yīng)用框架類(lèi)做封裝類(lèi)。在設(shè)計(jì)過(guò)程中,應(yīng)該根據(jù)實(shí)際需要來(lái)創(chuàng)建封裝類(lèi),下面給出是否需要?jiǎng)?chuàng)建封裝類(lèi)的判斷標(biāo)準(zhǔn)系統(tǒng)版本升級(jí)時(shí),若通信應(yīng)用框架類(lèi)未改變或者只修改了類(lèi)名,則無(wú)需創(chuàng)建新的封裝類(lèi),利用前一個(gè)版本的封裝類(lèi)即可。若應(yīng)用框架類(lèi)中的方法名或方法的功能改變,則需要?jiǎng)?chuàng)建新的封裝類(lèi)。封裝類(lèi)的版本號(hào)與升級(jí)后系統(tǒng)版本號(hào)相同。這樣,既滿足了屏蔽版本差異性的要求,又減少了封裝類(lèi)的個(gè)數(shù)。表2給出了系統(tǒng)版本號(hào)與封裝類(lèi)、通信應(yīng)用框架類(lèi)以及封裝類(lèi)版本號(hào)的映射關(guān)系,如表2中所示系統(tǒng)版本由1.0升級(jí)到1.1時(shí),應(yīng)用框架類(lèi)的方法名和方法功能未發(fā)生變化,因而,未創(chuàng)建新的封裝類(lèi),利用前一個(gè)版本1.0的封裝類(lèi)。系統(tǒng)版本升級(jí)到2.0時(shí),應(yīng)用框架類(lèi)的方法名和方法功能發(fā)生變化,創(chuàng)建了新的封裝類(lèi),封裝類(lèi)的版本為2.0。表2系統(tǒng)版本號(hào)與封裝類(lèi)、通信應(yīng)用框架類(lèi)以及封裝類(lèi)版本號(hào)的映射表<table>tableseeoriginaldocumentpage8</column></row><table>上述給出了何時(shí)創(chuàng)建封裝類(lèi)的判斷方法,下面給出封裝類(lèi)內(nèi)部實(shí)現(xiàn)方法。應(yīng)用框架類(lèi)實(shí)例是封裝類(lèi)的私有屬性,封裝類(lèi)的方法通過(guò)調(diào)用應(yīng)用框架類(lèi)實(shí)例的方法完成通信的功能。因而在實(shí)現(xiàn)每個(gè)封裝類(lèi)的方法之前,需要完成應(yīng)用框架類(lèi)實(shí)例的初始化。封裝類(lèi)的構(gòu)造方法完成動(dòng)態(tài)加載應(yīng)用框架類(lèi)并創(chuàng)建應(yīng)用框架類(lèi)實(shí)例的過(guò)程。實(shí)現(xiàn)時(shí),封裝類(lèi)的構(gòu)造方法可以根據(jù)表2找到相應(yīng)的應(yīng)用框架類(lèi)名,然后利用Java反射機(jī)制根據(jù)應(yīng)用框架類(lèi)名動(dòng)態(tài)加載應(yīng)用框架類(lèi)的實(shí)例。由于一個(gè)封裝類(lèi)可能與多個(gè)應(yīng)用框架類(lèi)名相對(duì)應(yīng)。在加載應(yīng)用框架類(lèi)實(shí)例時(shí),需要根據(jù)系統(tǒng)版本號(hào)查詢應(yīng)用框架類(lèi)的類(lèi)名,加載對(duì)應(yīng)的應(yīng)用框架類(lèi)實(shí)例。以表2中的封裝類(lèi)BluetoothVlJ)為例,若當(dāng)前系統(tǒng)版本為1.0,其構(gòu)造方法根據(jù)表2獲得對(duì)應(yīng)的應(yīng)用框架類(lèi)名為RFCOMMSocket,利用Java反射機(jī)制加載類(lèi)名為RFCOMMSocket的類(lèi)實(shí)例,若當(dāng)前系統(tǒng)版本為1.1,其構(gòu)造方法根據(jù)表2獲得對(duì)應(yīng)的應(yīng)用框架類(lèi)名為BluetoothSocket,利用Java反射機(jī)制加載類(lèi)名為BluetoothSocket的類(lèi)實(shí)例。在實(shí)現(xiàn)封裝類(lèi)的方法時(shí),首先,針對(duì)每個(gè)封裝類(lèi)的方法,確定實(shí)現(xiàn)該封裝類(lèi)的方法時(shí)所使用的應(yīng)用框架類(lèi)實(shí)例方法和調(diào)用順序。然后,封裝類(lèi)的方法利用Java反射機(jī)制依次調(diào)用這些應(yīng)用框架類(lèi)實(shí)例的方法完成相應(yīng)功能。在實(shí)現(xiàn)通信模塊功能時(shí),封裝類(lèi)接口可以使用四個(gè)方法,分別是connect(連接),send(發(fā)送),receive(接收),disconnect(斷開(kāi))。在不同的封裝類(lèi)中四個(gè)方法根據(jù)不同的版本具有不同的實(shí)現(xiàn)邏輯,它們利用Java反射機(jī)制動(dòng)態(tài)調(diào)用當(dāng)前版本應(yīng)用框架類(lèi)實(shí)例的方法實(shí)現(xiàn)相應(yīng)的功能。以connect方法為例,封裝類(lèi)BluetoothVlJ)是版本1.O和1.1的封裝類(lèi),如果系統(tǒng)版本號(hào)為1.0,其connect方法調(diào)用應(yīng)用框架類(lèi)RFCOMMSocket實(shí)例的方法實(shí)現(xiàn)連接功能,否則調(diào)用類(lèi)BluetoothSocket實(shí)例的方法,而封裝類(lèi)BluetOOthV2_0的connect方法調(diào)用應(yīng)用框架類(lèi)BluetoothClass實(shí)例的方法實(shí)現(xiàn)連接功能。具體實(shí)現(xiàn)時(shí)用到映射數(shù)據(jù)結(jié)構(gòu),在此主要用到兩個(gè)映射,HashMap<String,String>v2vmap是系統(tǒng)版本號(hào)到封裝類(lèi)版本號(hào)的映射,其中HaShMap<String,String)是Java容器中的映射類(lèi)型,此處是String類(lèi)型到String類(lèi)型的映射,v2vmap是定義的變量名。這個(gè)映射使開(kāi)發(fā)環(huán)境能夠根據(jù)當(dāng)前的系統(tǒng)版本號(hào)獲得封裝類(lèi)版本號(hào)。HashMapKString,String>v2classnamemap是系統(tǒng)版本號(hào)到應(yīng)用框架類(lèi)名的映射,其中v2classnamemap是映射的變量名,封裝類(lèi)根據(jù)這個(gè)映射動(dòng)態(tài)加載與當(dāng)前系統(tǒng)版本對(duì)應(yīng)的應(yīng)用框架類(lèi)實(shí)例。對(duì)于驅(qū)動(dòng)模塊功能的實(shí)現(xiàn),在該步驟中需要建立系統(tǒng)版本號(hào)與封裝類(lèi)、驅(qū)動(dòng)應(yīng)用框架類(lèi)以及封裝類(lèi)版本號(hào)的映射表,并為驅(qū)動(dòng)應(yīng)用框架類(lèi)做封裝類(lèi),對(duì)于捕獲反饋模塊功能的實(shí)現(xiàn),在該步驟中則需要建立系統(tǒng)版本號(hào)與封裝類(lèi)、捕獲反饋應(yīng)用框架類(lèi)以及封裝類(lèi)版本號(hào)的映射表,并為捕獲反饋應(yīng)用框架類(lèi)做封裝類(lèi)。步驟三、利用抽象工廠模式實(shí)現(xiàn)封裝類(lèi)的自動(dòng)獲取機(jī)制,使開(kāi)發(fā)人員能夠根據(jù)系統(tǒng)版本號(hào)和通信方式自動(dòng)獲取通信封裝類(lèi)。通信模塊有多種不同的通信方式,每種通信方式在不同版本系統(tǒng)上實(shí)現(xiàn)具有差異性,為了實(shí)現(xiàn)版本兼容,將基于本發(fā)明實(shí)現(xiàn)的測(cè)試環(huán)境部署到數(shù)字終端后,需要能夠獲取系統(tǒng)的版本,然后根據(jù)系統(tǒng)版本和通信方式獲取相應(yīng)的封裝類(lèi)。在此,給出了封裝類(lèi)的自動(dòng)獲取機(jī)制。為了闡述實(shí)現(xiàn)機(jī)理,這里只給出了兩種通信方式,分別是藍(lán)牙通信和WI-FI通信,在實(shí)際操作過(guò)程中,可以根據(jù)需要擴(kuò)充通信方式。通信模塊封裝類(lèi)的自動(dòng)獲取機(jī)制采用了抽象工廠模式,通過(guò)此種方式實(shí)現(xiàn)時(shí),對(duì)用戶隱藏了封裝類(lèi)的創(chuàng)建過(guò)程,選擇通信方式和獲取系統(tǒng)版本后,調(diào)用CommunicationClass類(lèi)實(shí)例的getConcreteClass(Stringmode,Stringmapversion)方法即可完成初始化,獲得封裝類(lèi)實(shí)例,其中參數(shù)mode表示通信方式,mapversion表示封裝類(lèi)的版本號(hào),類(lèi)型是String。采用抽象工廠模式的結(jié)構(gòu)如圖3所示。圖中用統(tǒng)一建模語(yǔ)言(UML,UnifiedModelingLanguage)圖給出了類(lèi)的關(guān)系,圖中虛線表示類(lèi)的依賴關(guān)系,實(shí)線表示類(lèi)的繼承關(guān)系,數(shù)據(jù)類(lèi)型表示Java類(lèi),接口表示Java接口。類(lèi)Creator是創(chuàng)建者角色,有兩個(gè)具體創(chuàng)建者角色,分別是類(lèi)CreatorVlJ)和類(lèi)CreatOrV2_0,它們都調(diào)用兩個(gè)工廠方法bluetoothFactoryO和wifiFactoryO創(chuàng)建具體的通信類(lèi)實(shí)例,這兩個(gè)工廠方法與右側(cè)的封裝類(lèi)——對(duì)應(yīng),CreatorVl_0中的bluetoothFactory()方法創(chuàng)建封裝類(lèi)BluetoothVl_0的類(lèi)實(shí)例,wifiFactory()方法創(chuàng)建封裝類(lèi)WifiVl_0的類(lèi)實(shí)例,CreatorV2_0中的bluetoothFactory()方法創(chuàng)建封裝類(lèi)BluetoothV2_0的類(lèi)實(shí)例,wifiFactory()方法創(chuàng)建封裝類(lèi)WifiV2_0的類(lèi)實(shí)例。類(lèi)CommunicationClass負(fù)責(zé)通信類(lèi)的創(chuàng)建,通過(guò)方法getConcreteClass(Stringmode,Stringmapversion)完成這——功能,i亥方法實(shí)現(xiàn)時(shí)4衣賴于上文提到的具體創(chuàng)建者角色CreatorVl_0和CreatorV2_0,若getConcreteClass方法的參數(shù)mapversion為1.0,則創(chuàng)建具體工廠類(lèi)CreatorVl_0的實(shí)例,否則創(chuàng)建具體工廠類(lèi)CreatorV2_0的實(shí)例,獲得具體工廠類(lèi)的實(shí)例后,getConcreteClass方法根據(jù)參數(shù)mode選擇調(diào)用具體工廠類(lèi)實(shí)例的方法,若mode為bluetooth,則調(diào)用bluetoothFactoryO方法,若mode為WI-FI,則調(diào)用wifiFactory()方法。右側(cè)是通信類(lèi)的繼承關(guān)系,藍(lán)牙通信類(lèi)Bluetooth和WI-FI通信類(lèi)Wifi實(shí)現(xiàn)了Communication接口,Communication接口是個(gè)統(tǒng)一的實(shí)現(xiàn)通信功能的接口,它包含了實(shí)現(xiàn)通信功能的方法connect(連接),send(發(fā)送),receive(接收),disconnect(斷開(kāi))。由于數(shù)字終端系統(tǒng)存在多個(gè)版本,通信類(lèi)派生出多個(gè)封裝類(lèi)。采用上述設(shè)計(jì)方法,測(cè)試環(huán)境獲得通信方式mode和封裝類(lèi)版本mapversion后,通過(guò)倉(cāng)ll建CommunicationClass類(lèi)的實(shí)例并調(diào)用其getConcreteClass(Stringmode,Stringmapversion)方法即可完成封裝類(lèi)的自動(dòng)獲取。步驟二中完成了多個(gè)版本的封裝類(lèi)的內(nèi)部實(shí)現(xiàn),步驟三借助步驟一和步驟二中的映射表,完成了封裝類(lèi)的自動(dòng)獲取。開(kāi)發(fā)人員獲取系統(tǒng)版本號(hào)和通信方式后,通過(guò)步驟三,僅調(diào)用方法getConcreteClass(Stringmode,Stringmapversion)艮口可實(shí)現(xiàn)獲取封裝類(lèi)這一過(guò)程。如圖2所示,對(duì)于驅(qū)動(dòng)模塊功能的實(shí)現(xiàn),在步驟三中能夠根據(jù)系統(tǒng)版本號(hào)自動(dòng)獲取驅(qū)動(dòng)封裝類(lèi),調(diào)用封裝類(lèi)實(shí)例的方法實(shí)現(xiàn)驅(qū)動(dòng)功能;對(duì)于捕獲反饋模塊功能的實(shí)現(xiàn),在步驟三中能夠根據(jù)系統(tǒng)版本號(hào)自動(dòng)獲取捕獲反饋封裝類(lèi),調(diào)用封裝類(lèi)實(shí)例的方法實(shí)現(xiàn)捕獲反饋功能。通過(guò)以上三步,開(kāi)發(fā)人員可以獲取封裝類(lèi)實(shí)例并執(zhí)行其方法,以實(shí)現(xiàn)通信模塊為例,通過(guò)封裝類(lèi)的構(gòu)造方法創(chuàng)建封裝類(lèi)實(shí)例時(shí),實(shí)現(xiàn)了應(yīng)用框架類(lèi)實(shí)例的創(chuàng)建。獲取封裝類(lèi)的實(shí)例主要過(guò)程是首先根據(jù)通信方式和系統(tǒng)版本號(hào)獲取封裝類(lèi),在以實(shí)現(xiàn)通信模塊為例的步驟三中給出了自動(dòng)獲取封裝類(lèi)的詳細(xì)設(shè)計(jì),通過(guò)這個(gè)設(shè)計(jì),開(kāi)發(fā)人員僅需調(diào)用一個(gè)getConcreteClass方法即可實(shí)現(xiàn)獲取封裝類(lèi)這一過(guò)程;然后調(diào)用封裝類(lèi)的構(gòu)造方法創(chuàng)建封裝類(lèi)的實(shí)例,以實(shí)現(xiàn)通信功能為例的步驟二中封裝類(lèi)的構(gòu)造方法實(shí)現(xiàn)了利用Java反射機(jī)制動(dòng)態(tài)加載與當(dāng)前版本對(duì)應(yīng)的應(yīng)用框架類(lèi),創(chuàng)建與當(dāng)前系統(tǒng)版本對(duì)應(yīng)的應(yīng)用框架類(lèi)實(shí)例,并將應(yīng)用框架類(lèi)實(shí)例賦值給自身的私有數(shù)據(jù)成員。獲取封裝類(lèi)的實(shí)例后,因?yàn)椴煌姆庋b類(lèi)實(shí)例實(shí)現(xiàn)了統(tǒng)一的接口,所以它們的方法名稱和參數(shù)相同,封裝類(lèi)實(shí)例方法依賴于應(yīng)用框架類(lèi)實(shí)例方法完成相應(yīng)功能,在不同的版本系統(tǒng)中,應(yīng)用框架類(lèi)在實(shí)現(xiàn)某一特定功能時(shí)具有不同的邏輯,因而封裝類(lèi)實(shí)例方法的內(nèi)部執(zhí)行過(guò)程為根據(jù)當(dāng)前版本應(yīng)用框架類(lèi)實(shí)例實(shí)現(xiàn)接口方法時(shí)使用的應(yīng)用框架方法和調(diào)用順序,利用Java反射機(jī)制依次調(diào)用這些應(yīng)用框架實(shí)例的方法完成相應(yīng)功能。在步驟二中,給出了封裝類(lèi)的方法的實(shí)現(xiàn)方法。圖4給出了在1.1版本的系統(tǒng)上部署測(cè)試環(huán)境,測(cè)試人員選用藍(lán)牙通信方式,以數(shù)字終端測(cè)試環(huán)境中的通信模塊為例,獲取封裝類(lèi)實(shí)例的流程,包括步驟P01-P20,具體是當(dāng)測(cè)試人員將測(cè)試環(huán)境部署到版本為1.1的系統(tǒng)上以后,運(yùn)行開(kāi)始前,執(zhí)行P01配置測(cè)試環(huán)境,選擇藍(lán)牙通信方式Bluetooth;然后執(zhí)行P02獲取當(dāng)前的系統(tǒng)版本,此處版本為1.1;此后,執(zhí)行P03測(cè)試環(huán)境開(kāi)始初始化;P04查詢系統(tǒng)版本到封裝類(lèi)版本的映射表v2vmap,由于1.1版本不是通過(guò)主版本升級(jí)而來(lái),沒(méi)有自己的封裝類(lèi),需要獲取1.0的封裝類(lèi)BlUetOOthVl_0,P05判斷查詢映射表是否成功,若成功將會(huì)獲得封裝類(lèi)版本為1.0,執(zhí)行步驟P06,若查詢不成功轉(zhuǎn)步驟P14;P06通過(guò)創(chuàng)建CommunicationClass類(lèi)的實(shí)例,并調(diào)用實(shí)例的getConcreteClass(“Bluetooth”,“1.0”)方法實(shí)現(xiàn)封裝類(lèi)實(shí)例的創(chuàng)建;P07根據(jù)getConcreteClass的參數(shù)“1.0”創(chuàng)建了具體工廠類(lèi)CreatorVl_0的類(lèi)實(shí)例creatorvl_0;P08根據(jù)參數(shù)“Bluetooth”調(diào)用creatorvl_0的bluetoothFactory()方法;P09中bluetoothFactoryO查詢系統(tǒng)版本號(hào)到實(shí)現(xiàn)藍(lán)牙功能的應(yīng)用框架類(lèi)名的映射并獲取應(yīng)用框架類(lèi)名;P10判斷查詢是否成功,若成功將會(huì)獲得應(yīng)用框架類(lèi)名為BluetoothSocket,執(zhí)行步驟P11,若不成功轉(zhuǎn)步驟P14;P11中bluetoothFactory()調(diào)用newBluetoothVl_0("BluetoothSocket")創(chuàng)建封裝類(lèi)的實(shí)例bluetoothvl_0;P12BluetoothVl_0構(gòu)造函數(shù)利用Java反射機(jī)制動(dòng)態(tài)創(chuàng)建應(yīng)用框架類(lèi)BluetoothSocket的實(shí)例,封裝類(lèi)的接口方法要利用Java反射機(jī)制調(diào)用這個(gè)類(lèi)實(shí)例實(shí)現(xiàn)相應(yīng)的功能(圖2中M2);最終,P13初始化完成,獲得封裝類(lèi)實(shí)例bluetoothvlj)。如果P05和P10中查找映射表失敗,則P14給出錯(cuò)誤提示信息。查詢映射表失敗可能是由于當(dāng)前系統(tǒng)是新版本,測(cè)試環(huán)境不支持造成的;P15檢驗(yàn)查詢映射表失敗是不是由于新版本造成的;如果當(dāng)前版本是新版本,則進(jìn)行P16為新版本系統(tǒng)中的應(yīng)用框架類(lèi)做封裝類(lèi);然后執(zhí)行P17,針對(duì)新版本系統(tǒng)通信功能的邏輯,實(shí)現(xiàn)封裝類(lèi)的統(tǒng)一接口;添加后P18更新兩個(gè)映射表;P19將修改的測(cè)試環(huán)境重新部署到新版本上運(yùn)行;如果P15經(jīng)過(guò)檢驗(yàn),當(dāng)前的系統(tǒng)不是新的版本,則查詢映射失敗可能由映射表出現(xiàn)錯(cuò)誤或者測(cè)試環(huán)境出現(xiàn)錯(cuò)誤造成的。此時(shí),開(kāi)發(fā)人員應(yīng)該調(diào)試測(cè)試環(huán)境,找出問(wèn)題所在,執(zhí)行P20修正映射表、修改程序錯(cuò)誤,然后執(zhí)行P19將測(cè)試環(huán)境重新部署到數(shù)字終端上執(zhí)行。在本發(fā)明中應(yīng)用框架,特指手機(jī)開(kāi)發(fā)領(lǐng)域中,程序間共同的結(jié)構(gòu),讓該領(lǐng)域中的程序設(shè)計(jì)人員,依共同結(jié)構(gòu)開(kāi)發(fā)應(yīng)用程序,應(yīng)用框架中使用的類(lèi)就稱為應(yīng)用框架類(lèi),比如Android中的應(yīng)用框架類(lèi)。本發(fā)明提到的封裝類(lèi)是為了屏蔽不同版本應(yīng)用框架類(lèi),為應(yīng)用框架類(lèi)做的包裝類(lèi),將應(yīng)用框架類(lèi)封裝到一個(gè)新類(lèi)中,應(yīng)用框架類(lèi)的實(shí)例作為封裝類(lèi)的私有屬性,裝類(lèi)的方法實(shí)現(xiàn)功能時(shí)要調(diào)用應(yīng)用框架類(lèi)實(shí)例的方法。權(quán)利要求一種支持版本兼容的數(shù)字終端測(cè)試環(huán)境的構(gòu)建方法,該方法基于主機(jī)-數(shù)字終端架構(gòu)的測(cè)試平臺(tái)構(gòu)建數(shù)字終端的測(cè)試環(huán)境,其特征在于,具體包括下面步驟步驟一、將數(shù)字終端的測(cè)試環(huán)境分為三個(gè)功能模塊通信模塊、驅(qū)動(dòng)模塊、捕獲反饋模塊;步驟二、利用Java反射機(jī)制,根據(jù)實(shí)際需要為實(shí)現(xiàn)三個(gè)功能模塊的應(yīng)用框架類(lèi)做封裝類(lèi),實(shí)現(xiàn)封裝類(lèi)的方法,并設(shè)計(jì)封裝類(lèi)的自動(dòng)獲取機(jī)制;首先在實(shí)現(xiàn)通信模塊方面,建立系統(tǒng)版本號(hào)、通信方式與通信應(yīng)用框架類(lèi)的映射表,在實(shí)現(xiàn)驅(qū)動(dòng)模塊方面,建立系統(tǒng)版本號(hào)與驅(qū)動(dòng)應(yīng)用框架類(lèi)的映射表,在實(shí)現(xiàn)捕獲反饋模塊方面,建立系統(tǒng)版本號(hào)與捕獲反饋應(yīng)用框架類(lèi)的映射表;然后在此基礎(chǔ)上,為上述的三種應(yīng)用框架類(lèi)做封裝類(lèi),封裝類(lèi)利用Java反射機(jī)制實(shí)現(xiàn)統(tǒng)一的接口;最后,利用抽象工廠模式實(shí)現(xiàn)封裝類(lèi)的自動(dòng)獲取機(jī)制;步驟三、在步驟二的基礎(chǔ)上各模塊根據(jù)當(dāng)前系統(tǒng)版本號(hào)自動(dòng)獲取相應(yīng)的封裝類(lèi)實(shí)例,通過(guò)調(diào)用封裝類(lèi)實(shí)例的方法實(shí)現(xiàn)各模塊的功能;步驟四、將三個(gè)模塊整合,并添加錯(cuò)誤信息提示功能,完成數(shù)字終端測(cè)試環(huán)境的構(gòu)建。2.應(yīng)用權(quán)利要求1所述的方法構(gòu)建的支持版本兼容的數(shù)字終端測(cè)試環(huán)境,其特征在于,所述的數(shù)字終端測(cè)試環(huán)境包括通信模塊、驅(qū)動(dòng)模塊和捕獲反饋模塊三個(gè)模塊所述的通信模塊通過(guò)多種方式與主機(jī)進(jìn)行連接通信,并負(fù)責(zé)將數(shù)字終端發(fā)送的數(shù)據(jù)轉(zhuǎn)發(fā)到驅(qū)動(dòng)模塊,將數(shù)字終端本身的打包數(shù)據(jù)反饋給主機(jī);所述的驅(qū)動(dòng)模塊實(shí)現(xiàn)模擬用戶輸入,接收通信模塊的測(cè)試命令,通過(guò)模擬用戶輸入向數(shù)字終端注入測(cè)試激勵(lì)以驅(qū)動(dòng)數(shù)字終端執(zhí)行;所述的捕獲反饋模塊動(dòng)態(tài)加載與當(dāng)前系統(tǒng)版本對(duì)應(yīng)的捕獲反饋功能類(lèi),實(shí)現(xiàn)對(duì)數(shù)字終端系統(tǒng)的實(shí)時(shí)捕獲,并將反饋信息打包發(fā)送到通信模塊回傳;所述的三個(gè)模塊的功能都采用了Java反射機(jī)制實(shí)現(xiàn)。3.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,步驟二中所述的根據(jù)實(shí)際需要來(lái)創(chuàng)建封裝類(lèi),判斷是否需要?jiǎng)?chuàng)建封裝類(lèi)的標(biāo)準(zhǔn)是數(shù)字終端系統(tǒng)版本升級(jí)時(shí),若對(duì)應(yīng)一個(gè)功能模塊的應(yīng)用框架類(lèi)未改變或者只修改了類(lèi)名,則無(wú)需創(chuàng)建新的封裝類(lèi),利用前一個(gè)版本的封裝類(lèi)即可;若應(yīng)用框架類(lèi)中的方法名或方法的功能改變,則創(chuàng)建新的封裝類(lèi),封裝類(lèi)的版本號(hào)與升級(jí)后系統(tǒng)版本號(hào)相同。4.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,步驟二中所述的為應(yīng)用框架類(lèi)做封裝類(lèi)的具體過(guò)程為首先,建立系統(tǒng)版本號(hào)、封裝類(lèi)、應(yīng)用框架類(lèi)以及封裝類(lèi)版本號(hào)的映射表,然后封裝類(lèi)的構(gòu)造方法通過(guò)查該映射表找到相應(yīng)的應(yīng)用框架類(lèi)名,再利用Java反射機(jī)制根據(jù)應(yīng)用框架類(lèi)名動(dòng)態(tài)加載應(yīng)用框架類(lèi)實(shí)例;然后,針對(duì)每個(gè)封裝類(lèi)的方法,確定實(shí)現(xiàn)該封裝類(lèi)的方法時(shí)所使用的應(yīng)用框架類(lèi)實(shí)例的方法和調(diào)用順序;最后,封裝類(lèi)的方法利用Java反射機(jī)制依次調(diào)用這些應(yīng)用框架類(lèi)實(shí)例的方法完成相應(yīng)功能。5.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,步驟三中,對(duì)于通信模塊的實(shí)現(xiàn),根據(jù)系統(tǒng)版本號(hào)和通信方式自動(dòng)獲取通信封裝類(lèi),調(diào)用封裝類(lèi)實(shí)例的方法實(shí)現(xiàn)通信功能;對(duì)于驅(qū)動(dòng)模塊功能的實(shí)現(xiàn),根據(jù)系統(tǒng)版本號(hào)自動(dòng)獲取驅(qū)動(dòng)封裝類(lèi),調(diào)用封裝類(lèi)實(shí)例的方法實(shí)現(xiàn)驅(qū)動(dòng)功能;對(duì)于捕獲反饋模塊功能的實(shí)現(xiàn),根據(jù)系統(tǒng)版本號(hào)自動(dòng)獲取捕獲反饋封裝類(lèi),調(diào)用封裝類(lèi)實(shí)例的方法實(shí)現(xiàn)捕獲反饋功能。6.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,步驟四中所述的添加錯(cuò)誤信息提示的功能,使得構(gòu)建的測(cè)試環(huán)境在數(shù)字終端運(yùn)行出現(xiàn)錯(cuò)誤提示信息時(shí),開(kāi)發(fā)人員能夠快速定位錯(cuò)誤并解決問(wèn)題,具體是出現(xiàn)錯(cuò)誤提示信息時(shí),判斷當(dāng)前系統(tǒng)版本是否是新的,如果不是新版本,通過(guò)修改映射表、修改程序錯(cuò)誤調(diào)整測(cè)試環(huán)境,然后將測(cè)試環(huán)境重新部署到數(shù)字終端上執(zhí)行;如果是新版本,則利用Java反射機(jī)制為新版本系統(tǒng)中的應(yīng)用框架類(lèi)做封裝類(lèi),針對(duì)新版本的功能邏輯實(shí)現(xiàn)封裝類(lèi)的統(tǒng)一接口,并更新兩個(gè)映射表,然后將測(cè)試環(huán)境重新部署到數(shù)字終端上執(zhí)行。全文摘要本發(fā)明公開(kāi)了一種支持版本兼容的數(shù)字終端測(cè)試環(huán)境及其構(gòu)建方法,基于HOST-TARGET架構(gòu)的測(cè)試平臺(tái)構(gòu)建數(shù)字終端的測(cè)試環(huán)境,在TARGET端利用Java反射機(jī)制來(lái)實(shí)現(xiàn)。所述的數(shù)字終端測(cè)試環(huán)境包括通信模塊、驅(qū)動(dòng)模塊和捕獲反饋模塊,實(shí)現(xiàn)每一個(gè)功能模塊時(shí),首先建立系統(tǒng)版本號(hào)與應(yīng)用框架類(lèi)的映射表,在此基礎(chǔ)上,為應(yīng)用框架類(lèi)做封裝類(lèi),封裝類(lèi)利用Java反射機(jī)制實(shí)現(xiàn)統(tǒng)一的接口,最后,利用抽象工廠模式創(chuàng)建封裝類(lèi)實(shí)例,調(diào)用封裝類(lèi)實(shí)例的方法實(shí)現(xiàn)相應(yīng)的功能,最終,在Java反射機(jī)制的基礎(chǔ)上,為數(shù)字終端的自動(dòng)化測(cè)試實(shí)施提供了可行方法?;诒痉椒?gòu)建的測(cè)試環(huán)境,能應(yīng)用于不同版本的數(shù)字終端,降低了測(cè)試環(huán)境對(duì)終端系統(tǒng)的依賴性。文檔編號(hào)G06F11/36GK101807168SQ20101012539公開(kāi)日2010年8月18日申請(qǐng)日期2010年3月15日優(yōu)先權(quán)日2010年3月15日發(fā)明者劉志方,周漢清,李暉,王麗娜,高小鵬,龍翔申請(qǐng)人:北京航空航天大學(xué)