CN102822796A - 数据到软件应用中的注入 - Google Patents

数据到软件应用中的注入 Download PDF

Info

Publication number
CN102822796A
CN102822796A CN2010800660995A CN201080066099A CN102822796A CN 102822796 A CN102822796 A CN 102822796A CN 2010800660995 A CN2010800660995 A CN 2010800660995A CN 201080066099 A CN201080066099 A CN 201080066099A CN 102822796 A CN102822796 A CN 102822796A
Authority
CN
China
Prior art keywords
data
label
control
data element
injected
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.)
Pending
Application number
CN2010800660995A
Other languages
English (en)
Inventor
I.梅尔曼
D.塔尔
D.西顿
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN102822796A publication Critical patent/CN102822796A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一个实施例是一种用于向软件应用中注入数据的方法。该方法显示软件应用的多个不同控件并接收存储在数据源中的数据的单个选择。响应于此选择,该方法从数据源向软件应用的所述多个不同控件中注入数据。

Description

数据到软件应用中的注入
技术领域
本发明涉及数据到软件应用中的注入。
背景技术
软件测试器常常在应用的开发和测试期间向软件应用中输入样本数据。在对软件应用或网页页面执行手动功能测试的同时,测试器常常需要反复地用各种数据完成长表格。由于数据是手动输入的,所以填充这些表格是冗长、费时且易于出错的。这可能导致不可靠的测试结果和较少的数据方案被测试。这些问题不可避免地影响了测试的效力并最终影响了结果得到的软件应用的质量。
附图说明
图1示出了依照示例性实施例的用于向应用中注入数据的流程图。
图2A示出了依照示例性实施例的具有用于用户定义提供数据以测试软件应用的数据源的位置的对话框的计算机窗口。
图2B示出了依照示例性实施例的具有用于用户选择将被注入到软件应用中的数据的对话框的计算机窗口。
图2C示出了依照示例性实施例的具有用于用户对被注入到软件应用中的数据的选择进行自定义的第一对话框的计算机窗口。
图2D示出了依照示例性实施例的具有用于用户对被注入到软件应用中的数据的选择进行自定义的第二对话框的计算机窗口。
图3示出了依照示例性实施例的用于使用户界面标签与用户界面控件(control)匹配的基于概率的算法的流程图。
图4示出了依照示例性实施例的具有用户界面控件的示例的对话框或窗口。
图5示出了依照示例性实施例的具有用户界面标签的示例的对话框或窗口。
图6示出了依照示例性实施例的具有多个控件的多个左对齐标签的对话框。
图7示出了依照示例性实施例的具有多个控件的多个右对齐标签的对话框。
图8示出了依照示例性实施例的具有与多个控件的顶部对齐的多个标签的对话框。
图9示出了依照示例性实施例的具有处于三个预期位置上的标签的控件框。
图10示出了依照示例性实施例的具有处于三个预期位置上的放大标签区的控件框。
图11示出了依照示例性实施例的作为距离的函数的匹配概率的图表。
图12示出了依照示例性实施例的用于测量支点(pivot point)的图。
图13示出了依照示例性实施例的用于使数据元素标签与用户界面控件匹配的基于概率的算法的流程图。
图14示出了依照示例性实施例的被选用于注入到软件应用中的行的显示。
图15示出了依照示例性实施例的具有说明数据被从数据源注入到软件应用中的控件的图形的显示。
图16示出了依照示例性实施例的具有在数据已被从数据源注入到软件应用中的控件之后被去除的图形的显示。
图17示出了依照示例性实施例的用于在显示器上使将数据从数据源注入到控件的过程以图形方式形成动画的流程图。
图18示出了依照示例性实施例的计算机系统。
具体实施方式
示例性实施例涉及数据到软件应用或网页页面表格中的自动注入。
在测试软件应用的同时,示例性实施例使得测试器能够用被用来测试应用的杂项数据来填写或完成表格。该数据被自动地注入或插入到应用表格中,诸如独立软件应用或网页应用。示例性实施例自动地将来自数据源的数据映射到正在被测试或开发的应用中的正确位置。一个实施例被包括或集成了软件测试工具。数据注入的软件测试工具和/或进程被包括到新软件应用的设计、开发和测试的工作流程中。
如下文更全面地讨论的,示例性实施例提供各种环境中的数据到软件应用中的自动注入,诸如用于万维网(web)的应用、独立应用、客户关系管理(CRM)应用以及企业资源规划(ERP)应用。示例性实施例包括用以使用户界面控件与其适当的标签匹配的基于概率的算法和用以使数据条目与用户界面元素匹配的基于概率的算法。示例性实施例还包括将数据注入能力无缝地集成到手动测试工具中的方法和用以使注入和测试过程可视化的图形动画方式。
图1示出依照示例性实施例的用于将数据注入到软件应用中的流程图。
根据方框100,定义了将被注入或插入软件应用中的数据的源。
存在测试器能够用于数据注入的多个数据源。举例来说,这些数据源包括但不限于工作表(诸如Excel工作表)、逗号分隔值(CSV)文件、可扩展标记语言(XML)文件、数据库(诸如结构化查询语言(SQL)查询)以及Web服务调用的结果。
在一个示例性实施例中,这些数据源用表格化数据模型进行工作。每个组相关数据具有识别该数据的唯一标签。例如,在Excel工作表或CSV文件中,每列具有标题。在XML文件中,使用标记名作为数据标识。在数据库中,使用文件名来识别数据。
在执行手动测试之前,测试器或用户定义或识别一个或多个数据源。例如,用户可以浏览特定文件,诸如Excel、CSV和/或XML文件。针对SQL查询,用户可以定义数据库连接设置和SQL查询。
举例来说,图2A示出了具有用于用户定义提供数据以测试软件应用的数据源的位置的对话框200的计算机窗口。对话框200包括用以输入数据的路径和文件名的位置字段202、用以输入数据名的名称字段204以及用以搜索数据的浏览按钮206。还提供了取消按钮208和OK按钮210。
根据方框110,选择要注入到软件应用中的数据。
在软件应用的测试期间,测试器打开侧条或对话框,其显示被选用于输入到软件应用中的数据源条目。例如,图2B示出了具有用于用户选择要注入到软件应用中的数据的对话框210的计算机窗口。举例来说,框210包括以具有多个行和列的表格(或表格格式)布置的数据212,所述列具有诸如姓、名、年龄和ID的标题。
用户可以点击行以选择行中的数据以便注入到软件应用中。例如,第二行214被突出显示以指示此行的数据正在被选用于输入。因此,数据的单次选择(例如用单次点击选择整行)选择多个不同的数据以便注入到软件应用中。
框或侧条210在数据输入期间显示且在用户请求时是可用的(例如用户提供输入请求以使侧条被显示在屏幕上)。
根据方框120,对数据的注入进行自定义。一个实施例为用户提供对向软件应用中注入数据的过程进行自定义的选项。
用户可以检查在注入本身之前哪些控件将要接收数据。图2C示出了具有用于用户对被注入到软件应用中的数据的选择进行自定义的第一对话框230的计算机窗口。图2D示出了具有用于用户对被注入到软件应用中的数据的选择进行自定义的第二对话框250的计算机窗口。
对话框230包括名字段232、姓字段234、ID字段236、年龄字段238、取消按钮240以及保存按钮242。为了说明,名字段232和姓字段234被突出显示以指示这些字段被用户选择。
对话框250包括标题为启用(以启用或禁用行)、顺序(以显示数据被注入到软件应用中的数值顺序)和名称(以指定正在注入的数据)的列。
以说明的方式,图2C和2D示出名称和口令被启用。名称包括名字段232和姓字段234。因此,名将被注入到第一控件,并且姓将被注入到第二控件中。口令将被注入到第三控件中。
用户可以启用/禁用特定字段的注入,并且还改变注入的顺序。注入的顺序在用户界面控件之间的依赖关系的情况下特别有用(例如在一个控件中改变值启用当前被禁用的另一控件)。
根据方框130,将所选数据注入到软件应用中。其后,软件应用可以继续用所选数据执行。
在用户检查数据源并选择数据元素之后,用户可以执行单次鼠标点击操作以将数据注入到应用和相应的控件。例如,点击图2B中的注入按钮260将自动地将所选数据(例如所选名、姓以及口令)注入到软件应用的相应控件中。数据自动地从其存储位置(例如表格)传送到应用中的适当控件。一旦数据到达用户界面控件,其被“注入”到控件中,并且用户可以继续工作和测试应用。
图3示出了用于使用户界面标签与用户界面控件匹配的基于概率的算法的流程图。为了帮助讨论此流程图,在图4 - 5中提出了控件和标签的概念,并且在图6 - 8中提出了对齐的概念。
如在本文中和权利要求中所使用的,控件是交互式用户界面元件。控件包括但不限于在计算机或电子设备上显示的输入框、复选框、单选按钮、下拉列表(组合框)、按钮等。按钮是不包含数据的控件的示例。
举例来说,图4示出了具有用户界面控件的示例的对话框或窗口400。此框400包括显示设置字段402(选择了文本编辑器)、字体字段404(选择了Courier New)、显示项目字段406、使用默认值字段408、字体大小字段410、自定义框412、项目前景框414、项目背景框416、样本文本框418、确认(OK)按钮420以及取消按钮422。
如在本文中和权利要求中所使用的,标签是用户界面、诸如图形用户界面(GUI)中的静态文本。
举例来说,图5示出了具有用户界面标签的示例的对话框或窗口500。标签用来识别用户界面控件(诸如图4中所示的用户界面控件)。此框500包括具有作为“显示设置”510、“字体(黑体字类型指示固定宽度的字体)”520、“显示项目”530、“大小”540、“项目前景”550、“项目背景”560、“粗体”570以及“样本”580的示例性标签的字段或框。
用户界面(例如图4和5中所示的)由控件和标签组成。在观看显示器的同时,用户能够在视觉上辨别哪个标签与哪个控件相关。然而,使标签与控件匹配的此任务对于计算机而言并不是小事。图3中的算法使用户界面标签与用户界面控件匹配。此匹配在数据被注入到软件应用中之前发生。
在网页应用中,对用户界面控件给定内部标签是常见的。在这种情况下,此内部标签被用作所识别的控件,并且不需要对用户界面中的匹配文本标签进行定位。
关于标签对齐,示例性实施例包括用以对用户界面中的标签和控件进行布局的各种方式。这些方式包括但不限于标签的左对齐、标签的右对齐以及标签的顶端对齐。
图6示出了具有多个标签610(诸如标尺和格线单元、显示格线、间距等)和多个控件或控件框620的对话框或窗口600。标签610被左对齐且被定位于控件620的左侧。
图7示出了具有多个标签710A、710B(诸如类型、测试区域等)和多个控件或控件框720A、720B的对话框或窗口700。标签710A、710B被右对齐且被定位于控件720A、720B的左侧。
图8示出了具有多个标签810(诸如类型、测试区域等)和多个控件或控件框820的对话框或窗口800。标签810被对齐并定位于控件820的顶部处。如图8中所示,还可以将标签放置在控件之后(诸如将标签“粗体”放置在复选框822之后)。
现在针对使标签与控件匹配来讨论图3。为了说明,图3中的算法针对从左至右语言,但是其可以适合于支持从右至左用户界面。
根据方框300,进行页面中的用户界面(UI)控件(例如编辑框、组合框、复选框、控件框)、其各自性质(例如控件类型)、其各自位置(例如x坐标和y坐标)以及其各自大小(例如高度和宽度)的确定或识别。
根据方框310,进行页面中的用户界面(UI)标签、其各自位置(例如x坐标和y坐标)以及其各自大小(例如高度和宽度)的确定或识别。
根据方框320,计算控件和标签的匹配等级(rank)。该匹配等级确定标签属于特定控件或与之相关联的概率。例如,与特定控件相关联的标签描述控件(例如用于包含用于用户的标识的控件的标签名“用户ID”)。遍及所有UI控件迭代此步骤。如下计算用于标签和控件的匹配等级:
图3中的算法进行假设:标签的预期位置在三个位置中的一个中:左(用于左对齐和右对齐标签)、顶部(用于顶端对齐标签)或右(用于复选框标签)。图9示出了具有被示为910(顶部)、920(左)以及930(右)的在三个预期位置中的标签的控件框900。910处的区域A表示用于顶端对齐标签的控件框的左上角的预期位置。920处的区域B表示用于左对齐标签的控件框的左边的预期位置。930处的区域C表示用于右对齐或复选框控件(即邻近于控件框的右边出现的标签)的控件框的右边的预期位置。
示例性实施例针对对齐问题进行调整。一个实施例定义用于标签的辅助预期区域。这些区域是先前提到的预期位置区域的扩大。图10示出了具有被示为1010(顶部)、1020(左)和1030(右)的三个预期位置中的扩大标签区域的控件框1000。1010处的区域A'表示用于顶端对齐标签的控件框的左上角的扩大预期位置。1020处的区域B'表示用于左对齐标签的控件框的左边的扩大预期位置。1030处的区域C'表示用于右对齐或复选框控件(即邻近于控件框的右边出现的标签)的控件框的右边的扩大预期位置。
图3中的算法还确定标签与给定控件的距离和使所识别的标签与所识别的控件匹配的概率之间的相关。在一个示例性实施例中,标签与控件之间的匹配的概率与标签与相应控件之间的距离成比例地减少。此概率减少不是线性的。针对某个小距离,匹配的置信度是相对高的。相反,针对大的距离,匹配置信度较低。针对中间距离,匹配概率与标签和控件之间的距离成比例地减小。
图11示出了作为距离的函数的匹配概率的图表1100。X轴是距离(像素),并且Y轴是概率。示出了区域A、B和C(在图中讨论)。
在数学上,使用互补误差函数(即S形状的高斯误差函数)或用累积正态分布函数(即具有描述聚集在平均值周围的数据的连续概率分布的高斯分布)来描述图11中的曲线的性质。
使用标签与给定控件的距离与标签的位置之间的相关来计算标签与控件之间的匹配等级。一个示例性实施例测量控件与标签之间的距离(以像素为单位)。由于控件和标签两者是二维的,所以确定测量支点。
图12示出了用于测量支点的图。该图包括控件1200、标签A 1210、标签B 1220、标签C 1230以及标签D 1240。使用以下规则来测量支点。如果标签位于控件之上(例如标签A 1210),则进行控件的左上角到标签的左下角之间的距离的测量(用线1250示出)。如果标签位于控件下面(例如标签B 1220),则进行控件的左下角与标签的左上角之间的距离的测量(被示为线1260)。如果标签位于控件的右侧(例如标签C 1230),则进行控件的右下角至标签的左上角之间的距离的测量(被示为线1270)。如果标签位于控件的左侧(例如标签D1240),则进行控件的左上角与标签的右上角之间的距离的测量(被示为线1280)。
然后使用获得0和1之间的归一化等级的互补误差函数来进行距离的等级的计算。无论距离如何,如果标签位于上文所讨论的预期区域中,则概率增加(区域C适用于“复选框”控件)。在标签支点落在预期区域内部的情况下,一个示例性实施例生成距离的“红利(bonus)”—将其乘以因数。存在两个因数—用于主预期区域(Fp)以及辅助预期区域(Fs),其中Fp > Fs。
根据方框330,将等级分类。例如,最高等级是R1,下一个最低等级是R2;下一个等级是R3等。
根据方框340,进行关于是否宣布了匹配的确定。在一个示例性实施例中,只有当发现接收到高等级(这意味着其足够“接近”)的标签和控件以及当此匹配是唯一的(不存在也相当“接近于”标签的其他控件)时,才宣布匹配。出于此目的,一个示例性实施例使用两个阈值:
(1)接近度阈值(PT)—在其下面认为串和控件过于“远”且不宣布匹配的最小等级。
(2)区别阈值(DT)—最高等级与第二最高等级之间要求的最小间隙。
举例来说,只有当(R1 > PT )且(R1 - R2 > DT)时,才宣布匹配。
如果在340处未宣布匹配,则流程前进至方框370,并且迭代继续至下一个控件和标签直至完成。
如果在340处宣布匹配,则流程前进至方框350,其中,进行标签是否已被分配的确定。如果标签未被分配,则流程前进至方框380,在那里宣布匹配,并且将标签标记为被分配。然后流程前进至方框370,并且迭代发生至下一个控件和标签直至完成。
如果在方框350处标签已被分配,则流程前进至方框360,在那里取消当前匹配。在这里,标签已被分配至另一控件,并且不能宣布匹配。同样地,当前匹配被取消,因为其与不止一个控件匹配。标签本身仍然被分配。流程然后前进至方框370。
图13示出了依照示例性实施例的用于使数据元素标签与用户界面控件匹配的基于概率的算法的流程图。
理论上,用户可以对数据元素给定与UI控件标签相同的标签,因此两者之间的匹配将是不重要的。然而,在某些情况下,已给定数据源(例如数据库或从生产系统导入的excel),并且数据源元素标签与UI控件标签不相同。示例性实施例解决了此问题,并且在数据源元素标签与UI控件标签之间存在微小差别时注入数据。在匹配怀疑的情况下,一个示例性实施例优选避免注入某个元素,与将该元素注入到错误的UI控件相反。
示例性实施例使用串相似性算法来测量串相似性。举例来说,此类算法包括但不限于两个方法的组合:Levenstein距离和字母对度量,其中取加权平均值。此平均值被归一化至在0...1范围内。Levenstein距离是测量两个序列(例如两个串)之间的差别量的度量,并被定义为将一个序列(第一串)变换成其它串(第二串)所需的编辑的最小数目。示例性编辑操作是单个字符的插入、删除或分支(substation)。
为了允许匹配算法中的更多灵活性,一个示例性实施例使用等价字典。此字典包含常见等价单词,因此在数据源标签和UI标签两者在此字典中表现为“等价”时,其将视为是“类似的”,虽然其Levinstein距离和字母对度量未显示出相似性。例如,字典可以宣布“移动”类似于“电话”,因此在数据源标签是“电话”但UI控件标签是“移动”的情况下,这两个将被认为是匹配,并且将在“移动”控件中注入值。
根据方框1300,标签被分配至页面中的相关控件。一旦标签被分配,则该方法前进至确定要注入的数据元素与相应的UI控件之间是否存在匹配。
要注入的数据是一组串对{Li, Vi}。Li是数据元素的标签,并且Vi是数据元素的值。按照如下在数据元素(L)上迭代以下步骤:
根据方框1310,在所有相关控件上迭代,并计算数据标签(Li)与控件分配的标签之间的串相似性。
根据方框1320,对串相似性的结果进行排列等级和分类。例如,最高等级为R1;下一个最低等级是R2;下一个等级是R3等。
根据方框1330,进行匹配是否被宣布的确定。如果一对串足够相似,并且还如果此匹配是唯一的(不存在也相当类似的其他串),则宣布匹配。出于此目的,一个示例性实施例使用两个阈值:
(1)相似性阈值(ST):在下面其串被认为过于不同且不宣布匹配的最小等级。
(2)区别阈值(DT):最高等级与第二最高等级之间要求的最小间隙。
因此,只有当(R1 > ST)且(R1 - R2) > DT时,一个实施例才宣布匹配。
如果未宣布匹配,则流程前进至方框1340且迭代继续至下一控件和标签直至完成。
如果宣布了匹配,则流程前进至方框1350,且进行关于控件是否已被分配的确定。
如果控件尚未被分配,则流程前进至方框1360,并且控件被标记为被分配。流程然后前进至方框1340。
如果控件已被分配,则流程前进至方框1370,并且当前匹配被取消。在这里,控件已被分配至另一标签,并且不能宣布匹配。同样地,当前匹配被取消,因为其与不止一个标签匹配。控件本身仍然被分配。流程然后前进至方框1340。
图14-17描述了用以使将数据从数据源注入到软件应用中的过程可视化的图形动画方式。图14-16示出了具有数据源和控件的显示,并且图17示出了用于在显示器上使从数据源向控件注入数据的过程以图形方式产生动画的流程图。
根据方框1700,用户选择要从数据源注入到软件应用的数据。
图14示出了具有与对话框1410同时地显示的数据源1400(被示为表格)的显示。数据源1400具有以多个列和行布置的数据1420。数据源1400具有多个标签1420(例如名、姓、ID和年龄),并且对话框1410具有多个控件或控件框1440。数据源1400的第二行1450被突出显示以指示此行被选用于注入到软件应用中。
根据方框1710,显示图形和/或动画以示出数据将在哪里被注入到软件应用的控件中。
根据方框1720,将数据从数据源注入到控件中。
图15示出了具有图形1500的图14的显示,其说明依照示例性实施例的数据被从数据源注入到软件应用中的控件。针对每个数据元素,图形1500包括箭头和文本框。该箭头在数据源1400中的数据的原始点处开始并在对话框1410中的目的地(控件)处结束。例如,箭头1520在数据元素“Gonen”处的第一列(标记为“名”)中开始并在控件框1530(即对话框1410中的标记为“名”的控件框)中结束。文本框1550连接至箭头1520并显示将被从表格1400注入到控件1530中的数据(即“Gonen”)。
在一个实施例中,一旦用户选择了要注入的数据行,则显示器示出文本“飞”入应用并“下沉”到适当控件中的短动画。动画阶段如下发生:在将被注入的数据位置上提取新文本元素(例如所选行、列或其他数据)。针对每个文本元素,过渡(transition)在数据源中的文本元素的位置处开始。如果数据源是数据表,则此过渡的起始点是数据表中的数据元素的原始位置。此动画的结束点是数据应被注入到的控件的位置。这些点之间的路径可以是线性和/或弯曲的。过渡速度可以是线性的,但是一个实施例使用“慢慢适应(ease in)”效果(在末尾处稍微减速)。在一个实施例中,所有数据字段能够同时地形成动画。替换地,数据字段可以单独地或按群组形成动画。
根据方框1730,用于所选数据的当前图形被隐藏或去除。
图16示出了具有在数据已被从数据源1400注入到软件应用中的控件1440之后被去除的图形的图14的显示。
图18示出了用于实现示例性实施例的计算机系统1800。该计算机系统包括被耦合到一个或多个计算机或服务器1805的一个或多个存储设备、数据库或仓库1860。依照示例性实施例,存储设备可以存储数据,诸如表格、对话框等的数据源。计算机1805包括存储器1810、软件应用1820(例如依照示例性实施例设计和/或测试的软件应用)、用以注入数据1822的模型或算法(诸如用以执行图1的方法的模型)、用以匹配标签和控件1824的模型或算法(诸如执行图3和13的方法的模型)、用以生成注入动画1826的模型或算法(诸如执行图17的方法的模型)、显示器1830、处理单元1840以及一个或多个总线或连接1850。处理器单元包括用于控制存储器1810(用于临时数据存储的随机存取存储器(RAM)、用于永久数据存储的只读存储器(ROM)以及固件)的总体操作的处理器(诸如中央处理单元、CPU、微处理器、专用集成电路(ASIC)等)。处理单元1840与存储器1810和模型1822、1824和1826通信并执行用于执行本文所解释的方法所必需的操作和任务。存储器1810例如存储应用(诸如应用1820)、数据、程序、算法(包括用以实现或帮助实现示例性实施例的软件)及其他数据。
可以在多种环境上应用示例性实施例,包括但不限于标准应用、Web、.Net、Java、ActiveX、Visual Basic等。此外,可以在单次交易中选择和注入多个不同数据(例如表格中的整行和/或列的数据)(例如,在用户选择一个或多个数据行之后,在“注入”按钮上的单次点击将所选数据注入到相应的控件)。同样地,不要求用户在用户界面控件与数据源标签之间映射(例如Excel工作表列)。替代地,使用能够克服字段定义与表格标题名之间的细微差别的一个或多个匹配算法来自动地执行匹配。
此外,可以将示例性实施例集成到手动测试工具中,并因此在软件应用的测试或设计期间提供嵌入式能力。
在一个示例性实施例中,使本文所讨论的一个或多个块或步骤自动化。换言之,设备、系统和方法自动地发生。术语“自动化”或“自动地”(及其类似变体)意指在不需要人干预、观察、努力和/或判定的情况下使用计算机和/或机械/电气设备的装置、系统和/或过程的受控操作。
依照示例性实施例的方法是作为示例提供的且不应将其理解成限制其他实施例。此外,可以向其他图中的步骤的方法添加在不同图内讨论的方法或步骤或与之互换。此外,应将特定数字数据值(诸如特定量、数目、种类等)或其他特定信息解释为说明性的以便讨论示例性实施例。不提供用来限制示例性实施例的此类特定信息。
在某些示例性实施例中,本文所说明的方法和与之相关联的数据和指令被存储在各存储设备中,其被实现为一个或多个计算机可读或一个或多个计算机可用存储介质。该存储介质包括不同形式的存储器,包括诸如DRAM或SRAM的半导体存储器件、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)和闪速存储器;磁盘、诸如固定磁盘、软盘和可移动磁盘;其他磁介质,包括磁带;以及光学介质,诸如压缩磁盘(CD)或数字多功能磁盘(DVD)。注意可以在一个计算机可读或计算机可用存储介质上提供上文所讨论的软件指令,或者替换地,可以在分布在可能具有多个节点的大型系统中的多个计算机可读或计算机可用存储介质上提供。此类一个或多个计算机可读或计算机可用存储介质被视为物品(或制品)的一部分。物品或制品可以指的是任何制造的单个部件或多个部件。
示例性实施例被实现为方法、系统和/或设备。作为一个示例,将示例性实施例和与之相关联的步骤被实现为一个或多个计算机软件程序以实现本文所述的方法。该软件被实现为一个或多个模块(也称为代码子程序或面向对象编程中的“对象”)。软件的位置对于各种替换实施例而言将不同。软件编程代码例如被计算机或服务器的一个或多个处理器从某种类型的长期存储介质访问,该介质诸如CD-ROM驱动器或硬盘驱动器。软件编程代码被体现或存储在多种已知物理和有形计算机可读介质中的任何一个上以供数据处理系统使用或在任何存储器件中使用,诸如半导体、磁和光学器件,包括磁盘、硬盘驱动器、CD-ROM、ROM等。代码被分布在此类介质上,或者被从一个计算机系统的存储器或储存器通过某个类型的网络到其它计算机系统分发给用户以供此类其他系统的用户使用。替换地,编程代码被体现在存储器中并被处理器使用总线来访问。用于在存储器中、物理介质上体现软件编程代码和/或经由网络来分发软件代码的技术和方法是众所周知的,并且在本文中将不会进一步讨论。
以上讨论意图说明示例性实施例的原理。一旦完全理解上面公开,许多变更和修改将变得对于本领域的技术人员来说显而易见。意图在于将以下权利要求解释为涵盖所有此类变更和修改。

Claims (15)

1.一种由计算机执行的方法,包括:
显示软件应用的多个不同控件;
接收存储在数据源中的数据的单个选择;以及
响应于单个选择将来自数据源的数据注入到软件应用的所述多个不同控件中。
2.权利要求1的方法,还包括:
显示包括具有数据的表格的侧条;
突出显示作为单个选择的数据行。
3.权利要求1的方法,还包括:
在单独的窗口中同时地显示所述多个不同的控件和数据源;
随着数据被注入到软件应用中,以动画方式使数据从数据源移动至所述多个不同控件。
4.权利要求1的方法,还包括:
显示列出其中数据被注入到所述多个不同控件中的顺序的窗口;
在该窗口中接收选择以改变其中数据被注入到所述多个不同控件中的顺序。
5.权利要求1的方法,还包括:
接收单个选择作为在表格中显示的整行数据的选择;
接收单次点击以发起数据从表格到软件应用的所述多个不同控件中的注入。
6.一种具有用于促使计算机执行一种方法的指令的有形计算机可读存储介质,该方法包括;
在用户界面中识别控件和用于该控件的标签;
测量标签与控件之间的距离;
基于该距离来对标签和控件排序等级;以及
基于该排列等级将每个标签分配至控件中的一个。
7.权利要求6的有形计算机可读存储介质,还包括:
确定哪些标签在控件之上、在控件右侧以及在控件左侧对齐。
8.权利要求6的有形计算机可读存储介质,还包括:
确定标签中的一个与控件中的一个之间的距离;
基于该距离来计算所述标签中的一个是用于所述控件中的一个的标签的概率。
9.权利要求6的有形计算机可读存储介质,还包括,当标签已被分配至另一控件时取消标签到控件的分配。
10.权利要求6的有形计算机可读存储介质,其中,以像素为单位来测量距离,并且用互补误差函数或累积正态分布函数来用数学方式描述使标签中的一个与控件中的一个匹配的概率。
11.一种计算机系统,包括:
存储器,其存储指令和数据元素;
处理器,其执行指令以:
使用户界面中的多个不同标签中的一个分配至用户界面中的多个不同控件中的一个;
计算数据元素的名称与被分配至所述多个不同控件的所述多个不同标签的名称之间的相似性;以及
基于该相似性来确定数据元素的名称与所述多个不同标签的名称之间的匹配。
12.权利要求11的计算机系统,其中,所述处理器还执行用以在标签与已被分配至不同标签的控件相关联时取消标签与数据元素之间的匹配的指令。
13.权利要求11的计算机系统,其中,所述处理器还执行用以通过计算用于所述多个不同标签中的每一个的等级来确定标签与数据元素之间的匹配是否为唯一的指令。
14.权利要求11的计算机系统,其中,所述处理器还执行指令以:
计算标签与数据元素之间的等级(R);
计算标签与另一数据元素之间的第二等级(R2);
计算标签与数据元素之间的相似性阈值(ST);
计算标签与数据元素之间的区别阈值(RT);
当R > ST且(R - R2) > DT时,宣布标签与数据元素之间的匹配。
15.权利要求11的计算机系统,其中,所述处理器还执行用以随着数据元素被注入到所述多个不同的控件而显示数据元素与所述多个不同控件之间的曲线路径的指令。
CN2010800660995A 2010-04-10 2010-04-10 数据到软件应用中的注入 Pending CN102822796A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2010/030657 WO2011126494A1 (en) 2010-04-10 2010-04-10 Injection of data into a software application

Publications (1)

Publication Number Publication Date
CN102822796A true CN102822796A (zh) 2012-12-12

Family

ID=44763201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800660995A Pending CN102822796A (zh) 2010-04-10 2010-04-10 数据到软件应用中的注入

Country Status (4)

Country Link
US (2) US9104812B2 (zh)
EP (2) EP2558931A4 (zh)
CN (1) CN102822796A (zh)
WO (1) WO2011126494A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495281B2 (en) * 2012-11-21 2016-11-15 Hewlett Packard Enterprise Development Lp User interface coverage
CN105224340B (zh) * 2015-11-03 2018-12-14 用友网络科技股份有限公司 业务单据注入附件管理的方法与系统
CN109656985A (zh) * 2018-09-27 2019-04-19 深圳壹账通智能科技有限公司 数据导入方法、系统、终端及存储介质
US20210318865A1 (en) * 2020-04-09 2021-10-14 Capital One Services, Llc Methods and arrangements to process comments

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086643A1 (en) * 2003-10-17 2005-04-21 Shane Michael S. Methods and systems for automatically testing websites and web applications using knowledge bases of standard inputs and standard errors
CN1755679A (zh) * 2004-09-30 2006-04-05 微软公司 用于引用电子表格公式内动态数据的方法和实现
CN101278279A (zh) * 2005-09-09 2008-10-01 微软公司 数据汇总表中字段的自动化放置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999012347A2 (en) * 1997-09-02 1999-03-11 Koninklijke Philips Electronics N.V. Method and arrangement for detecting a watermark
US6490601B1 (en) * 1999-01-15 2002-12-03 Infospace, Inc. Server for enabling the automatic insertion of data into electronic forms on a user computer
US7694216B2 (en) * 2000-12-19 2010-04-06 International Business Machines Corporation Automatic assignment of field labels
US20040205530A1 (en) * 2001-06-28 2004-10-14 Borg Michael J. System and method to automatically complete electronic forms
US7093238B2 (en) 2001-07-27 2006-08-15 Accordsqa, Inc. Automated software testing and validation system
US6948152B2 (en) * 2001-09-14 2005-09-20 Siemens Communications, Inc. Data structures for use with environment based data driven automated test engine for GUI applications
US6993748B2 (en) * 2001-10-26 2006-01-31 Capital One Financial Corporation Systems and methods for table driven automation testing of software programs
US7398469B2 (en) * 2004-03-12 2008-07-08 United Parcel Of America, Inc. Automated test system for testing an application running in a windows-based environment and related methods
WO2006047741A2 (en) 2004-10-27 2006-05-04 Bae Systems Land & Armaments L.P. Software test environment for regression testing ground combat vehicle software
US7705861B2 (en) 2006-01-19 2010-04-27 Microsoft Corporation Snap to element analytical tool
US8001121B2 (en) * 2006-02-27 2011-08-16 Microsoft Corporation Training a ranking function using propagated document relevance
US8019763B2 (en) * 2006-02-27 2011-09-13 Microsoft Corporation Propagating relevance from labeled documents to unlabeled documents
US20080065671A1 (en) * 2006-09-07 2008-03-13 Xerox Corporation Methods and apparatuses for detecting and labeling organizational tables in a document
US20080256057A1 (en) * 2007-04-12 2008-10-16 Soren Riise Optimizing a query using fuzzy matching
US8086902B2 (en) 2007-04-16 2011-12-27 Microsoft Corporation Method and apparatus for testing media player software applications
US20090019429A1 (en) 2007-07-14 2009-01-15 Andreas Randow Virtualization of data source components in subject-oriented graphical programming environments for test and measurement applications
US8032546B2 (en) * 2008-02-15 2011-10-04 Microsoft Corp. Transformation-based framework for record matching
US20090228871A1 (en) * 2008-03-10 2009-09-10 Microsoft Corporation Managing generation of security tests

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086643A1 (en) * 2003-10-17 2005-04-21 Shane Michael S. Methods and systems for automatically testing websites and web applications using knowledge bases of standard inputs and standard errors
CN1755679A (zh) * 2004-09-30 2006-04-05 微软公司 用于引用电子表格公式内动态数据的方法和实现
CN101278279A (zh) * 2005-09-09 2008-10-01 微软公司 数据汇总表中字段的自动化放置

Also Published As

Publication number Publication date
US20150301924A1 (en) 2015-10-22
US20130074001A1 (en) 2013-03-21
US9104812B2 (en) 2015-08-11
EP2558931A4 (en) 2013-09-11
EP2759941A1 (en) 2014-07-30
EP2558931A1 (en) 2013-02-20
WO2011126494A1 (en) 2011-10-13
US10007593B2 (en) 2018-06-26

Similar Documents

Publication Publication Date Title
CN112668968B (zh) 一种基于领域驱动设计的仓储管理建模方法及系统
US11227104B2 (en) Composite data creation with refinement suggestions
US20110072340A1 (en) Modeling system and method
US9557968B1 (en) Comparison graph
CN107292672A (zh) 一种餐饮行业销售预测的实现系统与方法
CN104750771B (zh) 利用域信息进行上下文数据分析的方法和系统
CN101710274A (zh) 应用软件帮助信息生成方法及系统
CN102822796A (zh) 数据到软件应用中的注入
CN111459599B (zh) 物料清单编辑方法、装置、设备及存储介质
CN107798030A (zh) 数据表的拆分方法和装置
CN110874534A (zh) 数据处理方法和数据处理装置
US20200081593A1 (en) Element mapping and rule building systems and methods for contextual site visitor engagement
CN107861926A (zh) 单证模板配置方法及装置
CN104123138A (zh) 一种erp系统的快速构建方法
CN106649053A (zh) 一种任务运行状态信息获得方法及装置
CN104881455B (zh) 一种基于mysql的结构差异处理方法及系统
US10915682B1 (en) Remodeling testing method for remodeling text-based display design to thereby achieve graphic-based display design and design remodeling testing device using the same
CN108021367B (zh) 一种基于元数据架构的ui开发系统及方法
CN105224514A (zh) 基于Flex扩展XBRL分类标准的方法
CN107992509B (zh) 职位词典信息的生成方法及装置
Saxena Internationalization of small and medium enterprises in India: Opportunities and challenges
CA2862861C (en) Systems and methods for creating and managing marketing applications, events, promotions, and publications
US20230083617A1 (en) Document retrieval support system, document retrieval support method, and non-transitory computer readable medium storing document retrieval support program
Newman Design case study: the bravo text editor
JP5801982B1 (ja) メッセージ管理装置、メッセージ管理方法、記録媒体、およびプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20170412