專利名稱:一種降低gui測試成本的邏輯組織方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件測試技術(shù),尤其涉及一種降低軟件測試中的GUI測試成本的邏輯組織方法。
背景技術(shù):
GUI (Graphic User Interface,圖形用戶接口)的測試成本高向來是個很大的問題,造 成這個問題的原因主要有以下幾個方面-
1、 GUI非常易變,GUI作為交互的終端顯示,經(jīng)常會由于客戶需求的變更和一些交互友 好方面的因素而造成GUI布局和元素的變更,這些變更導(dǎo)致GUI測試也頻繁地變更,導(dǎo)致測 試成本增高。
2、 交互邏輯本身和GUI顯示代碼耦合在一起,而界面顯示的代碼無法進(jìn)行有效的邏輯測 試,只能通過人或者一些ROBOT工具進(jìn)行測試,這種測試方法的準(zhǔn)確性以及可回歸性較差。 并且當(dāng)GUI顯示布局發(fā)生變化(但是交互邏輯本身沒有變化)時,通過ROBOT腳本編寫的測 試代碼需要重新編寫,代價高。
3、 GUI的測試往往和它所運(yùn)行的平臺和操作系統(tǒng)耦合在一起,導(dǎo)致在測試GUI的交互邏 輯時,往往需要和所依賴的平臺和操作系統(tǒng)一起來進(jìn)行,導(dǎo)致測試代價高。
4、 交互邏輯分散,難以維護(hù)和重用。 正是由于上面這些原因,使得GUI測試出現(xiàn)了眾多問題
1、回歸測試問題回歸測試在軟件開發(fā)中具有重要的作用,它可以盡早地發(fā)現(xiàn)軟件開發(fā) 中的bug,大大降低bug修正的代價。特別是,如果有了一套可以頻繁自動運(yùn)行的回歸測試 套件,那么我們的軟件產(chǎn)品就有了一個安全網(wǎng)絡(luò),由于功能增加和修改而引入新bug的可能
性被大大降低。遺憾的是,我們目前的交互開發(fā)模式中沒有考慮GUI顯示部分和交互邏輯本 身的隔離,導(dǎo)致我們無法開發(fā)出一套可以自動、頻繁運(yùn)行的回歸測試套件。目前的回歸測試 都是靠人工進(jìn)行,可重復(fù)性和有效覆蓋性很差,經(jīng)常存在遺漏。并且人工進(jìn)行回歸測試的代 價高昂(基于GUI顯示部件位置的ROBOT腳本方式同樣如此),所以回歸測試無法頻繁進(jìn)行。 這也是我們目前的回歸測試效率低下的重要原因。
2、 代碼的復(fù)用問題GUI的顯示和交互邏輯耦合在一起的交互開發(fā)模式使得交互邏輯分 散,混亂,所編寫出來的程序雖然也實現(xiàn)了想要的功能,但是由于混亂的組織方式導(dǎo)致極難 被有效重用。
3、 代碼的可維護(hù)性問題可維護(hù)性是提高軟件生存周期,降低軟件成本的重要特性。一 段易于維護(hù)的代碼首先必須是一段易于理解的代碼,而職責(zé)明確、組織清晰的代碼正是達(dá)成 易于理解所必須的。GUI顯示和交互邏輯混合在一起的代碼使得想真正理解它還是非常費(fèi)勁
的,也難以維護(hù)。而開發(fā)這些系統(tǒng)的公司和團(tuán)體也不得不耗費(fèi)大量的不必要的資金和精力。
發(fā)明內(nèi)容
因此本發(fā)明所要解決的技術(shù)問題是提供一種降低GUI測試成本的邏輯組織方法,該方法 能夠有效地分離GUI的顯示代碼和交互邏輯,并且方便地在GUI中組裝這些交互職責(zé),從而 提高代碼的可重用性和可維護(hù)性。
本發(fā)明具體是這樣實現(xiàn)的
1、 一種降低GUI測試成本的邏輯組織方法,包括如下步驟
1-1、定義交互職責(zé)通用接口定義一個抽象的、 一致的接口用來模型化這個交互職責(zé); 1-2、定義通用GUI接口這個接口用來作為所有GUI交互邏輯的一個頂層的、 一致的抽
象;
1-3、識別具體的交互職責(zé)通過對具體GUI所需要實現(xiàn)的功能進(jìn)行劃分,將他們劃分成 更加內(nèi)聚的原子交互職責(zé);
1-4、定義具體GUI接口該接口用來定義某個具體GUI的交互邏輯,具體GL)I接口要繼
承在步驟1-2中定義的通用GUI接口;
1-5、實現(xiàn)具體交互職責(zé)根據(jù)該交互職責(zé)中需要完成的交互邏輯來實現(xiàn),具體交互職責(zé) 在實現(xiàn)時要繼承在步驟1-1中定義的交互職責(zé)通用接口;
1-6、實現(xiàn)具體GUI;
1-7、定義GUI和交互職責(zé)的裝配將GUI的名稱、GUI的實現(xiàn)組件、交互職責(zé)的名稱、 交互職責(zé)的實現(xiàn)組件以及它們之間的組合關(guān)系定義在交互職責(zé)組裝描述文件中;
l-8、實現(xiàn)分發(fā)器分發(fā)器主要用來保存GUI和其包含的交互職責(zé)之間的對應(yīng)關(guān)系,并且 負(fù)責(zé)接收GUI發(fā)來的關(guān)于分發(fā)的請求以執(zhí)行相應(yīng)功能;
1-9、交互職責(zé)加載、裝配將交互職責(zé)和具體GUI之間的關(guān)系保存到分發(fā)器中。
2、 如l所述的邏輯組織方法,步驟1-1中接口定義包括兩個方法 一個用來從GUI獲取
操作參數(shù), 一個用來將操作結(jié)果通知給GUI。
3、 如2所述的邏輯組織方法,步驟l-4針對步驟l-3識別出來的每個交互職責(zé),重復(fù)下
面兩個步驟來定義出具體GUI接口中需要提供的方法
3-1、分析出該交互職責(zé)從GUI獲取操作參數(shù)時,GUI接口需要提供的方法; 3-2、分析出該交互職責(zé)將操作結(jié)果通知給GUI時,GUI接口需要提供的方法。
4、 如2所述的邏輯組織方法,步驟卜8中的分發(fā)器通過具體的交互職責(zé)的獲取操作參數(shù) 方法獲取操作所需要的參數(shù),并且執(zhí)行操作,然后將結(jié)果通過交互職責(zé)的結(jié)果通知方法將操 作結(jié)果返回給GUI。
5、 如1所述的邏輯組織方法,步驟1-2中通用GUI接口可以是一個空接口,也可以是含 有所有GUI交互邏輯中的公共部分。
6、 如1所述的邏輯組織方法,步驟1-6包括如下步驟 6-1、采用具體的GUI控件來實現(xiàn)可視化圖形界面;
6-2、該具體GUI實現(xiàn)必須要繼承具體的GUI接口,該GUI接口就是在步驟l-4中定義出 來的具體GUI接口;
6-3、實現(xiàn)GUI接口中的方法,就是完成交互職責(zé)中定義出來的GUI交互邏輯,將對具體
控件的控制和這些方法的實現(xiàn)聯(lián)系起來;
6- 4、存有對分發(fā)器的引用完成對具體交互職責(zé)的分發(fā),對分發(fā)器引用的存取可以通過實 現(xiàn)通用GUI接口中的設(shè)置分發(fā)器方法來實現(xiàn)。
7、 如1所述的邏輯組織方法,步驟1-9包括如下步驟
7- 1、讀取并解析交互職責(zé)組裝描述文件;
7-2、采用動態(tài)加載技術(shù)來完成具體交互職責(zé)實現(xiàn)的加載; 7-3、建立GUI、交互職責(zé)名以及交互職責(zé)實現(xiàn)的對應(yīng)關(guān)系; 7-4、根據(jù)配置將這種關(guān)系保存到分發(fā)器中。
8、 如1至7中任意一項所述的邏輯組織方法,所述交互職責(zé)組裝描述文件采用XML格
式,描述格式如下-
〈ViewCo誦and〉
<View name="sales" imp=〃salesViewImpl〃>
<C〇mmand name=,,addtochart" imp = 、、addtochartlmpl〃 /> <Commancl name="range" imp = 、、rangeimpl" />
</View>
</ViewC〇mmand>。
由于采用了上述處理過程,本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點
本發(fā)明通過將需要測試的交互邏輯與GUI的顯示分離開來,并且提供了一個模型用來刻 畫這種交互邏輯,以及提供了一種獨(dú)有的方法用來組織這些交互邏輯,使得這些交互邏輯做 到高內(nèi)聚,從而大大降低了 GUI的測試成本。更具體地說,本發(fā)明可以用來構(gòu)建我們絕大多 數(shù)的交互系統(tǒng),例如網(wǎng)管系統(tǒng),并且使得這些系統(tǒng)在GUI上的測試成本大大降低。
本發(fā)明所提供的邏輯組織方法,具有高效、便捷、 一致的特點,并且易于擴(kuò)展;使用交 互職責(zé)的概念來表示GUI上原子的、內(nèi)聚的交互功能點,采用獨(dú)有的配置文件的方式方便表 示GUI和交互職責(zé)之間的組裝關(guān)系,使得交互職責(zé)可在多個GUI之間復(fù)用,采用配置文件而 不是硬編碼的方式也使得組裝變得更加靈活。使用GUI (視圖)接口的方式使得GUI的顯示 和所需要表示的交互邏輯分離開來,這樣可以采用Mock (模擬)的方式通過模擬出符合GUI 視圖接口的對象來測試交互邏輯,不需要通過對具體GUI的控件點擊來測試交互邏輯。不需
耗費(fèi)巨大的人力來手工測試GUI,也不需要通過ROBOT編寫腳本測試代碼來測試GUI,使得測 試成本大大降低。本發(fā)明提供的交互職責(zé)組裝文件方式還可以根據(jù)實際需要去進(jìn)行擴(kuò)展,應(yīng) 用范圍更廣。
圖l是本發(fā)明總步驟的流程圖2是本發(fā)明中交互職責(zé)分析的流程圖3是本發(fā)明中具體GUI實現(xiàn)的流程圖4是本發(fā)明中交互職責(zé)組裝和加載的流程圖。
具體實施例方式
以下結(jié)合附圖對本發(fā)明的具體實施作進(jìn)一步的說明
為了克服目前GUI中交互邏輯測試成本高的缺點,在本發(fā)明中采用了對交互邏輯進(jìn)行分
析并且劃分成更具內(nèi)聚性的交互職責(zé)和為交互職責(zé)建模的思想,以及獨(dú)有的交互職責(zé)組裝文
件的組織和加載方式,解決了現(xiàn)有技術(shù)中的交互邏輯和GUI混雜,導(dǎo)致測試?yán)щy、交互邏輯 不內(nèi)聚、難以重用、難以維護(hù)、難以擴(kuò)展等諸多問題。
如圖1所示,本發(fā)明包括如下步驟-
步驟l,定義交互職責(zé)通用接口;
步驟2,定義通用GUI接口;
步驟3,識別具體的交互職責(zé);
步驟4,定義具體GUI接口;
步驟5,實現(xiàn)具體交互職責(zé);
其中針對每個具體的GUI重復(fù)執(zhí)行步驟3、 4、 5。
步驟6,實現(xiàn)具體GUI;
步驟7,定義GUI和交互職責(zé)的裝配; 步驟8,實現(xiàn)分發(fā)器;
步驟9,交互職責(zé)加載、裝配。
以下分別對本發(fā)明涉及的關(guān)鍵步驟詳細(xì)進(jìn)行說明
1、 定義交互職責(zé)通用接口
該步驟用來定義交互職責(zé)通用接口,每個交互職責(zé)可看成是構(gòu)成GUI最終交互邏輯(功 能)的原子功能,映射到GUI上,可以簡單地說是某個控件所要完成的操作。比如, 一個GUI
上的save (保存)按鈕所對應(yīng)的操作。每個交互職責(zé)都可以分成兩個部分, 一個是從GUI獲 取完成操作所需要的參數(shù), 一個是將操作的結(jié)果通知給GUI以供顯示。所以可以定義一個抽 象的、 一致的接口用來模型化這個交互職責(zé)。該接口定義中可以包括兩個方法, 一個用來從 GUI獲取操作參數(shù), 一個用來將操作結(jié)果通知給GUI。
2、 定義通用GUI接口
這個接口用來作為所有GUI交互邏輯的一個頂層的、 一致的抽象。該通用GUI接口可以 是一個空接口,也可以含有所有GUI交互邏輯中的公共部分,例如,可以含有方法用來設(shè)置 GUI使用的分發(fā)器,使得對分發(fā)器的引用可以使用(IOC) Inversion of Control的方式引入。
3、 交互職責(zé)分析流程
圖2是交互職責(zé)分析的流程圖,包含了本發(fā)明的步驟3、 4、 5、 7,交互職責(zé)分析包括如 下幾個小步驟
第一步,分解具體GUI功能到原子的交互職責(zé),根據(jù)具體的GUI功能解析出更加內(nèi)聚的、 可完成單獨(dú)功能的交互職責(zé)。
第二步,創(chuàng)建出具體GUI接口,該接口用來定義某個具體GUI的交互邏輯。具體的GUI 接口必須要繼承在步驟2中定義的通用GUI接口,這是本發(fā)明所要求的一種契約。
針對上一步識別出來的每個交互職責(zé),重復(fù)第三步和第四步以及第五步來定義出具體GUI
接口中需要提供的方法
第三步,分析出該交互職責(zé)從GUI獲取操作參數(shù)時,GUI接口需要提供的方法。 第四步,分析出該交互職責(zé)將結(jié)果通知給GUI時,GUI接口需要提供的方法。
第五步,實現(xiàn)具體交互職責(zé),根據(jù)該交互職責(zé)中需要完成的交互邏輯來實現(xiàn)。這些交互 職責(zé)在實現(xiàn)時必須要繼承在步驟1中定義的交互職責(zé)通用接口,這是本發(fā)明所要求的一種契約。
第六步,定義交互職責(zé)組裝描述文件,將上面分析出的交互職責(zé)的名稱、交互職責(zé)的實 現(xiàn)組件以及GUI的名稱、GUI的實現(xiàn)組件和它們之間的組合關(guān)系定義在交互職責(zé)組裝描述文 件中。本發(fā)明中涉及的交互職責(zé)組裝描述文件采用XML格式,其中涉及具體GUI的名稱, 具體GUI的實現(xiàn)組件,交互職責(zé)的名稱,交互職責(zé)的實現(xiàn)組件。使用交互職責(zé)組裝描述文件, 系統(tǒng)可以在運(yùn)行時根據(jù)配置文件動態(tài)地將原子的交互職責(zé)進(jìn)行組裝來完成整個GUI所要完成 的功能。
4、 具體GUI實現(xiàn)
圖3是具體GUI實現(xiàn)的流程圖,包含了本發(fā)明的步驟6,具體GUI實現(xiàn)包括如下步驟-第一步,采用具體的GUI控件來實現(xiàn)可視化圖形界面。
第二步,該具體GUI實現(xiàn)必須要繼承具體的GUI接口,該GUI接口就是在步驟4中定義 出來的具體GUI接口。
第三步,實現(xiàn)GUI接口中的方法,就是完成交互職責(zé)中定義出來的GUI交互邏輯,將對 具體控件的控制和這些方法的實現(xiàn)聯(lián)系起來。
第四步,存有對分發(fā)器的引用完成對具體交互職責(zé)的分發(fā),對分發(fā)器引用的存取可以通 過實現(xiàn)通用GUI接口中的設(shè)置分發(fā)器方法來實現(xiàn)。
5、 實現(xiàn)分發(fā)器
分發(fā)器主要用來保存GUI和其包含的交互職責(zé)之間的對應(yīng)關(guān)系,并且負(fù)責(zé)接收GUI發(fā)來 的關(guān)于分發(fā)的請求,可以根據(jù)交互職責(zé)名將GUI的請求分發(fā)到相應(yīng)的交互職責(zé)具體實現(xiàn)中去。 分發(fā)器通過具體的交互職責(zé)的獲取操作參數(shù)方法獲取操作所需要的參數(shù),并且執(zhí)行操作,然 后將結(jié)果通過交互職責(zé)的結(jié)果通知方法將操作結(jié)果返回給GUI。
6、 交互職責(zé)組裝和加載
圖4是交互職責(zé)組裝和加載的流程圖,包含了本發(fā)明的步驟9,交互職責(zé)組裝和加載包
括如下步驟
第一步,可以在系統(tǒng)啟動時,讀取并解析交互職責(zé)組裝描述文件。 第二步,采用動態(tài)加載技術(shù)來完成具體交互職責(zé)實現(xiàn)的加載。 第三步,建立GUI、交互職責(zé)名以及交互職責(zé)實現(xiàn)的對應(yīng)關(guān)系。 第四步,根據(jù)配置將這種關(guān)系保存到分發(fā)器中。
下面通過用JAVA語言實現(xiàn)的一個實施實例對本發(fā)明作進(jìn)一步說明
1、 首先定義一個交互職責(zé)通用接口 其中包括從視圖獲取參數(shù)以及將結(jié)果返回給視圖。
2、 然后再定義一個通用GUI接口
其中包括所有具體的GUI接口都要使用的方法,就是設(shè)置分發(fā)器的方法。 這個方法的參數(shù)就是分發(fā)器對象的引用,在通用GUI接口中定義一個方法用來在GUI中
保存一個對分發(fā)器的引用。
可以假設(shè)有這樣一個GUI,它要完成的功能有兩個, 一個是比較給定兩個文件是否相同,
另一個就是用給定的一段內(nèi)容替換掉指定文件中的某一段內(nèi)容。對這個簡單的GUI來說,可
以將它的功能分解成兩個原子的交互職責(zé),分別代表兩個功能點, 一個是替換, 一個是比較。
以比較兩個文件是否相同為例。
3、 進(jìn)一步,需要實現(xiàn)一個具體的交互職責(zé),該職責(zé)就是表示兩個文件是否相同這個功能 點的交互,該交互職責(zé)必須繼承交互職責(zé)通用接口。
4、 然后,為該GUI創(chuàng)建一個具體的GUI接口,該接口必須繼承通用GUI接口。根據(jù)對交 互職責(zé)中兩個方法的分析定義出具體的GUI接口中應(yīng)該包含的方法。
因為需要比較兩個文件,所以需要具體的GUI接口提供兩個方法分別用來獲取被比較的 文件名和與之比較的文件名,當(dāng)兩個文件名相同時,需要提示給GUI,所以,具體的GUI接
口需要提供用來處理兩個文件名相同情況的方法,另外,若兩個文件名不同,則需要比較文 件,那么比較的結(jié)果還需要具體GUI接口提供一個方法用來處理這個比較結(jié)果,所以,針對 這么一個交互職責(zé)的分析,具體GUI接口中將會定義出四個接口方法。 5、 再進(jìn)一步,實現(xiàn)具體的GUI,該具體GUI實現(xiàn)要繼承定義出來的具體的GUI接口。將
接口中的方法實現(xiàn)和具體的可視化控件聯(lián)系起來,簡化代碼如下,主要列出了接口方法的實 現(xiàn)和相應(yīng)控件之間的關(guān)系,以及利用分發(fā)器對具體交互職責(zé)的分發(fā)。
用一個具體的GUI類(例如界面)來實現(xiàn)定義出來的具體的GUI接口,在得到比較結(jié)果 時,例如可以通過彈出提示框來提示比較結(jié)果等諸多實現(xiàn)方式。
6、 接著,定義交互職責(zé)組裝描述文件,該交互職責(zé)組裝描述文件采用XML格式,描述
格式如下
<ViewCommand>
<View name=" SwingFileEditView" imp=〃 SwingFileEditView〃〉 <C〇mmand name=" fileCompare "
imp = 、、CompareTwoFilesMsgProc〃 />
</View> </ViewCommand>
系統(tǒng)啟動時,會讀取并分析交互職責(zé)組裝描述文件。首先加載GUI的主實現(xiàn)(實際的界 面實現(xiàn)類),然后分析并加載該視圖需要組裝的各個交互職責(zé)的具體實現(xiàn),并且根據(jù)配置文件 中的GUI名稱、交互職責(zé)的名稱以及交互職責(zé)的具體實現(xiàn)建立起它們之間的對應(yīng)關(guān)系,并且 將這種對應(yīng)關(guān)系保存在分發(fā)器中,再利用GUI接口中的設(shè)置分發(fā)器的方法將分發(fā)器設(shè)置到GUI 中,以供GUI使用。
權(quán)利要求
1、一種降低GUI測試成本的邏輯組織方法,包括如下步驟1-1、定義交互職責(zé)通用接口定義一個抽象的、一致的接口用來模型化這個交互職責(zé);1-2、定義通用GUI接口這個接口用來作為所有GUI交互邏輯的一個頂層的、一致的抽象;1-3、識別具體的交互職責(zé)通過對具體GUI所需要實現(xiàn)的功能進(jìn)行劃分,將他們劃分成更加內(nèi)聚的原子交互職責(zé);1-4、定義具體GUI接口該接口用來定義某個具體GUI的交互邏輯,具體GUI接口要繼承在步驟1-2中定義的通用GUI接口;1-5、實現(xiàn)具體交互職責(zé)根據(jù)該交互職責(zé)中需要完成的交互邏輯來實現(xiàn),具體交互職責(zé)在實現(xiàn)時要繼承在步驟1-1中定義的交互職責(zé)通用接口;1-6、實現(xiàn)具體GUI;1-7、定義GUI和交互職責(zé)的裝配將GUI的名稱、GUI的實現(xiàn)組件、交互職責(zé)的名稱、交互職責(zé)的實現(xiàn)組件以及它們之間的組合關(guān)系定義在交互職責(zé)組裝描述文件中;1-8、實現(xiàn)分發(fā)器分發(fā)器主要用來保存GUI和其包含的交互職責(zé)之間的對應(yīng)關(guān)系,并且負(fù)責(zé)接收GUI發(fā)來的關(guān)于分發(fā)的請求以執(zhí)行相應(yīng)功能;1-9、交互職責(zé)加載、裝配將交互職責(zé)和具體GUI之間的關(guān)系保存到分發(fā)器中。
2、 如權(quán)利要求1所述的邏輯組織方法,其特征在于,步驟1-1中接口定義包括兩個方法一個用來從GUI獲取操作參數(shù), 一個用來將操作結(jié)果通知給GUI。
3、 如權(quán)利要求2所述的邏輯組織方法,其特征在于,步驟1-4針對步驟1-3識別出來的每個交互職責(zé),重復(fù)下面兩個步驟來定義出具體GUI接口中需要提供的方法3-1、分析出該交互職責(zé)從GUI獲取操作參數(shù)時,GUI接口需要提供的方法; 3-2、分析出該交互職責(zé)將操作結(jié)果通知給GUI時,GUI接口需要提供的方法。
4、 如權(quán)利要求2所述的邏輯組織方法,其特征在于,步驟1-8中的分發(fā)器通過具體的交 互職責(zé)的獲取操作參數(shù)方法獲取操作所需要的參數(shù),并且執(zhí)行操作,然后將結(jié)果通過交互職 責(zé)的結(jié)果通知方法將操作結(jié)果返回給GUI。
5、 如權(quán)利要求1所述的邏輯組織方法,其特征在于,步驟1-2中通用GUI接口可以是一 個空接口,也可以是含有所有GUI交互邏輯中的公共部分。
6、 如權(quán)利要求1所述的邏輯組織方法,其特征在于,步驟1-6包括如下步驟6-1、采用具體的GUI控件來實現(xiàn)可視化圖形界面;6-2、該具體GUI實現(xiàn)必須要繼承具體的GUI接口,該GUI接口就是在步驟l-4中定義出來的具體GUI接口;6-3、實現(xiàn)GUI接口中的方法,就是完成交互職責(zé)中定義出來的GUI交互邏輯,將對具體 控件的控制和這些方法的實現(xiàn)聯(lián)系起來;6- 4、存有對分發(fā)器的引用完成對具體交互職責(zé)的分發(fā),對分發(fā)器引用的存取可以通過實 現(xiàn)通用GUI接口中的設(shè)置分發(fā)器方法來實現(xiàn)。
7、 如權(quán)利要求1所述的邏輯組織方法,其特征在于,步驟l-9包括如下步驟7- 1、讀取并解析交互職責(zé)組裝描述文件;7-2、采用動態(tài)加載技術(shù)來完成具體交互職責(zé)實現(xiàn)的加載;7-3、建立GUI、交互職責(zé)名以及交互職責(zé)實現(xiàn)的對應(yīng)關(guān)系; 7-4、根據(jù)配置將這種關(guān)系保存到分發(fā)器中。
8、 如權(quán)利要求1至7中任意一項所述的邏輯組織方法,其特征在于,所述交互職責(zé)組裝 描述文件采用XML格式,描述格式如下<ViewC〇mmand><View name="sales" imp=〃salesViewImpl〃><Command name="addt〇chart,' imp = 、、addtochartlmpl〃 /〉 <C〇mmand name="range" imp = 、、rangeimpl〃 /〉</View></ViewCommand>。
全文摘要
本發(fā)明公開了一種降低GUI測試成本的邏輯組織方法,包括如下步驟定義交互職責(zé)通用接口;定義通用GUI接口;識別具體的交互職責(zé);定義具體GUI接口;實現(xiàn)具體交互職責(zé);實現(xiàn)具體GUI;定義GUI和交互職責(zé)的裝配;實現(xiàn)分發(fā)器;交互職責(zé)加載、裝配。本發(fā)明使得交互邏輯做到高內(nèi)聚,大大降低了GUI的測試成本,本發(fā)明具有高效、便捷、一致的特點,并且易于擴(kuò)展。
文檔編號G06F11/36GK101192191SQ20061014557
公開日2008年6月4日 申請日期2006年11月23日 優(yōu)先權(quán)日2006年11月23日
發(fā)明者鳴 孫 申請人:中興通訊股份有限公司