CN101192153B - 用于从可执行程序代码获得用户界面信息的方法和系统 - Google Patents

用于从可执行程序代码获得用户界面信息的方法和系统 Download PDF

Info

Publication number
CN101192153B
CN101192153B CN2007101702232A CN200710170223A CN101192153B CN 101192153 B CN101192153 B CN 101192153B CN 2007101702232 A CN2007101702232 A CN 2007101702232A CN 200710170223 A CN200710170223 A CN 200710170223A CN 101192153 B CN101192153 B CN 101192153B
Authority
CN
China
Prior art keywords
user interface
catch
image
display
present
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2007101702232A
Other languages
English (en)
Other versions
CN101192153A (zh
Inventor
B·D·鲍曼
A·J·鲍曼
M·P·卡尔森
J·A·穆尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101192153A publication Critical patent/CN101192153A/zh
Application granted granted Critical
Publication of CN101192153B publication Critical patent/CN101192153B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了一种支持从可执行程序代码自动地获得或提取例如图形用户界面的对话或屏幕并且以图形格式保存所述对话或屏幕的快照的技术。在所述可执行程序代码中扫描或搜索所述程序代码中用于产生用户界面或对话的特定模块。随后处理这些识别出的GUI可访问的模块的每一个,以便产生、显示和捕获与其相关联的用户界面或对话。自动地产生并且提供这些模块需要的任何必须的用户输入或样本数据,以辅助产生、显示和捕获所述界面/对话。

Description

用于从可执行程序代码获得用户界面信息的方法和系统
技术领域
本发明一般地涉及辅助用户界面处理的工具,并且特别地涉及用于从可执行程序代码获得例如对话框或其他类型的图形用户界面(GUI)信息的用户界面信息的工具。
背景技术
将软件程序翻译成多种语言时,当前技术中的一个问题是为了验证翻译,测试人员必须安装翻译后的软件并且转到每个屏幕以验证内容被正确地翻译并且被适当地显示。这个过程耗时、费力而且费用高昂。
现有的另一个问题是当前翻译这样的软件程序的方法在显示每个可能的屏幕时并不能自动防止故障。除非给出特定的指令,个人/测试人员可能无法知道应如何导航用户界面以便访问和捕获每个可能的对话框。即使提供这些指令,也不能确定或确保所有可能的屏幕都已经被访问并且捕获。
另一个问题与翻译验证测试(TVT)方法和与此相关的劳动密集型有关,其中执行程序并且与所述程序交互的用户人工地捕获并且以TVT测试人员可使用的适当格式保存屏幕图像。
因此,期望提供一种计算机实现的方法、装置和计算机可用程序代码,可以支持自动地从可执行程序代码获取或提取对话和其他屏幕并且以图形格式保存所述对话的快照。
发明内容
提供了一种计算机实现的方法、装置和计算机可用程序代码,以支持从可执行程序代码自动地获取或提取例如图形用户界面的对话或屏幕并且以图形格式保存所述对话或屏幕的快照。在所述可执行程序代码中扫描或搜索这些程序代码中用于产生用户界面或对话的特定模块。随后处理这些识别出的GUI可访问的模块的每一个,以便产生、显示和捕获与所述模块相关联的用户界面或对话。自动地产生并提供这些模块所需的任何必须的用户输入或数据样本,以辅助所述界面/对话的产生、显示和捕获。
附图说明
权利要求书中说明了作为本发明特征的新颖特性。通过参照附图阅读下文对示例性实施例的详述,可以对本发明以及优选的使用方法及其进一步的目标和优势有最好的理解,其中:
图1是可以实现所述示例性实施例的数据处理系统的示意图;
图2是可以实现所述示例性实施例的数据处理系统的方框图,以及
图3是根据所述示例性实施例的从可执行程序代码自动地获取或提取对话并且以图形格式保存所述对话的快照的处理流程图。
具体实施方式
现在看附图,特别地参照图1,图1是可以实现所述示例性实施例的数据处理系统的示意图。示出了计算机100,该计算机100包括系统单元102、视频显示终端104、键盘106、可包括软盘驱动器和其他类型的永久和可移除存储介质的存储设备108、以及鼠标110。与个人计算机100一起,可以包括其他的输入设备,例如控制杆、触摸板、触摸屏、轨迹球,麦克风等等。
计算机100可以是任何适当的计算机,例如位于纽约阿芒克  的国际商业机器公司的产品IBM
Figure 2007101702232_0
eServerTM计算机或IntelliStation
Figure 2007101702232_1
计算机。尽管所述示意图示出了个人计算机,其他实施例可以在其他类型的数据处理系统例如网络计算机中实现。计算机100优选地也包括可以以系统软件方式实现的图形用户界面(GUI),所述系统软件驻留于在计算机100内操作的计算机可读介质中。
现在参考图2,图2示出了可以实现示例性实施例的数据处理系统的方框图。数据处理系统200是一个计算机的例子,例如图1中的计算机100,实现所述示例性实施例的过程的代码或指令存在于所述计算机上。在所示的例子中,数据处理系统200采用包括北桥和存储控制集线器(MCH)202以及南桥和输入/输出(I/O)控制集线器(ICH)204的集线器结构。处理器206、主存储器208以及图形处理器210连接到北桥和存储控制集线器202。图形处理器210可以通过如加速图形端口(AGP)连接到MCH。
在示出的例子中,局域网(LAN)适配器212连接到南桥和I/O控制集线器204,音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、通用串行总线(USB)端口和其他通信端口232以及PCI/PCIe设备234通过总线238连接到南桥和I/O控制集线器204,以及硬盘驱动器(HDD)226和CD-ROM驱动器230通过总线240连接到南桥和I/O控制集线器204。PCI/PCIe设备可以包括例如以太网适配器,插入板以及用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不采用卡总线控制器。ROM 224可以是例如闪速二进制输入/输出系统(BIOS)。硬盘驱动器226和CD-ROM驱动器230可以使用例如集成驱动电路(IDE)或串行高级技术附加装置(SATA)接口。超级I/O(SIO)设备236可以连接到南桥和I/O控制集线器204。
操作系统在处理器206上运行,协调图2的数据处理系统200中的各种组件并为其提供控制。所述操作系统可以是商业可用的操作系统,例如MicrosoftWindowsXP(Microsoft和Windows是微软公司在美国或其他国家或美国和其他国家的注册商标)。面向对象的编程系统,如JavaTM编程系统可以与所述操作系统共同运行并且提供从在数据处理系统200上执行的Java程序或应用到操作系统的调用(Java和所有基于Java的商标是Sun Microsystems公司在美国或其他国家或美国和其他国家的注册商标)。
所述操作系统、面向对象的编程系统以及应用或程序的指令位于例如硬盘驱动器226的存储设备上,并且可以载入主存储器208用于由处理器206执行。所述示例性实施例的过程可以由处理器206使用计算机实现的指令执行,所述计算机实现的指令可以位于存储器中,例如主存储器208、只读存储器224,或者位于一个或多个外围设备中。
图1-2中的硬件可以根据实现而变化。可以作为对图1-2中所示的所述硬件的补充或替代而使用其他内部硬件或外围设备,如闪存,等效非易失性存储器,或光盘驱动器等。并且,所述示例性实施例的过程可以应用于多处理器数据处理系统。
在某些示例性实施例中,数据处理系统200可以是个人数字助理(PDA),其一般地配置有闪存,以提供非易失性存储器,用于存储操作系统文件和/或用户产生的数据。总线系统可以由一个或多个总线构成,如系统总线,I/O总线和PCI总线。当然,所述总线系统可以使用任何类型的在连接到架构和体系结构的不同组件或设备之间提供数据传送的通信架构和体系结构实现。通信单元可以包括一个或多个用于发送和接收数据的设备,如调制解调器或网络适配器。存储器可以是如主存储器208或高速缓存,例如在北桥和存储控制集线器202中可以见到的高速缓存。处理单元可以包括一个或多个处理器或CPU。图1-2所示的例子和上文所述的例子并不意味着对体系结构的限制。例如,数据处理系统200也可以是台式计算机,膝上型计算机或另外地采取PDA形式的电话装置。本文的描述提供了一种计算机实现的方法、设备和用于处理可执行代码的计算机可用的程序代码。所述示例性实施例的方法可以在数据处理系统中实施,例如图1所示的数据处理系统100或图2所示的数据处理系统200。
提供了一种计算机实现方法、装置和计算机可用的程序代码,用于支持从可执行程序代码自动地获得或提取对话并且以图形格式保存所述对话的快照。图3示出了一个优选的处理流程。处理过程开始于步骤302,其中使用特定的标志或指示器设置调用可执行的程序代码,例如应用程序,所述特定的标志或指示器设置用于表示以显示所述GUI或对话的模式调用所述程序。在步骤304,系统搜索所述应用或可执行代码中实现特定界面的模块。例如,对于Java可执行代码,分析所有对象以确定哪些对象实现特定的界面。这可以使用称为内省(introspection)技术的Java方法完成。每个GUI可访问的对象随后被加入列表用于将来处理。在步骤306,确定所述GUI可访问的对象的列表是否包含任何(更多的)项目,并且如果否,处理过程在308结束。如果在步骤306确定存在所述列表项目,则在步骤310调用一种getDisplay()方法,以在所述设备的显示器上产生所述用户GUI或对话。在步骤312,确定是否需要向当前正在处理的对象输入样本数据,并且如果是,在步骤314产生所述样本数据。从中调用所述getDisplay()方法的类(超级类)在getDisplay()方法的处理过程中为屏幕快照提供了样本数据。通过用户界面的开发者提供所述样本数据。所述开发者在用户界面面板中以一种方法如getSampleDataGUI1()的形式为每个字段提供样本输入数据,所述方法被调用以便为给定的GUI可访问对象获取样本输入数据。这种用于获取样本输入数据的方法与其GUI可访问的对象通过文件名(如相同的文件名但不同的文件类型)或链接参考相关联。如果步骤312确定不需要样本数据,或者在步骤314产生所述所需样本数据后,在步骤316,GUI或用户对话在所述设备的显示器上显示(其在示例性实施例中经过测试以确保符合正确的语言翻译)。此外,通知所述系统所述显示已经完成。随后在步骤318确定是否需要定制的捕获脚本或模板用于将所述显示图像捕获到文件中。通常需要定制的脚本/模板用于具有多个窗口包括前景和背景窗口的复杂屏幕。如果根据步骤318需要使用定制的脚本/模板,在步骤320,通过确定是否所述脚本/模板在所述文件系统中存在,例如存在一个名为generateCaptureScriptGUI1()的文件,来产生所述捕获脚本。所述捕获脚本使用所述GUI屏幕的作者所提供的样本数据动态地产生。通过从所述GUI屏幕的作者所提供的所述GUI可访问的对象提取脚本模板来产生所述捕获脚本,并且随后使用与所述当前显示相关的特定参数,如位置、大小和任何与所述特定GUI可访问的对象相关联的必须的时间延迟,来更新所述模板。所述脚本可以调用在所述GUI上的按钮动作,文本输入等。如上文所述,在确定需要样本数据的时候,运行一个小脚本,以在所述GUI的代码中收集所述样本数据。这为所述捕获脚本填充必要的信息,从而利用所述数据填充所述屏幕。随后在步骤322处,调用所述屏幕捕获脚本,请求为特定区域拍照或进行屏幕捕获。
如果在方框318确定不需要定制的屏幕捕获脚本,在步骤322,使用现有的屏幕捕获应用或脚本调用屏幕捕获(例如为相对简单的GUI界面)。随后在步骤324,存储所述屏幕捕获的图像,并且随后所述处理在步骤306继续,以确定GUI可访问的对象列表中是否包含任何更多需要处理的项目。如果是,处理过程按照上文参照方框310-324所述的那样继续,并且如果否,处理过程在步骤308结束。
这样,上文所述的示例性实施例提供了一种用于支持从可执行程序代码自动地获得或提取对话并且以图形格式保存所述对话的快照的技术。
本发明可以采取完全硬件实施例、完全软件实施例或包括硬件和软件元素的实施例的方式。在一个优选的实施例中,本发明以软件来实现,其包括但不限于固件、驻留软件、微码等。
并且,本发明可以采取可以通过计算机可用或计算机可读介质可访问的计算机程序产品的形式,所述计算机程序产品提供程序代码,以由计算机或任何指令执行系统使用或与计算机或任何指令执行系统联合使用。为了在此说明的目的,计算机可用或计算机可读介质可以是任何有形的装置,其可以包含、存储、传送、传播或传输所述程序,以供指令执行系统、装置或设备使用或与指令执行系统,装置或设备联合使用。
所述介质可以是电子的、磁的、光的、电磁的、红外的或半导体的系统(或装置或设备)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移除计算机硬盘、随机访问存储器(RAM),只读存储器(ROM)、硬磁盘和光盘。目前光盘的例子包括只读光盘(CD-ROM),可读/写光盘(CD-R/W)和DVD。
适用于存储和/或执行所述程序代码的数据处理系统可以包括至少一个通过系统总线直接地或间接地连接到存储器元件的处理器。所述存储器元件可以包括在实际执行所述程序代码期间采用的本地存储器、大型存储器以及高速缓冲存储器,所述高速缓冲存储器临时地存储至少部分程序代码以降低在执行期间必须从大型存储器获取所述代码的次数。
输入/呈现或I/O设备(包括但不限于键盘、显示器、指针设备等)可以直接地连接到所述系统或通过居间I/O控制器连接到所述系统。
网络适配器也可以连接到所述系统,以允许所述数据处理系统通过居间的专用或公共网络连接到其他数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器和以太网卡仅是当前可用的网络适配器类型的例子。
本发明的描述是用于示例和描述的目的,并且并非是穷尽的或使本发明受限于所公开的形式。本发明的多种改变和变型对于本领域普通技术人员来说是显而易见的。选择和描述所述实施例是为了对本发明的原则、实际应用做出最佳的解释,并且使本领域的普通技术人员理解为考虑适应特定应用而对本发明进行了各种修改的各种实施例。

Claims (8)

1.一种用于从机器可执行代码中提取用户界面信息的方法,所述方法包括以下步骤:
确定所述机器可执行代码中哪些模块对于在设备的显示器上呈现用户界面信息有用;
使用所述模块在所述设备的所述显示器上呈现至少一个用户界面;
捕获所述显示器的图像;以及
将所述图像保存到文件,
其中使用所述模块在所述设备的所述显示器上呈现至少一个用户界面包括:
确定是否需要样本数据输入到所述模块之一,并且在需要的情况下产生所述样本数据;
将所述样本数据和所述模块之一提供给呈现程序以呈现所述至少一个用户界面。
2.根据权利要求1的方法,进一步包括以下步骤:
确定是否需要一个捕获脚本以捕获所述图像,并且在需要的情况下产生所述捕获脚本。
3.根据权利要求2的方法,其中所述捕获所述显示器的图像的步骤包括调用所述产生的捕获脚本以捕获所述显示器的所述图像。
4.根据权利要求3的方法,其中产生和调用多个捕获脚本以捕获所述显示器的图像。
5.一种用于从机器可执行代码中提取用户界面信息的系统,所述系统包括:
用于确定所述机器可执行代码中哪些模块对于在设备的显示器上呈现用户界面信息有用的装置;
用于使用所述模块在所述设备的所述显示器上呈现至少一个用户界面的装置;
用于捕获所述显示器的图像的装置;以及
用于保存所述图像的装置,
其中用于使用所述模块在所述设备的所述显示器上呈现至少一个用户界面包括:
确定是否需要样本数据输入到所述模块之一并且在需要的情况下产生所述样本数据;
用于将所述样本数据和所述模块之一提供给呈现程序以呈现所述至少一个用户界面。
6.根据权利要求5的系统,进一步包括:
用于确定是否需要一个捕获脚本以捕获所述图像并且在需要的情况下产生所述捕获脚本的装置。
7.根据权利要求6的系统,其中用于捕获所述显示器的图像的装置包括用于调用所产生的捕获脚本以捕获所述显示器的图像的装置。
8.根据权利要求7的系统,其中产生和调用多个捕获脚本以捕获所述显示器的所述图像。
CN2007101702232A 2006-12-01 2007-11-15 用于从可执行程序代码获得用户界面信息的方法和系统 Expired - Fee Related CN101192153B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/565,922 2006-12-01
US11/565,922 US8146006B2 (en) 2006-12-01 2006-12-01 Method and apparatus for obtaining user interface information from executable program code

Publications (2)

Publication Number Publication Date
CN101192153A CN101192153A (zh) 2008-06-04
CN101192153B true CN101192153B (zh) 2011-11-02

Family

ID=39477330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101702232A Expired - Fee Related CN101192153B (zh) 2006-12-01 2007-11-15 用于从可执行程序代码获得用户界面信息的方法和系统

Country Status (2)

Country Link
US (1) US8146006B2 (zh)
CN (1) CN101192153B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9274807B2 (en) 2006-04-20 2016-03-01 Qualcomm Incorporated Selective hibernation of activities in an electronic device
US9472167B2 (en) * 2009-04-17 2016-10-18 International Business Machines Corporation Video capture through hardware
CN101965053A (zh) * 2009-07-24 2011-02-02 张海宏 一种即时表面通信装置和方法
US9182981B2 (en) * 2009-11-23 2015-11-10 University Of Washington Systems and methods for implementing pixel-based reverse engineering of interface structure
US8347219B1 (en) * 2010-03-31 2013-01-01 Emc Corporation Object-level display building
CN102243586B (zh) * 2011-07-22 2015-02-04 于秀山 一种软件功能图自动获取方法
JP5349625B2 (ja) * 2012-01-13 2013-11-20 株式会社エヌ・ティ・ティ・ドコモ 画像を表示する情報端末及び画像表示方法
US20130268834A1 (en) * 2012-04-04 2013-10-10 Rolf Krane Creating interactive forms from applications' user interface
US10025445B2 (en) 2012-12-21 2018-07-17 International Business Machines Corporation Automated screen captures
US9298450B2 (en) * 2013-10-25 2016-03-29 International Business Machines Corporation Associating a visualization of user interface with source code

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5335342A (en) * 1991-05-31 1994-08-02 Tiburon Systems, Inc. Automated software testing system
US5745738A (en) * 1996-05-29 1998-04-28 Microsoft Corporation Method and engine for automating the creation of simulations for demonstrating use of software
US7013297B2 (en) * 2001-02-27 2006-03-14 Microsoft Corporation Expert system for generating user interfaces
US20040148591A1 (en) * 2003-01-23 2004-07-29 International Business Machines Corporation Method, apparatus, and program for automated application context delivery to translators
WO2005045673A2 (en) * 2003-11-04 2005-05-19 Kimberly-Clark Worldwide, Inc. Testing tool for complex component based software systems
US20060253739A1 (en) * 2005-05-03 2006-11-09 Godefroid Patrice I Method and apparatus for performing unit testing of software modules with use of directed automated random testing

Also Published As

Publication number Publication date
US8146006B2 (en) 2012-03-27
US20080134062A1 (en) 2008-06-05
CN101192153A (zh) 2008-06-04

Similar Documents

Publication Publication Date Title
CN101192153B (zh) 用于从可执行程序代码获得用户界面信息的方法和系统
CN111488174B (zh) 应用程序接口文档的生成方法、装置、计算机设备及介质
US8627296B1 (en) Unified unit and integration test with automatic mock creation
CN109815147B (zh) 测试案例生成方法、装置、服务器和介质
US9766868B2 (en) Dynamic source code generation
US9619209B1 (en) Dynamic source code generation
US20100042929A1 (en) Verification of software applications
US6904563B2 (en) Editing platforms for remote user interface translation
US6353904B1 (en) Method of automatically generating new test programs for mixed-signal integrated circuit based on reusable test-block templates according to user-provided driver file
US8160865B1 (en) Systems and methods for managing coordinate geometry for a user interface template
US20110154110A1 (en) Verifying a Register-Transfer Level Design of an Execution Unit
US20170054790A1 (en) System and Method for Object Compression and State Synchronization
JP3822044B2 (ja) 設計検証システム、設計検証方法および設計検証プログラムを格納したコンピュータ読取り可能な記録媒体
US9176714B2 (en) Re-using legacy libraries in software
US20230316792A1 (en) Automated generation of training data comprising document images and associated label data
US20130174136A1 (en) Detecting, Compiling, and Updating a New Locale Object in Real Time
US8769404B2 (en) Rule-based locale definition generation for a new or customized locale support
WO2012027886A1 (en) Platform specific application test
CN107077365B (zh) 有选择地加载预编译的头部和/或其部分
US8826253B2 (en) Delayed insertion of safepoint-related code
CN113821438A (zh) 一种应用响应性能测试方法、系统及计算设备
CN110750569A (zh) 数据提取方法、装置、设备及存储介质
CN112988593B (zh) 代码分析方法、装置、计算机设备及存储介质
US8881096B2 (en) Computer product, IP model generating apparatus, and IP model generating method
CN114327875A (zh) 一种资源迁移方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111102