專利名稱:用于從可執(zhí)行程序代碼獲得用戶界面信息的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及輔助用戶界面處理的工具,并且特別地涉及用于
從可執(zhí)行程序代碼獲得例如對話框或其他類型的圖形用戶界面(GUI) 信息的用戶界面信息的工具。
背景技術(shù):
將軟件程序翻譯成多種語言時,當(dāng)前技術(shù)中的一個問題是為了驗(yàn)證 翻譯,測試人員必須安裝翻譯后的軟件并且轉(zhuǎn)到每個屏幕以驗(yàn)證內(nèi)容被 正確地翻譯并且被適當(dāng)?shù)仫@示。這個過程耗時、費(fèi)力而且費(fèi)用高昂。
現(xiàn)有的另 一個問題是當(dāng)前翻譯這樣的軟件程序的方法在顯示每個可 能的屏幕時并不能自動防止故障。除非給出特定的指令,個人/測試人員 可能無法知道應(yīng)如何導(dǎo)航用戶界面以便訪問和捕獲每個可能的對話框。 即使提供這些指令,也不能確定或確保所有可能的屏幕都已經(jīng)被訪問并 且捕獲。
另一個問題與翻譯驗(yàn)證測試(TVT)方法和與此相關(guān)的勞動密集型
測試人員可使用的適當(dāng)格式保存屏幕圖像。
因此,期望提供一種計算機(jī)實(shí)現(xiàn)的方法、裝置和計算機(jī)可用程序代 碼,可以支持自動地從可執(zhí)行程序代碼獲取或提取對話和其他屏幕并且 以圖形格式保存所述對話的快照。
發(fā)明內(nèi)容
提供了一種計算機(jī)實(shí)現(xiàn)的方法、裝置和計算機(jī)可用程序代碼,以支 持從可執(zhí)行程序代碼自動地獲取或提取例如圖形用戶界面的對話或屏幕 并且以圖形格式保存所述對話或屏幕的快照。在所述可執(zhí)行程序代碼中
掃描或搜索這些程序代碼中用于產(chǎn)生用戶界面或?qū)υ挼奶囟K。隨后
處理這些識別出的GUI可訪問的模塊的每一個,以便產(chǎn)生、顯示和捕獲
與所述模塊相關(guān)聯(lián)的用戶界面或?qū)υ?。自動地產(chǎn)生并提供這些模塊所需 的任何必須的用戶輸入或數(shù)據(jù)樣本,以輔助所述界面/對話的產(chǎn)生、顯示
和捕獲。
權(quán)利要求書中說明了作為本發(fā)明特征的新穎特性。通過參照附圖閱 讀下文對示例性實(shí)施例的詳述,可以對本發(fā)明以及優(yōu)選的使用方法及其
進(jìn)一步的目標(biāo)和優(yōu)勢有最好的理解,其中
圖1是可以實(shí)現(xiàn)所述示例性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的示意圖2是可以實(shí)現(xiàn)所述示例性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的方框圖,以及
取對話并且以圖形格式保存所述對話的快照的處理流程圖。
具體實(shí)施例方式
現(xiàn)在看附圖,特別地參照圖1,圖1是可以實(shí)現(xiàn)所述示例性實(shí)施例 的數(shù)據(jù)處理系統(tǒng)的示意圖。示出了計算機(jī)100,該計算機(jī)100包括系統(tǒng) 單元102、視頻顯示終端104、鍵盤106、可包括軟盤驅(qū)動器和其他類型 的永久和可移除存儲介質(zhì)的存儲設(shè)備108、以及鼠標(biāo)110。與個人計算機(jī) 100 —起,可以包括其他的輸入設(shè)備,例如控制桿、觸摸板、觸摸屏、 軌跡球,麥克風(fēng)等等。
計算機(jī)100可以是任何適當(dāng)?shù)挠嬎銠C(jī),例如位于紐約阿芒克的國 際商業(yè)機(jī)器公司的產(chǎn)品IBM eServer 計算機(jī)或IntelliStation 計算機(jī)。 盡管所述示意圖示出了個人計算機(jī),其他實(shí)施例可以在其他類型的數(shù)據(jù) 處理系統(tǒng)例如網(wǎng)絡(luò)計算機(jī)中實(shí)現(xiàn)。計算機(jī)100優(yōu)選地也包括可以以系統(tǒng) 軟件方式實(shí)現(xiàn)的圖形用戶界面(GUI),所述系統(tǒng)軟件駐留于在計算機(jī) 100內(nèi)操作的計算機(jī)可讀介質(zhì)中。
現(xiàn)在參考圖2,圖2示出了可以實(shí)現(xiàn)示例性實(shí)施例的數(shù)據(jù)處理系統(tǒng)
的方框圖。數(shù)據(jù)處理系統(tǒng)200是一個計算機(jī)的例子,例如圖l中的計算 機(jī)100,實(shí)現(xiàn)所述示例性實(shí)施例的過程的代碼或指令存在于所述計算機(jī) 上。在所示的例子中,數(shù)據(jù)處理系統(tǒng)200采用包括北橋和存儲控制集線 器(MCH) 202以及南橋和輸入/輸出(I/O)控制集線器(ICH) 204的 集線器結(jié)構(gòu)。處理器206、主存儲器208以及圖形處理器210連接到北 橋和存儲控制集線器202。圖形處理器210可以通過如加速圖形端口 (AGP )連接到MCH。
在示出的例子中,局域網(wǎng)(LAN)適配器212連接到南橋和I/0控 制集線器204,音頻適配器216、鍵盤和鼠標(biāo)適配器220、調(diào)制解調(diào)器222、 只讀存儲器(ROM) 224、通用串行總線(USB)端口和其他通信端口 232以及PCI/PCIe設(shè)備234通過總線238連接到南橋和I/O控制集線器 204,以及硬盤驅(qū)動器(HDD ) 226和CD-ROM驅(qū)動器230通過總線240 連接到南橋和I/O控制集線器204。 PCI/PCIe設(shè)備可以包括例如以太網(wǎng) 適配器,插入板以及用于筆記本計算機(jī)的PC卡。PCI使用卡總線控制 器,而PCIe不采用卡總線控制器。ROM 224可以是例如閃速二進(jìn)制輸 入/輸出系統(tǒng)(BIOS )。硬盤驅(qū)動器226和CD-ROM驅(qū)動器230可以使 用例如集成驅(qū)動電路(IDE)或串行高級技術(shù)附加裝置(SATA)接口。 超級I/O ( SIO )設(shè)備236可以連接到南橋和I/O控制集線器204。
操作系統(tǒng)在處理器206上運(yùn)行,協(xié)調(diào)圖2的數(shù)據(jù)處理系統(tǒng)200中的 各種組件并為其提供控制。所述操作系統(tǒng)可以是商業(yè)可用的操作系統(tǒng), 例如Microsoft Windows XP ( Microsoft和Windows是《敬軟公司在美國 或其他國家或美國和其他國家的注冊商標(biāo))。面向?qū)ο蟮木幊滔到y(tǒng),如 Java 編程系統(tǒng)可以與所述操作系統(tǒng)共同運(yùn)行并且提供從在數(shù)據(jù)處理系 統(tǒng)200上執(zhí)行的Java程序或應(yīng)用到操作系統(tǒng)的調(diào)用(Java和所有基于 Java的商標(biāo)是Sun Microsystems公司在美國或其他國家或美國和其他國 家的注冊商標(biāo))。
所述操作系統(tǒng)、面向?qū)ο蟮木幊滔到y(tǒng)以及應(yīng)用或程序的指令位于例 如硬盤驅(qū)動器226的存儲設(shè)備上,并且可以載入主存儲器208用于由處 理器206執(zhí)行。所述示例性實(shí)施例的過程可以由處理器206使用計算機(jī)
實(shí)現(xiàn)的指令執(zhí)行,所述計算機(jī)實(shí)現(xiàn)的指令可以位于存儲器中,例如主存
儲器208、只讀存儲器224,或者位于一個或多個外圍設(shè)備中。
圖1-2中的硬件可以根據(jù)實(shí)現(xiàn)而變化。可以作為對圖1-2中所示的 所述硬件的補(bǔ)充或替代而使用其他內(nèi)部硬件或外圍設(shè)備,如閃存,等效 非易失性存儲器,或光盤驅(qū)動器等。并且,所述示例性實(shí)施例的過程可 以應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。
在某些示例性實(shí)施例中,數(shù)據(jù)處理系統(tǒng)200可以是個人數(shù)字助理 (PDA),其一般地配置有閃存,以提供非易失性存儲器,用于存儲操 作系統(tǒng)文件和/或用戶產(chǎn)生的數(shù)據(jù)??偩€系統(tǒng)可以由一個或多個總線構(gòu) 成,如系統(tǒng)總線,I/O總線和PCI總線。當(dāng)然,所述總線系統(tǒng)可以使用 任何類型的在連接到架構(gòu)和體系結(jié)構(gòu)的不同組件或設(shè)備之間提供數(shù)據(jù)傳 送的通信架構(gòu)和體系結(jié)構(gòu)實(shí)現(xiàn)。通信單元可以包括一個或多個用于發(fā)送 和接收數(shù)據(jù)的設(shè)備,如調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。存儲器可以是如主存 儲器208或高速緩存,例如在北橋和存儲控制集線器202中可以見到的 高速緩存。處理單元可以包括一個或多個處理器或CPU。圖l-2所示的 例子和上文所述的例子并不意味著對體系結(jié)構(gòu)的限制。例如,數(shù)據(jù)處理 系統(tǒng)200也可以是臺式計算機(jī),膝上型計算機(jī)或另外地采取PDA形式 的電話裝置。本文的描述提供了一種計算機(jī)實(shí)現(xiàn)的方法、設(shè)備和用于處 理可執(zhí)行代碼的計算才幾可用的程序代碼。所述示例性實(shí)施例的方法可以 在數(shù)據(jù)處理系統(tǒng)中實(shí)施,例如圖1所示的數(shù)據(jù)處理系統(tǒng)100或圖2所示 的數(shù)據(jù)處理系統(tǒng)200。
提供了一種計算機(jī)實(shí)現(xiàn)方法、裝置和計算機(jī)可用的程序代碼,用于 支持從可執(zhí)行程序代碼自動地獲得或提取對話并且以圖形格式保存所述 對話的快照。圖3示出了一個優(yōu)選的處理流程。處理過程開始于步驟302, 其中使用特定的標(biāo)志或指示器設(shè)置調(diào)用可執(zhí)行的程序代碼,例如應(yīng)用程 序,所述特定的標(biāo)志或指示器設(shè)置用于表示以顯示所述GUI或?qū)υ挼哪?式調(diào)用所述程序。在步驟304,系統(tǒng)搜索所述應(yīng)用或可執(zhí)行代碼中實(shí)現(xiàn) 特定界面的才莫塊。例如,對于Java可執(zhí)行代碼,分析所有對象以確定哪 些對象實(shí)現(xiàn)特定的界面。這可以使用稱為內(nèi)省(introspection)技術(shù)的Java
方法完成。每個GUI可訪問的對象隨后被加入列表用于將來處理。在步 驟306,確定所述GUI可訪問的對象的列表是否包含任何(更多的)項 目,并且如果否,處理過程在308結(jié)束。如果在步驟306確定存在所述 列表項目,則在步驟310調(diào)用一種getDisplay()方法,以在所述設(shè)備的顯 示器上產(chǎn)生所述用戶GUI或?qū)υ?。在步驟312,確定是否需要向當(dāng)前正 在處理的對象輸入樣本數(shù)據(jù),并且如果是,在步驟314產(chǎn)生所述樣本數(shù)
據(jù)。從中調(diào)用所述getDisplay()方法的類(超級類)在getDisplay()方法的 處理過程中為屏幕快照提供了樣本數(shù)據(jù)。通過用戶界面的開發(fā)者提供所 述樣本數(shù)據(jù)。所述開發(fā)者在用戶界面面板中以 一 種方法如 getSampleDataGUIl()的形式為每個字段提供樣本輸入數(shù)據(jù),所述方法被 調(diào)用以便為給定的GUI可訪問對象獲取樣本輸入數(shù)據(jù)。這種用于獲取樣 本輸入數(shù)據(jù)的方法與其GUI可訪問的對象通過文件名(如相同的文件名 但不同的文件類型)或鏈接參考相關(guān)聯(lián)。如果步驟312確定不需要樣本 數(shù)據(jù),或者在步驟314產(chǎn)生所述所需樣本數(shù)據(jù)后,在步驟316, GUI或 用戶對話在所述設(shè)備的顯示器上顯示(其在示例性實(shí)施例中經(jīng)過測試以 確保符合正確的語言翻譯)。此外,通知所述系統(tǒng)所述顯示已經(jīng)完成。隨 后在步驟318確定是否需要定制的捕獲腳本或模板用于將所述顯示圖像 捕獲到文件中。通常需要定制的腳本/模板用于具有多個窗口包括前景和 背景窗口的復(fù)雜屏幕。如果根據(jù)步驟318需要使用定制的腳本/模板,在 步驟320,通過確定是否所述腳本/模板在所述文件系統(tǒng)中存在,例如存 在一個名為generateCaptureScriptGUIl()的文件,來產(chǎn)生所述捕獲腳本。 所述捕獲腳本使用所述GUI屏幕的作者所提供的樣本數(shù)據(jù)動態(tài)地產(chǎn)生。 通過從所述GUI屏幕的作者所提供的所述GUI可訪問的對象提取腳本 模板來產(chǎn)生所述捕獲腳本,并且隨后使用與所述當(dāng)前顯示相關(guān)的特定參 數(shù),如位置、大小和任何與所述特定GUI可訪問的對象相關(guān)聯(lián)的必須的 時間延遲,來更新所述模板。所述腳本可以調(diào)用在所述GUI上的按鈕動 作,文本輸入等。如上文所述,在確定需要樣本數(shù)據(jù)的時候,運(yùn)行一個 小腳本,以在所述GUI的代碼中收集所述樣本數(shù)據(jù)。這為所述捕獲腳本 填充必要的信息,從而利用所述數(shù)據(jù)填充所述屏幕。隨后在步驟322處,
調(diào)用所述屏幕捕獲腳本,請求為特定區(qū)域拍照或進(jìn)行屏幕捕獲。
如果在方框318確定不需要定制的屏幕捕獲腳本,在步驟322,使 用現(xiàn)有的屏幕捕獲應(yīng)用或腳本調(diào)用屏幕捕獲(例如為相對簡單的GUI界 面)。隨后在步驟324,存儲所述屏幕捕獲的圖像,并且隨后所述處理在 步驟306繼續(xù),以確定GUI可訪問的對象列表中是否包含任何更多需要 處理的項目。如果是,處理過程按照上文參照方框310-324所述的那樣 繼續(xù),并且如果否,處理過程在步驟308結(jié)束。
這樣,上文所述的示例性實(shí)施例提供了 一種用于支持從可執(zhí)行程序 代碼自動地獲得或提取對話并且以圖形格式保存所述對話的快照的技 術(shù)。
本發(fā)明可以采取完全硬件實(shí)施例、完全軟件實(shí)施例或包括硬件和軟 件元素的實(shí)施例的方式。在一個優(yōu)選的實(shí)施例中,本發(fā)明以軟件來實(shí)現(xiàn), 其包括但不限于固件、駐留軟件、微碼等。
并且,本發(fā)明可以采取可以通過計算機(jī)可用或計算機(jī)可讀介質(zhì)可訪 問的計算機(jī)程序產(chǎn)品的形式,所述計算機(jī)程序產(chǎn)品提供程序代碼,以由 計算機(jī)或任何指令執(zhí)行系統(tǒng)使用或與計算機(jī)或任何指令執(zhí)行系統(tǒng)聯(lián)合使 用。為了在此說明的目的,計算機(jī)可用或計算機(jī)可讀介質(zhì)可以是任何有 形的裝置,其可以包含、存儲、傳送、傳播或傳輸所述程序,以供指令 執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與指令執(zhí)行系統(tǒng),裝置或設(shè)備聯(lián)合使用。
所述介質(zhì)可以是電子的、磁的、光的、電磁的、紅外的或半導(dǎo)體的 系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體 或固態(tài)存儲器、磁帶、可移除計算機(jī)硬盤、隨機(jī)訪問存儲器(RAM), 只讀存儲器(ROM)、硬磁盤和光盤。目前光盤的例子包括只讀光盤 (CD-ROM),可讀/寫光盤(CD-R/W)和DVD。
適用于存儲和/或執(zhí)行所述程序代碼的數(shù)據(jù)處理系統(tǒng)可以包括至少 一個通過系統(tǒng)總線直接地或間接地連接到存儲器元件的處理器。所述存
型存儲器以及高速緩沖存儲器,所述高速緩沖存儲器臨時地存儲至少部 分程序代碼以降低在執(zhí)行期間必須從大型存儲器獲取所述代碼的次數(shù)。輸入/呈現(xiàn)或I/0設(shè)備(包括但不限于鍵盤、顯示器、指針設(shè)備等) 可以直接地連接到所述系統(tǒng)或通過居間I/O控制器連接到所述系統(tǒng)。
網(wǎng)絡(luò)適配器也可以連接到所述系統(tǒng),以允許所述數(shù)據(jù)處理系統(tǒng)通過 居間的專用或公共網(wǎng)絡(luò)連接到其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲設(shè) 備。調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器和以太網(wǎng)卡僅是當(dāng)前可用的網(wǎng)絡(luò)適配 器類型的例子。
本發(fā)明的描述是用于示例和描述的目的,并且并非是窮盡的或使本 發(fā)明受限于所公開的形式。本發(fā)明的多種改變和變型對于本領(lǐng)域普通技 術(shù)人員來說是顯而易見的。選擇和描述所述實(shí)施例是為了對本發(fā)明的原 則、實(shí)際應(yīng)用做出最佳的解釋,并且使本領(lǐng)域的普通技術(shù)人員理解為考
權(quán)利要求
1.一種用于從機(jī)器可執(zhí)行代碼中提取用戶界面信息的方法,所述方法包括以下步驟確定所述機(jī)器可執(zhí)行代碼中哪些模塊對于在設(shè)備的顯示器上呈現(xiàn)用戶界面信息有用;使用所述模塊在所述設(shè)備的所述顯示器上呈現(xiàn)至少一個用戶界面;捕獲所述顯示器的圖像;以及將所述圖像保存到文件。
2. 根據(jù)權(quán)利要求1的方法,其中使用所述模塊呈現(xiàn)至少一個用戶 界面包括以下步驟確定是否需要樣本數(shù)據(jù)輸入到所述模塊之一,并且在需要的情況下 產(chǎn)生所述樣本數(shù)據(jù);以及將所述樣本數(shù)據(jù)和所述模塊之一提供給呈現(xiàn)程序以呈現(xiàn)所述至少 一個用戶界面。
3. 根據(jù)權(quán)利要求l的方法,進(jìn)一步包括以下步驟 確定是否需要一個捕獲腳本以捕獲所述圖像,并且在需要的情況下產(chǎn)生所述捕獲腳本。
4. 根據(jù)權(quán)利要求3的方法,其中所述捕獲所述顯示器的圖像的步
5. 根據(jù)權(quán)利要求4的方法,其中產(chǎn)生和調(diào)用多個捕獲腳本以捕獲 所述顯示器的圖像。
6. —種用于從機(jī)器可執(zhí)行代碼中提取用戶界面信息的系統(tǒng),所述 系統(tǒng)包4舌用于確定所述機(jī)器可執(zhí)行代碼中哪些模塊對于在設(shè)備的顯示器上 呈現(xiàn)用戶界面信息有用的裝置;用于使用所述模塊在所述設(shè)備的所述顯示器上呈現(xiàn)至少一個用戶 界面的裝置;用于捕獲所述顯示器的圖像的裝置;以及用于保存所述圖像的裝置。
7. 根據(jù)權(quán)利要求6的系統(tǒng),其中所述用于使用所述模塊呈現(xiàn)至少 一個用戶界面的裝置包括用于確定是否需要樣本數(shù)據(jù)輸入到所述模塊之一并且在需要的情 況下產(chǎn)生所述樣本數(shù)據(jù)的裝置;以及用于將所述樣本數(shù)據(jù)和所述模塊之一提供給呈現(xiàn)程序以呈現(xiàn)所述 至少一個用戶界面的裝置。
8. 根據(jù)權(quán)利要求6的系統(tǒng),進(jìn)一步包括用于確定是否需要一個捕獲腳本以捕獲所述圖像并且在需要的情 況下產(chǎn)生所述捕獲腳本的裝置。
9. 根據(jù)權(quán)利要求8的系統(tǒng),其中用于捕獲所述顯示器的圖像的裝 置包括用于調(diào)用所產(chǎn)生的捕獲腳本以捕獲所述顯示器的圖像的裝置。
10. 根據(jù)權(quán)利要求9的系統(tǒng),其中產(chǎn)生和調(diào)用多個捕獲腳本以捕獲 所述顯示器的所述圖像。
全文摘要
本發(fā)明公開了一種支持從可執(zhí)行程序代碼自動地獲得或提取例如圖形用戶界面的對話或屏幕并且以圖形格式保存所述對話或屏幕的快照的技術(shù)。在所述可執(zhí)行程序代碼中掃描或搜索所述程序代碼中用于產(chǎn)生用戶界面或?qū)υ挼奶囟K。隨后處理這些識別出的GUI可訪問的模塊的每一個,以便產(chǎn)生、顯示和捕獲與其相關(guān)聯(lián)的用戶界面或?qū)υ?。自動地產(chǎn)生并且提供這些模塊需要的任何必須的用戶輸入或樣本數(shù)據(jù),以輔助產(chǎn)生、顯示和捕獲所述界面/對話。
文檔編號G06F9/44GK101192153SQ20071017022
公開日2008年6月4日 申請日期2007年11月15日 優(yōu)先權(quán)日2006年12月1日
發(fā)明者A·J·鮑曼, B·D·鮑曼, J·A·穆爾, M·P·卡爾森 申請人:國際商業(yè)機(jī)器公司