CN105264492B - ***行为的自动发现 - Google Patents
***行为的自动发现 Download PDFInfo
- Publication number
- CN105264492B CN105264492B CN201480027738.5A CN201480027738A CN105264492B CN 105264492 B CN105264492 B CN 105264492B CN 201480027738 A CN201480027738 A CN 201480027738A CN 105264492 B CN105264492 B CN 105264492B
- Authority
- CN
- China
- Prior art keywords
- user interface
- interface element
- behavior
- list
- computer
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
软件***的第一实现被访问且该软件***中的各表单被选择。与每一所选表单上的控件进行交互以发现计算机***的行为。行为的表示被存储以供用户观察或输出给另一***(如行为验证***)。
Description
背景
当前使用了各种各样的不同类型的计算机***。将计算机***的部署从一种实现改变成另一实现是常见的。在执行计算机***的这样的重新实现时,第二实现的行为与第一实现的行为相同可能是合乎需要的。为了确保第二实现的行为保留在第一实现中发现的行为,第二***的行为可被验证以确保它按与第一实现相同的方式来行动。
当前,这一类型的验证在很大程度上是手动地执行的。即,第一实现的行为被手动探索。随后,用户执行手动验证相同行为存在于第二实现中。
这一类型的验证遇到多种不同的问题。例如,验证通常没被执行,直至第二实现已被完全实现。此时,验证通过使用户观察第一实现的表现并手动地验证它存在于第二实现中来被手动地执行。在第二实现已基本上完成之后执行验证降低了在重新实现过程中的早期标识错误或不一致性(这时它们可能更易于补救)的可能性。另外,许多当前计算机***过大,以致于手动验证可能非常困难、耗时、麻烦、以及易于差错。
作为示例,一些当前计算机***是业务***,如企业资源规划(ERP)***、客户资源管理(CRM)***、业务线(LOB)***,等等。这些类型的业务***通常具有数千不同的表单,每一表单具有许多不同的控件。然而,对于甚至这些大型业务***而言,例如要从场所内实现迁移到基于云的实现(或反之)并非不常见。这一类型的重新实现可能非常困难,因为确保重新实现是行为保留重新实现是非常耗时的。行为验证任务实在过于麻烦。
提供以上讨论仅用作一般的背景信息,并不旨在帮助确定所要求保护的主题的范围。
概述
软件***的第一实现被访问且该软件***中的各表单(form)被选择。与每一所选表单上的控件进行交互以发现计算机***的行为。行为的表示被存储以供用户观察或输出给另一***(如行为验证***)。
提供该概述以便以简化形式介绍概念的选集,所述概念在以下详细描述中被进一步描述。该概述不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在被用来帮助确定所要求保护的主题的范围。所要求保护的主题不限于解决在背景中提及的任何或所有缺点的实现。
附图简述
图1是重新实现***的一个实施例的框图。
图2是示出图1所示的***的总体操作的一个实施例的流程图。
图3A和3B示出解说图1中所示的发现***在发现***行为时的操作的一个实施例的流程图。
图3C-3H是说明性用户界面显示。
图4是示出在验证***行为时图1所示的验证***的操作的一个实施例的流程图。
图5是在搜索***和索引***中的图1所示的发现***的框图。
图6是在各个体系架构中的图1中所示的重新实现***的框图。
图7-11示出了移动设备的不同实施例。
图12是一个说明性计算环境的框图。
详细描述
图1是重新实现***100的一个实施例的框图。图1示出了能访问业务***的第一实现102和业务***的第二实现104的重新实现***100。图1还示出了用户106能通过本身包括用户输入机制110的用户界面显示108说明性地访问重新实现***100。在一个实施例中,用户106可以与用户界面显示108上的用户输入机制110交互以控制和操纵重新实现***100。
图1还示出了重新实现***100说明性地包括发现***112和验证***114。发现***112包括行为发现组件116、接收策略控制输入120的发现控制组件118、行为记录组件122以及存储业务***的第一实现102的行为(如行为发现组件116所发现的)的人类可读表示126的数据存储124。
验证***114包括行为重放组件126、生成测试例130的测试例生成器128、反应验证组件132、以及存储故障136和行为矛盾138的数据存储135。图1还示出了重新实现***100说明性地包括生成用户界面显示108的处理器140和用户界面组件142。图1进一步示出了代替将数据简单地存储在数据存储124和134中,数据可被输出以供用户106观察或输出给另一***。来自发现***112的数据的输出由框144指示,且来自验证***114的数据的输出由框146指示。
在讨论重新实现***100的总体操作之前,将首先讨论多个初步项。处理器140说明性地是具有相关联的存储器和时序电路(未分开示出)的计算机处理器。它说明性地是重新实现***100的功能组件,并且由重新实现***100的其它***、组件或项激活,并且促进重新实现***100中的其它***、组件或项的功能性。
数据存储124被示为发现***112的一部分,且数据存储134被示为验证***114的一部分。然而,将注意,这些数据存储不必分别是***112和114的一部分,而是可以与其分开或在这些***远程并且可由它们访问。另外,尽管单个数据存储在***112和***114中示出,但多个数据存储也可被使用。多个数据存储可以全部在***100本地或在***100远程,或者一些可以在本地而其他可以在远程。
图2是示出图1所示的重新实现***100的总体操作的一个实施例的流程图。发现***112首先访问业务***的第一实现102以发现其行为。访问第一实现102由图2中的框150指示。行为发现组件116随后发现第一实现102的行为。这由框152指示。发现实现102的行为在下文参考图3A和3B更详细地讨论。
一旦已经探索并发现了行为,行为记录组件122就说明性地记录第一实现102的行为的表示。这由框154指示。一个示例性表示是存储在数据存储124中的人类可读表示126。
在第一实现102的行为的表示要被用来验证该***的重新实现的情况下(即,验证业务***的第二实现102的行为),生成器128访问表示126并生成测试例130,测试例130由行为重放组件126对第二实现104重放。这由图2中的框156指示。
反应验证组件132观察在测试例130对它重放时第二实现104的反应,以验证反应与第一实现102的反应相同。验证第二实现104的反应由图2中的框158指示。
验证的结果(如故障136的形式或行为差异138)随后可被记录在数据存储134中,或者它们可以被输出以供另一***使用、供人类观察,等等。这由图2的框160指示。
图3A和3B示出了更详细地解说自动发现第一实现102的行为时发现***112的操作的流程图。根据一个实施例的,发现控制组件118可以控制发现第一实现102的行为时行为发现组件116所采用的发现策略。发现策略可出于各种各样的不同原因而改变。例如,在一个实施例中,业务***102的第一实现是非常大的业务应用。它可能具有带数千控件的数千表单。因此,它可在第二实现104中分阶段来重新实现。然而,在整个迁移或重新实现完成之前,验证第二实现104的行为与第一实现102的行为相同可能是有用的。因而,用户106可以向发现控制组件118提供控制行为发现组件116所采用的发现策略的策略控制输入120。
作为具体示例,假定实现102被迁移到第二实现104且大量工作已在迁移业务***时被执行。然而,假定用户界面上的组合框在第二实现104中尚未工作。在这种情况下,代替等待所有用户界面元素工作以验证第二实现104的行为,用户106可以简单地提供向发现控制组件118指示尚不验证组合框的行为的策略控制输入120。在这种情况下,发现控制组件118可以控制行为发现组件116,以使得它不浪费任何计算资源来尝试发现第一实现102中的表单上的组合框的行为。表单意指诸如窗口或网页等实现所生成的显示。类似地,当然,一些表单可能尚未从第一实现102迁移到第二实现104且此时这些表单也可以从发现过程中省略。同样,一些交互(如一些点击行为或将文本键入文本框,等等)可能尚未在第二实现104中启用,或某些反应(如响应于点击另一按钮而激活按钮,等等)可能尚未在第二实现104中工作。所有这些事物可在控制行为发现组件116发现第一实现102的行为时的发现策略时被加以考虑。
因此,如图3A所示,发现组件118首先访问策略控制输入120以确定如何控制行为发现组件116所采用的发现策略。这由图3A的框162来指示。当然,策略控制输入120可以标识哪些表单164要被发现、哪些用户界面元素166、哪些交互168、哪些反应170或各种各样的其他策略控制输入172可被提供给发现控制组件118以控制发现组件116的策略。
行为发现组件116随后选择第一实现102中的表单。这由框174指示。表单选择也可以按各种不同的方式来执行。例如,组件116可以简单地随机选择表单,如框176所示,或给定表单可作为目标,如框180所示。例如,最频繁使用的表单可首先作为目标,或表单可按第一实现102的用户使用它们的次序来被作为目标,或者它们可以按其他方式来作为目标。另外,多个表单182可被访问且行为发现组件116可以跨多个表单导航以使用单遍来发现多个表单的行为。然而,本公开将参考一次发现单个表单的行为来进行,但这仅作为示例来描述。当然,行为发现组件116也可以按其他方式选择第一实现102中的表单,且这由框184指示。
行为发现组件116随后打开所选表单。这由框186指示。
行为发现组件116随后基于策略控制输入来标识所选表单上的所有用户界面元素(如控件)。这由框188指示。例如,行为发现组件116将标识表单上的所有控件,其中它不受策略控制输入120的约束。然而,在一些控件尚未被发现的情况下,行为发现组件116不在所选表单上寻找这些类型的控件。
一旦所选表单上的用户界面元素(或控件)已被标识,则这些用户界面元素中的每一者的状态被标识。这由框190指示。
行为发现组件116随后选择所选表单上的用户界面元素之一以供交互。这由框192指示。用户界面元素也可按各种各样的不同方式被选择以供交互。例如,它们可被随机选择,如框194所示。它们也可如框196所示的那样作为目标。作为示例,如果行为发现组件116先前已与用户界面元素交互(如通过点击按钮)且这造成第二按钮在表单上变得活动,则行为发现组件116可以选择该特定的新激活的按钮(或用户界面元素)以用于它的下一交互步骤。这趋向于模拟实际个人在与该表单交互时将做的事。当然,行为发现组件116也可以按其他方式选择所选表单上的给定用户界面元素,且这由框198指示。
行为发现组件116随后与表单上的所选用户界面元素交互。这由图3A的框200来指示。行为发现组件116在用户界面元素上所执行的特定交互可以是任何可能的交互,或者它可以从预定义的交互子集中选择。例如,在一个实施例中,行为发现组件116不在所选用户界面元素上执行肯定交互步骤,而仅仅记录该用户界面元素的状态(如,活动或不活动)。这由框202指示。它也可执行只读交互204,这可以是简单地跨不同元素导航。它还可以执行任何或全部可能类型的交互,如向文本域键入、点击按钮,等等。这由框206指示。行为发现组件116当然也可以例如执行其他交互208。
一旦行为发现组件116对所选表单的所选用户界面元素执行交互,它就观察该表单的反应,如框210所示。例如,表单可以启用或禁用各用户界面元素。这由框212指示。它可以改变用户界面元素中所显示的值,如框214所示,或者它也可以按其他方式来作出反应,且这由框216指示。同样,行为发现组件116可以说明性地寻找任何类型的反应,或寻找作为预定义的一组反应的一部分的反应,或它也可以按其他方式来寻找。
行为记录组件122随后将行为(如交互和观察到的反应)记录在数据存储124中。记录交互和观察到的反应由图3A中的框218指示。交互和观察到的反应可用各种各样不同的方式来记录。例如,它可以按人类可读形式220来记录。它可以被记录在文件中,每一表单一个文件,如框222所示。它可以按文本格式222、HTML 226、或以其他方式228来记录。在一个实施例中,它还可以与交互和观察到的反应一起记录在文本文件的单行上,或以其他格式或根据其他模式来记录。
一旦交互和观察到的反应已被记录,行为发现组件116就确定是否存在针对所选用户界面元素的更多用户交互。这由框230指示。如果是,则处理返回至框200,在此行为发现组件116对这一特定用户界面元素执行另一交互并观察和记录该行为。然而,如果否,则行为发现组件116确定所选表单上是否存在要与其交互的更多用户界面元素。这由框232指示。如果是,则处理返回至框192,在此另一所标识的用户界面元素被选择以供交互。如果没有附加用户界面元素要在这一表单上交互,则行为发现机制116确定是否存在更多表单要经历发现过程。这由框234指示。如果是,则处理返回至框174,其中另一表单从业务***的第一实现102中被选择。然而,如果没有表单剩下,则处理完成,如图3B所示
图3C-3H示出展示与其自动交互的表单并示出反应的说明性用户界面显示。图3C例如示出来自网格133在其上列出各行调色板的业务***的用户界面显示131。每一调色板具有调色板标识符和调色板类型。调色板标识部分135具有可被编辑以包括调色板ID、调色板类型、以及标签状态的域。通用部分137还包括可被用来标识给定调色板的仓库、位置、以及大小的域。RFID部分139具有可被用来标识调色板的RFID信息的域。如果用户要致动用户界面显示131所示的表单上的新建按钮141,则业务***通过生成经修改的表单来作出反应。
图3D示出了这一反应的一个实施例。可以看到,在图3D中,在用户界面显示145上,附加行143已被添加到网格133。此外,区段135中的域已可供编辑。多个默认值已被***各域中的一些。因而,在与图3C中示出的表单的交互是致动新建按钮141时,这一反应被记录。
再次参考图3C,如果用户致动删除按钮147,假定用户希望删除的调色板仍然在使用,则显示警告消息,如在图3E的用户界面显示149上所示出的。警告消息151指示用户正尝试删除仍然在使用的调色板。因而,这一反应也将被观察到并被记录。
再次参考图3C,假定用户选择网格133中的另一行153。业务***说明性地通过生成图3F中示出的用户界面显示155来作出反应。可以看到,网格133中的行153现在已被选择,且显示部分135和137中的多个控件已改变了值。具体而言,各值已被改变来匹配网格133的行153中标识的新选择的调色板。
图3G示出另一用户界面显示159。可以看到,用户界面显示159具有产品类型域161、产品子类型域163、一组标识域165、以及毛重部分167。如果用户将新值输入到产品子类型域163,则业务***通过生成图3H所示的用户界面显示169来作出反应。可以看到,新值已被录入到域163,且附加产品型号域171已变得可用。这一反应也被观察到并被记录。当然,图3C-3H仅仅是示例性的。
图4是解说在验证业务***的第二实现104的行为与业务***的第一实现102的行为相对应时验证***114的操作的一个实施例的流程图。在一个实施例中,行为重放组件126首先访问或选择业务***的第二实现104中的表单。这由图4中的框236指示。
测试例生成器128随后访问数据存储124中的所选表单的行为表示。当然,这一信息可被提供给测试例生成器128,或测试例生成器128可以在数据存储124中访问它,或测试例生成器128可以按其他方式获得这一信息(如直接从行为发现组件116,或以其他方式)。获得这一信息在图4中由框238指示。测试例生成器128随后生成针对所选表单的测试例。这由图4的框240指示。测试例生成器128可以用各种各样不同的方式来这么做。例如,它可以在运行时读取并解释行为表示126的内容。这由框242指示。它还可以在构建时生成测试例130,如框244所示。在该实施例中,它说明性地将所记录的文件(表示126)转换成直接表达操作的实际测试代码。当然,测试例130可以根据行为发现组件116的输出立即生成,如图4中的框246和图1中的虚线箭头248所示。测试例生成器128也可以按其他方式生成测试例130,且这由图4中的框250指示。
行为重放组件126随后基于测试例130来重放与所选表单上的用户界面元素的交互。这由图4中的框252指示。
反应验证组件132随后观察所选表单的反应并验证其反应与根据第一实现102记录的反应相同或等同。例如,在第二实现中,情况可能是:警告消息各自被显示在分开的表单中,而在第一实现中,每一表单可具有单独的通知区域。在该示例中,只要警告消息被显示在正确的位置,则反应就是等同的。观察反应由框254指示,且确定它是否与预期反应相同或等同由框256指示。如果两个反应不相同或等同,则故障或行为差异已针对所选表单上的所选用户界面元素被标识。这被记录,如图4的框258指示。
然而,如果在框256,观察到的反应与预期反应相同,则行为重放组件126继续进行以确定是否存在针对测试例130中的所选表单的任何更多交互。这由图4的框260指示。如果是,则处理返回框252,在此来自测试例130的另一交互对业务***的第二实现104重放。然而,如果否,则行为重放组件126确定是否存在要针对其验证行为的更多表单。这由框262指示。如果是,则处理返回框236,在此,业务***的第二实现104中的下一表单被选择以用于行为验证。如果否,则反应验证组件132说明性地将故障136或差异138或这两者以及成功的交互记录在数据存储134中。它们还可说明性地被输出,如图1中的框146所示,以供用户观察或由其他***处理。输出验证的结果以用于存储、人类观察或用于其他***由图4中的框264指示。
图5示出其中可以部署***100的各部分的体系结构300的一个实施例,但它们不一定被用于验证业务***的重新实现。相反,图5示出了发现***122可被部署在搜索***302或索引***304或这两者中。搜索***302说明性地包括处理器303、发现***112、搜索引擎314、以及结果排名组件322。处理器303说明性地是具有相关联的存储器和时序电路(未分开示出)的计算机处理器。它可以是搜索***302的功能部件,并且由搜索***302中的其他项激活,并且促进该其他项的功能。
当被部署在搜索***302中时,用户302通过用户界面显示312上的合适的用户输入机制310(如搜索框)说明性地提供用户输入查询308。查询308说明性地被提供给搜索引擎314,搜索引擎314使用它来通过网络320搜索各站点316-318以寻找对应的主题。搜索引擎314说明性地基于用户输入查询308来标识搜索结果。
发现***112随后说明性地发现从中获得搜索结果的站点的行为。这些站点的行为可由结果排名组件322用来输出被返回给用户306的实际结果324。这可按各种不同的方式是有用的。例如,情况可能是用户306正在寻找具有交互式地图的站点或站点本身内的搜索能力。通过发现搜索引擎314(基于主题)从中标识了搜索结果的站点的行为,排名组件322可根据用户306的需求通过将站点的功能性包括在排名确定中来更准确地对搜索结果排名。当然,行为信息也可由搜索***302按各种各样的其他方式来使用。
在另一实施例中,发现***112被部署在索引***304中,索引***304本身包括处理器326、索引生成器328以及爬行器330。索引***304说明性地基于在这些站点中发现的主题和功能性来生成站点316-318的可搜索索引并将其作为索引332存储在数据存储中。处理器326说明性地是具有相关联的存储器和时序电路(未分开示出)的计算机处理器且是***304的功能部件。处理器326说明性地由索引***304中的其他***或项来激活并促进这些其他***或项的功能性。
为了生成索引332,索引***304说明性地使用爬行器330来通过网络320爬行各站点316-318以标识这些站点的主题。发现***112随后发现这些站点上的各表单或页面的功能性并也将该信息提供给索引生成器328。索引生成器328随后不仅基于爬行器330所标识的主题还基于发现***112所指示的站点功能性来对站点316-318进行索引。可搜索索引332可由搜索***302的搜索引擎314使用,或者它可由用户306直接使用,或也可由其他***通过网络320访问。图5中所描述的那些只是出于示例来描述的。
图6是图1中所示的重新实现***100的框图,除了其各元素被置于云计算架构500中。云计算提供了不要求最终用户知晓交付服务的***的物理位置或配置的计算、软件、数据访问和存储服务。在各个实施例中,云计算通过诸如因特网之类的广域网使用合适的协议来交付服务。例如,云计算提供者通过广域网交付应用,并且它们可以通过web浏览器或任何其他计算组件被访问。***100的软件或组件以及相对应的数据可被存储在远程位置处的服务器上。云计算环境中的计算资源可以被整合在远程数据中心位置处或者它们可以是分散的。云计算基础体系结构可以通过共享数据中心来交付服务,即使在用户看来它们是单个访问点。因此,在此所述的组件和功能可以从使用云计算体系结构的远程位置处的服务提供者来提供。可替代地,它们可以从常规的服务器中提供,或者它们可以直接地或以其他方式安装在客户端设备上。
本说明书旨在包括公共云计算和私有云计算两者。云计算(公共和私有两者)提供了基本无缝的资源联营以及对管理和配置底层硬件基础结构的降低的需求。
公共云由供应商管理,并且通常支持使用同一基础结构的多个消费者。此外,与私有云相反,公共云能够将终端用户从管理硬件中释放出来。私有云可由机构本身管理,并且基础结构通常不与其他机构共享。该机构在某种程度上仍然维护着硬件,诸如安装和维修等。
在图6中显示的实施例中,一些项与图1中显示的那些是类似的,并且它们被类似地编号。图6具体地示出重新实现***100位于云502(可以是公共的、私有的或者其中某些部分是公共的而某些部分是私有的组合)中。因此,用户106使用用户设备504通过云502来访问那些***。
图6还描绘了云体系结构的另一实施例。图6示出还构想了***100中的某些元素被置于云502中而其他元素没有被置于云502中。作为示例,数据存储124、134可被置于云502的外部,并且通过云502来访问。在另一实施例中,行为发现组件116也在云502的外部。无论它们位于哪里,它们都可直接由设备504通过网络(广域网或局域网)访问,它们可由服务主存在远程站点处,或者它们可作为通过云来提供或通过驻留在云中的连接服务来访问的服务。本文构想了所有这些体系结构。
还要注意,***100或其部分可被置于各种不同的设备上。这些设备中的某些包括:服务器、台式计算机、膝上型计算机、平板计算机、或其他移动设备,诸如掌上计算机、蜂窝电话、智能电话、多媒体播放器、个人数字助理等。
图7是可被用作其中可部署本***(或其部分)的用户或客户端的手持式设备16的手持式或移动计算设备的一个说明性实施例的简化框图。图8-11是手持式或移动设备的示例。
图7提供了客户端设备16的组件的大体框图,该客户端设备16可以运行***100的组件或者与***100交互、或二者。在设备16中,提供了通信链路13,该通信链路允许手持设备与其它计算设备通信,并且在一些实施例中提供用于诸如通过扫描来自动接收信息的信道。通信链路13的示例包括:红外端口、串行/USB端口、诸如以太网端口之类的电缆网络端口、以及允许通过一个或多个通信协议的通信的无线网络端口,所述通信协议包括作为用于提供对网络的蜂窝接入的无线服务的通用分组无线服务(GPRS)、LTE、HSPA、HSPA+、以及其他3G和4G无线电协议、1Xrtt和短消息服务,并包括提供对网络的本地无线连接的802.11和802.11b(WiFi)协议、和蓝牙协议。
根据其他实施例,应用或***被容纳在连接到可移动安全数字(SD)卡接口15的SD卡上。SD卡接口15和通信链路13沿总线19与处理器17(也可实现来自图1的处理器140)进行通信,该总线19还连接到存储器21和输入/输出(I/O)组件23,以及时钟25和位置***27。
在一个实施例中,提供了I/O组件23以促进输入和输出操作。针对设备16的各个实施例的I/O组件23可以包括:输入组件,比如按钮、触摸传感器、多点触摸传感器、光学或视频传感器、语音传感器、触摸屏、邻近传感器、话筒、倾斜传感器以及重力开关;以及输出组件,比如显示设备、扬声器和或打印机端口。也可以使用其他I/O组件23。
时钟25解说性地包括输出时间和日期的真实时间时钟组件。时钟还可以解说性地为处理器17提供定时功能。
位置***27解说性地包括输出设备16的当前地理位置的组件。这例如可以包括全球定位***(GPS)接收机、LORAN***、航位推算***、蜂窝三角测量***或者其他定位***。这例如还可以包括生成所期望的地图、导航线路和其它地理功能的测绘软件或导航软件。
存储器21存储操作***29、网络设置31、应用33、应用配置设置35、数据存储37、通信驱动程序39以及通信配置设置41。存储器21可以包括所有类型的有形易失性和非易失性计算机可读存储器设备。其还可以包括计算机存储介质(下面描述)。存储器21存储计算机可读指令,所述指令在被处理器17执行时致使处理器根据所述指令执行计算机实现的步骤或功能。应用154或数据存储156中的项例如可驻留在存储器21中。类似地,设备16可具有客户端业务***24,该客户端业务***24可运行各种业务应用或者实现***100的部分或全部或者可以是第一实现102或第二实现104。处理器17可以也被其他组件激活以促进它们的功能性。
网络设置31的示例包括诸如代理信息、因特网连接信息以及测绘之类的事物。应用配置设置35包括为特定企业或用户定制应用的设置。通信配置设置41提供了用于与其他计算机进行通信的参数,并且包括诸如GPRS参数、SMS参数、连接用户名和口令之类的项目。
应用33可以是之前已经存储在设备16上的应用或是在使用期间安装的应用,但是这些应用可以是操作***29的一部分,或者也可以在设备16之外被托管。
图8示出其中设备16是平板计算机600的一个实施例。在图6中,计算机600被示为具有显示屏602。屏幕602可以是触摸屏(使得来自用户手指604的触摸姿势可以用于与应用交互)或者启用笔的界面,其接收来自笔或指示笔的输入。其还可以使用屏幕上虚拟键盘。当然,其还例如可以通过诸如无线链路或USB端口之类的合适的附连机制附连到键盘或其他用户输入设备。计算机600还可以解说性地接收语音输入。
图9和图10提供了可使用的设备16的附加示例,尽管也可以使用其他设备。在图9中,提供功能电话、智能电话或移动电话45作为设备16。电话45包括:一组小键盘47,其用于拨打电话号码;显示器49,其能够显示包括应用图像、图标、网页、照片和视频在内的图像;以及控制按钮51,其用于选择在显示器上示出的项目。电话包括天线53,该天线53用于接收诸如通用分组无线服务(GPRS)和1Xrtt之类的蜂窝电话信号以及短消息服务(SMS)信号。在一些实施例中,电话45还包括容纳安全数字(SD)卡57的SD卡槽55。
图10的移动设备是个人数字助理(PDA)59或多媒体播放器或平板计算设备等等(在此称为PDA 59)。PDA 59包括电感屏61,所述电感屏感测指示笔63(或其他指示器,诸如用户的手指)在该指示笔被置于屏幕之上时的位置。这允许用户在屏幕上选择、突出显示和移动项目以及绘图和书写。PDA 59还包括多个用户输入键或按钮(比如按钮65),其允许用户将显示器61上所显示的菜单选项或其他显示选项滚屏,并且允许用户在没有接触显示器61的情况下改变应用或选择用户输入功能。尽管未被示出,但是PDA 59可以包括允许与其他计算机进行无线通信的内置天线和红外发射机/接收机、以及允许与其他计算设备的硬件连接的连接端口。这样的硬件连接通常是通过经由串行或USB端口连接到其他计算机的支架来完成的。因此,这些连接是非网络连接。在一个实施例中,移动设备59还包括容纳SD卡69的SD卡槽67。
图11类似于图9,不同之处在于电话是智能电话71。智能电话71具有显示图标或图块或其他用户输入机制75的触敏显示器73。机制75可由用户用来运行应用、进行呼叫、执行数据传输操作,等等。一般而言,智能电话71被构建在移动操作***上且提供比功能电话更高级的计算能力和连接性。
注意,设备16的其他形式是可能的。
图12是其中可采用体系结构100(或体系结构100的部分,作为示例)的计算环境的一个实施例。参考图12,用于实现一些实施例的示例性***包括计算机810形式的通用计算设备。计算机810的组件可以包括,但不限于,处理单元820(可以包括处理器140、303或326)、***存储器830和将包括***存储器在内的各种***组件耦合至处理单元820的***总线821。***总线821可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、***总线和使用各种总线体系结构中的任一种的局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和***部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。参考图1描述的存储器和程序可被部署在图12的对应部分中。
计算机810通常包括各种计算机可读介质。计算机可读介质可以是能由计算机810访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质不同于且不包括已调制数据信号或载波。计算机存储介质包括硬件存储介质,该硬件存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法和技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机810访问的任何其它介质。通信介质通常具体化计算机可读指令、数据结构、程序模块或传输机制中的其他数据,并包括任何信息递送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述任何组合也应该包括在计算机可读的介质范围内。
***存储器830包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)831和随机存取存储器(RAM)832。包含诸如在启动期间帮助在计算机810内的元件之间传输信息的基本例程的基本输入/输出***833(BIOS)通常存储在ROM 831中。RAM832通常包含处理单元820可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图12示出了操作***834、应用程序835、其他程序模块836和程序数据837。
计算机810还可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图12示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器841,从可移动、非易失性磁盘852中读取或向其写入的磁盘驱动器851,以及从诸如CD ROM或其他光学介质等可移动、非易失性光盘856中读取或向其写入的光盘驱动器855。可在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器841通常通过诸如接口840之类的不可移动存储器接口连接到***总线821,并且磁盘驱动器851和光盘驱动器855通常通过诸如接口850之类的可移动存储器接口连接到***总线821。
作为替换或补充,本文所述的功能可至少部分地由一个或多个硬件逻辑组件来执行。例如、但非限制,可使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上******(SOC)、复杂可编程逻辑器件(CPLD)、等等。
以上讨论并在图12中示出的驱动器及其相关联的计算机存储介质为计算机810提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。在图12中,例如,硬盘驱动器841被示为存储操作***844、应用程序845、其他程序模块846和程序数据847。注意,这些组件可与操作***834、应用程序835、其它程序模块836和程序数据837相同,也可与它们不同。在此操作***844、应用程序845、其它程序模块846以及程序数据847被给予了不同的编号,以至少说明它们是不同的副本。
用户可以通过诸如键盘862、话筒863以及诸如鼠标、跟踪球或触摸垫等定点设备861等输入设备来将命令和信息输入至计算机810中。其它输入设备(未示出)可以包括操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些以及其它输入设备通常通过耦合到***总线的用户输入接口860连接到处理单元820,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其它接口和总线结构来连接。视觉显示器891或其他类型的显示设备也经由诸如视频接口890之类的接口连接至***总线821。除了监视器以外,计算机还可包括诸如扬声器897和打印机896之类的其它***输出设备,它们可通过输出***接口895来连接。
计算机810使用到诸如远程计算机880等一个或多个远程计算机的逻辑连接在网络化环境中操作。远程计算机880可以是个人计算机、手持设备、服务器、路由器、网络PC、对等设备或其它常见的网络节点,且一般包括以上关于计算机810描述的多个或所有的元件。图12中所描绘的逻辑连接包括局域网(LAN)871和广域网(WAN)873,但还可包括其他网络。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机810通过网络接口或适配器870连接到LAN871。当在WAN联网环境中使用时,计算机810通常包括调制解调器872或用于通过诸如因特网等WAN 873建立通信的其它手段。调制解调器872可以是内置的或外置的,可经由用户输入接口860或其它适当的机制连接到***总线821。在联网环境中,相关于计算机810所示的程序模块或其部分可被存储在远程存储器存储设备中。作为示例,而非限制,图12示出了远程应用程序885驻留在远程计算机880上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其它手段。
还应注意,本文描述的不同实施例可以按不同的方式来组合。即,一个或多个实施例的各部分可以与一个或多个其他实施例的各部分组合在一起。本文中构想了所有这些。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。
Claims (8)
1.一种计算机实现的方法,包括:
接收访问策略控制输入;
基于所述访问策略控制输入选择计算机***的第一实现中的表单;
标识所选表单上的交互式用户界面元素;
标识每一所标识的用户界面元素的状态;
选择所标识的用户界面元素;
在所选用户界面元素上执行交互操作来标识所述第一实现的行为;
基于所述第一实现的行为自动生成至少一个测试例;
基于检测到的所述计算机***的第二实现对于在所述第二实现上执行所述至少一个测试例的反应来确定所述第二实现的验证;以及
基于所述第二实现的所述验证来提供输出。
2.如权利要求1所述的计算机实现的方法,其特征在于,标识交互式用户界面元素包括:
基于所述访问策略控制输入来标识所选表单上的预定义的一组用户界面元素。
3.如权利要求1所述的计算机实现的方法,其特征在于,选择所标识的用户界面元素包括:
响应于与先前选择的用户界面元素交互来基于所述第一实现的所标识的行为选择给定用户界面元素。
4.如权利要求1所述的计算机实现的方法,其特征在于,与所选用户界面元素交互包括:
基于所述访问策略控制输入对所选用户界面元素执行预定义的一组交互操作中的一个交互操作。
5.如权利要求1所述的计算机实现的方法,其特征在于,标识所述第一实现的所述行为包括:
响应于与所选用户界面元素的交互来标识所选表单上的反应。
6.如权利要求5所述的计算机实现的方法,其特征在于,还包括:
选择所述第二实现中的与所述第一实现中的所选表单相对应的对应表单;
选择所述对应表单上的与所选用户界面元素相对应的对应用户界面元素;
对所述对应用户界面元素执行所述交互操作;
响应于对所述对应用户界面元素执行所述交互操作来标识所述第二实现中的所述对应表单上的反应;
响应于与所选用户界面元素的交互来确定所述第二实现中的所述对应表单上的所述反应是否与所选表单上的反应相同或等同;以及
生成指示所述反应是否相同的比较指示。
7.一种发现***,包括:
接收策略控制输入的发现控制组件;
行为发现组件,所述行为发现组件被配置成:
基于所述策略控制输入选择计算机***的第一实现中的表单;
标识所选表单上的交互式用户界面元素;
标识每一所标识的用户界面元素的状态;
选择所标识的用户界面元素;以及
在所选用户界面元素上执行交互操作以发现所述第一实现的行为;
验证***,所述验证***被配置成基于所发现的所述第一实现的行为自动生成至少一个测试例并使用所述测试例对所述计算机***的第二实现执行交互、将所述第一实现的行为与所述第二实现响应于所述测试例的行为进行比较以及生成行为方面差异的指示。
8.一种储存计算机可执行指令的计算机可读介质,所述计算机可执行指令在被计算机执行时,使得所述计算机执行一种计算机实现的方法,所述方法包括:
接收访问策略控制输入;
基于所述访问策略控制输入从计算机***的第一实现自动地选择表单;
标识所选表单上的交互式用户界面元素;
标识每一所标识的用户界面元素的状态;
选择所标识的用户界面元素;
在所选用户界面元素上自动执行交互操作来标识所述第一实现的行为;
基于所述第一实现的行为自动生成至少一个测试例;
基于检测到的所述计算机***的第二实现对于在所述第二实现上执行所述至少一个测试例的反应来确定所述第二实现的验证;以及
基于所述第二实现的所述验证来提供输出。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/894,445 | 2013-05-15 | ||
US13/894,445 US9395890B2 (en) | 2013-05-15 | 2013-05-15 | Automatic discovery of system behavior |
PCT/US2014/037941 WO2014186429A1 (en) | 2013-05-15 | 2014-05-14 | Automatic discovery of system behavior |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105264492A CN105264492A (zh) | 2016-01-20 |
CN105264492B true CN105264492B (zh) | 2018-12-07 |
Family
ID=50943601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480027738.5A Active CN105264492B (zh) | 2013-05-15 | 2014-05-14 | ***行为的自动发现 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9395890B2 (zh) |
EP (1) | EP2997465A1 (zh) |
CN (1) | CN105264492B (zh) |
WO (1) | WO2014186429A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USD732568S1 (en) * | 2013-08-09 | 2015-06-23 | Microsoft Corporation | Display screen with graphical user interface |
USD738902S1 (en) * | 2013-08-09 | 2015-09-15 | Microsoft Corporation | Display screen with graphical user interface |
USD732064S1 (en) * | 2013-08-09 | 2015-06-16 | Microsoft Corporation | Display screen with graphical user interface |
USD739870S1 (en) * | 2013-08-09 | 2015-09-29 | Microsoft Corporation | Display screen with graphical user interface |
USD732065S1 (en) * | 2013-08-09 | 2015-06-16 | Microsoft Corporation | Display screen with graphical user interface |
USD732066S1 (en) * | 2013-08-09 | 2015-06-16 | Microsoft Corporation | Display screen with graphical user interface |
USD778310S1 (en) | 2013-08-09 | 2017-02-07 | Microsoft Corporation | Display screen with graphical user interface |
USD771111S1 (en) | 2013-08-30 | 2016-11-08 | Microsoft Corporation | Display screen with graphical user interface |
USD745877S1 (en) * | 2013-10-17 | 2015-12-22 | Microsoft Corporation | Display screen with graphical user interface |
US9563422B2 (en) * | 2014-01-08 | 2017-02-07 | International Business Machines Corporation | Evaluating accessibility compliance of a user interface design |
US10140102B2 (en) | 2014-08-21 | 2018-11-27 | International Business Machines Corporation | Evaluating accessibility compliance of a hybrid user interface design |
US9959197B2 (en) * | 2015-08-31 | 2018-05-01 | Vmware, Inc. | Automated bug detection with virtual machine forking |
US10169188B2 (en) | 2015-11-18 | 2019-01-01 | International Business Machines Corporation | Runtime evaluation of user interfaces for accessibility compliance |
CN105740153A (zh) * | 2016-02-29 | 2016-07-06 | 网易(杭州)网络有限公司 | 云测试方法及装置 |
CN106411878B (zh) * | 2016-09-23 | 2020-02-14 | 杭州华为数字技术有限公司 | 访问控制策略的制定方法、装置及*** |
US10083015B2 (en) | 2016-12-15 | 2018-09-25 | International Business Machines Corporation | Mobile accessibility evaluation from application binary |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8185877B1 (en) * | 2005-06-22 | 2012-05-22 | Jpmorgan Chase Bank, N.A. | System and method for testing applications |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037321A1 (en) | 2001-01-29 | 2003-02-20 | Matt Bowen | System, method and article of manufacture for extensions in a programming lanauage capable of programming hardware architectures |
US7644368B2 (en) * | 2005-06-29 | 2010-01-05 | Sap Ag | System and method for regression tests of user interfaces |
US20070168981A1 (en) | 2006-01-06 | 2007-07-19 | Microsoft Corporation | Online creation of object states for testing |
GB0625578D0 (en) * | 2006-12-21 | 2007-01-31 | Ibm | Method and system for graphical user interface testing |
US8185917B2 (en) * | 2008-02-27 | 2012-05-22 | Accenture Global Services Limited | Graphical user interface application comparator |
US9098635B2 (en) * | 2008-06-20 | 2015-08-04 | Cadence Design Systems, Inc. | Method and system for testing and analyzing user interfaces |
US8595236B2 (en) * | 2009-11-05 | 2013-11-26 | International Business Machines Corporation | Searching existing user interfaces to enable design, development and provisioning of user interfaces |
US9170847B2 (en) * | 2010-01-08 | 2015-10-27 | Sauce Labs, Inc. | Real time verification of web applications |
US8966447B2 (en) | 2010-06-21 | 2015-02-24 | Apple Inc. | Capturing and displaying state of automated user-level testing of a graphical user interface application |
WO2012073197A1 (en) | 2010-11-30 | 2012-06-07 | Rubric Consulting (Pty) Limited | Methods and systems for implementing a test automation framework for gui based software applications |
US9208054B2 (en) * | 2011-02-14 | 2015-12-08 | Fujitsu Limited | Web service for automated cross-browser compatibility checking of web applications |
US8448146B2 (en) * | 2011-03-31 | 2013-05-21 | Infosys Limited | Generation of functional tests for re-hosted applications |
US9116717B2 (en) | 2011-05-27 | 2015-08-25 | Cylance Inc. | Run-time interception of software methods |
-
2013
- 2013-05-15 US US13/894,445 patent/US9395890B2/en active Active
-
2014
- 2014-05-14 CN CN201480027738.5A patent/CN105264492B/zh active Active
- 2014-05-14 EP EP14730695.5A patent/EP2997465A1/en not_active Ceased
- 2014-05-14 WO PCT/US2014/037941 patent/WO2014186429A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8185877B1 (en) * | 2005-06-22 | 2012-05-22 | Jpmorgan Chase Bank, N.A. | System and method for testing applications |
Non-Patent Citations (1)
Title |
---|
"Automating regression testing for evolving GUI software";A Memon 等;《Journal of Software Evolution & Process》;20050124;第1卷(第17期);第27-64页 * |
Also Published As
Publication number | Publication date |
---|---|
EP2997465A1 (en) | 2016-03-23 |
CN105264492A (zh) | 2016-01-20 |
US9395890B2 (en) | 2016-07-19 |
WO2014186429A1 (en) | 2014-11-20 |
US20140344732A1 (en) | 2014-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105264492B (zh) | ***行为的自动发现 | |
CN106068521B (zh) | 关于合规策略更新的应用的通信状态 | |
CN105229634B (zh) | 数据迁移框架 | |
CN106471517B (zh) | 对显示元素的因用户而异的可视化 | |
CN105612497B (zh) | 所选更新在多个环境中的自动安装 | |
CN105612495B (zh) | 在计算机***中安装所选更新之后自动解决冲突 | |
CN106605234B (zh) | 使用近场通信与许可控制共享内容 | |
CN105723337B (zh) | 用于从交互式开发环境递增地编译软件制品的方法和*** | |
RU2673008C2 (ru) | Опыт поддержки пользователей с автоматически генерируемой виртуальной средой | |
CN105830019B (zh) | 用于基本模型定制的集成环境 | |
CN105612496B (zh) | 用于基于存储的生命周期信息来自动推荐更新的方法和*** | |
CN104508678A (zh) | 商业数据***中针对承租人的安全和数据隔离 | |
CN108345543A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN105229678A (zh) | 进程建模和界面 | |
US11042258B2 (en) | Online wizard for facilitating methodology implementation | |
CN105229614A (zh) | 多承租人数据中心内的诊断存储 | |
CN104737124B (zh) | 用于提交服务的业务元数据的门户 | |
CN106164851B (zh) | 基于对已实现的过程进行过程建模的计算机***的自动配置 | |
CN106062793B (zh) | 已被呈现的企业内容的检索 | |
US20140279823A1 (en) | Lifecycle product analysis | |
CN105408922A (zh) | 过程流基础结构和配置界面 | |
CN106663090A (zh) | 在编译期间将呈现元数据转换成浏览器可渲染格式 | |
CN105229638A (zh) | 作为对内容的收集的贡献者的自动化的库管理员 | |
CN104769579A (zh) | 文档管理***中的列表管理 | |
CN106462415A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |