[go: up one dir, main page]

CN107430590A - 数据比较 - Google Patents

数据比较 Download PDF

Info

Publication number
CN107430590A
CN107430590A CN201580072453.8A CN201580072453A CN107430590A CN 107430590 A CN107430590 A CN 107430590A CN 201580072453 A CN201580072453 A CN 201580072453A CN 107430590 A CN107430590 A CN 107430590A
Authority
CN
China
Prior art keywords
data
diversity
historical
rules
test
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.)
Granted
Application number
CN201580072453.8A
Other languages
English (en)
Other versions
CN107430590B (zh
Inventor
德罗尔·萨罗尼
埃兰·巴沙尔
埃拉德·马勒基
罗伊·瓦勒施泰因
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.)
Antite Software Co Ltd
Original Assignee
Antite Software Co Ltd
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 Antite Software Co Ltd filed Critical Antite Software Co Ltd
Publication of CN107430590A publication Critical patent/CN107430590A/zh
Application granted granted Critical
Publication of CN107430590B publication Critical patent/CN107430590B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

在一个实施方式中,测试数据比较系统能够包括:历史引擎,用于基于用户界面的组件标识符收集测试数据并且维护测试数据日志;比较引擎,用于根据第一数据和第二数据的比较识别多样性程度,并且当多样性程度达到多样性规则的多样性水平时确定在第一位置处输入的第二数据相比在第一位置处输入的第一数据具有多样性,以及建议引擎,用于基于比较来使得消息生成。

Description

数据比较
背景技术
软件开发商通常指定软件开发周期到测试开发中的软件的阶段。如果软件复杂度增加,则软件测试变得更复杂。例如,已经开发了测试软件以使用脚本运行软件上的可重复的测试以快速验证产品的质量从而满足基于敏捷开发的最后期限。使用人工用户交互来测试软件的组件的人工测试继续关于探索性测试,诸如测试端到端使用情况。
附图说明
图1和图2是描绘按照所公开的示例的示例性测试数据比较系统的框图。
图3描绘能够按照所公开的示例实施各种测试数据比较系统的示例性环境。
图4描绘了按照所公开的示例性测试数据比较系统的示例性模块。
图5和图6是描绘按照所公开的示例的数据多样性识别的示例性方法的流程图。
具体实施方式
在以下描述和图中,描述了测试数据比较装置、系统,和/或数据多样性识别的方法的一些示例性实施方式。人工测试的长处是发现不是自动测试的一部分的功能或使用情况。对于人工测试的另一个示例性目的,人工测试者能够验证使用情况或测试方案。尽管人工测试者的工作可以是重复的,人工测试者应当以各种方式挑战被测应用以提供不同的验证并且确保测试的质量覆盖是健壮的。
如下所述的各种示例涉及当由人工测试者输入的测试数据不足够多样时向人工测试者提供警报。使用数据多样性规则,人工测试者的测试动作能够与先前已经被执行的动作相比较以识别测试动作是否是足够多样(例如,足够不同)以至于测试动作会提高被测应用的综合质量覆盖。如果测试数据的比较确定测试动作太类似于先前测试的动作,那么能够将警报呈现给用户,使得测试动作能够被更换为具有更多多样性的动作。
如在本文所使用的,术语“包括”、“具有”和其变体的意义与术语“包含”或其合适的变体的意义相同。此外,如在本文所使用的术语“基于”意指“至少部分地基于”。因此,被描述为基于某激励的特征能够仅仅基于该激励或者包括该激励的刺激的组合。此外,如在本文所使用的术语“维护”(和其变体)意指“创建、删除、添加、移除、访问、更新、管理和/或修改”。
图1和图2是描绘按照所公开的示例的示例性测试数据比较系统100和200的框图。参考图1,图1的示例性测试数据比较系统100通常包括数据存贮器102、历史引擎104、比较引擎106,以及建议引擎108。通常,建议引擎108能够基于经由比较引擎106作出的测试数据与由历史引擎104维护的历史数据的比较来提供消息。
历史引擎104表示收集用户界面上的测试数据并且维护测试数据日志的任意电路或者电路和可执行指令的组合。例如,历史引擎104能够是维护数据存贮器102的电路和可执行指令的组合,该数据存贮器102跟踪在一位置输入的历史数据并且把历史测试数据存储在日志中的。测试数据能够包括与在用户界面上使用测试数据的地方相关联的位置数据,诸如在由人工测试者确定的位置输入的人工测试数据。历史引擎104基于在其上使用人工测试数据的用户界面的组件标识符来维护日志。例如,日志能够包括点击按钮的条目以及当“约翰”被输入到名字文本域框中时的另一个条目,其中通过与按钮相关联的组件标识符来表示关于点击的条目,并且通过与文本域框相关联的组件标识符来表示关于“约翰”的条目。对于另一个示例,日志能够包括关于已经在测试期间被选择的下拉菜单的每个项的条目,其中通过串“ddmenu001”来识别每个条目以将每个条目指定为与第一下拉菜单相关联。人工测试数据日志能够包括在第一位置处使用的第一数据并且第一位置能够是用户界面组件的位置或以另外方式与组件标识符相关联(例如,被指配给组件标识符)。
组件标识符表示用户界面的任意部分。例如,用户界面的各部分能够包括用户界面组件,诸如窗口、标号、文本框、选择框、下拉菜单、网格、或者按钮。对于另一个示例,组件标识符能够表示用户界面上的点、用户界面的区域、用户界面的路径或者用于生成用户界面的呈现资源。组件标识符能够是能够进行标识的任意合适的表示,诸如号码、字符、串、色彩、符号、标号或其他值。
历史引擎104能够收集信息并且将信息编译在有用的组织中以允许比较引擎106比较将来的测试数据,诸如数据条目。例如,历史引擎104能够识别有关的测试动作并且聚合在与有关的测试动作相关联的位置处输入的多个数据。对于另一个示例,历史引擎104能够基于事件的位置把用户界面(“UI”)上的多个事件关联到第一组件标识符。历史测试数据能够来自多个源。例如,历史引擎104能够通过跟踪在UI上输入的来自多个源的数据来聚结在第一位置处输入的来自多个源的多个数据并且使在第一位置处输入的历史数据与UI组件相关联。源的示例包括此类多个用户、多个数据中心以及自动测试系统。多个源中的每个源能够提供与组件标识符相关联的事件或代表性数据,其中每个组件标识符表示在UI的特定位置的UI组件。
比较引擎106表示基于多样性规则和第一数据与第二数据的比较来确定在第一位置处输入的第二数据相比在第一位置处输入的第一数据是否具多样性的任意电路或者电路和可执行指令的组合。例如,比较引擎106能够表示电路或者电路和可执行指令的组合以在测试会话期间识别何时在第一位置手动输入数据、识别手动输入的数据与先前输入的数据(即,历史数据)之间的多样性的程度、并且当多样性的程度实现多样性规则的多样性水平时确定手动输入的数据相比先前输入的数据具多样性。数据量、数据类别以及多样性的水平可以基于多样性规则而改变。例如,如果对电子邮件文本框执行测试,则关于测试不同的域的多样性规则将识别[johndoe@anexampledomain.com]可能类似于[janesmith@anexampledomain.com],这是因为多样性规则的条件是检查与“@”符号后面的域有关的串。在该示例中,下面讨论建议引擎108将引发一消息以鼓励用户尝试不同的域,诸如[asecondexampledomain.com]或[anexampledomain.net]。多样性规则的条件定义数据具多样性的需求。例如,条件能够定义满足多样性规则的条件的手动输入的数据和先前输入的数据之间的多样性的水平并且基于条件的满足来执行动作(例如,生成消息)。例如,可能需要特定数量的字符类似以满足条件。对于另一个示例,右击能够被设置为区别于左击而满足多样性条件。
比较引擎106能够基于测试数据的特性作出多样性确定。在先前示例中,特性能够被标识为表示电子邮件地址的“@”符号。对于另一个示例,特性能够是具有可识别模式(诸如正规表达式)的文本或信息一致性,诸如地址应当以号码开始或测试动作是否应当包括具有特定串长度的文本域条目。特性能够是能够在数据当中被区分的任意字符、符号、值、模式或分类。能够基于所识别的特性的信息分类来选择多样性规则。例如,被输入的信息的类型能够基于所输入的数据的语义意义和/或使用被分类,并且当多样性规则和与语义意义和/或使用相关联的信息的类型的类相关联时,能够从多样性规则的数据库中选择多样性规则。例如,城市的三个字母的机场代码能够被设置为满足相比城市的书面名称缺乏多样性的条件,这是因为书面名称和机场代码表示相同的意义。示例性多样性规则包括:将数据集合的第一长度与历史数据的第二长度相比较的数据长度规则、将数据集合的第一数据类型与历史数据的第二数据类型相比较的数据类型规则、将数据集合的第一语言与历史数据的第二语言相比较的语言规则、将数据集合与潜在的安全性问题相比较的安全性规则、当UI组件是口令字段时识别口令字段数据的强度的口令规则、将数据集合的第一字符与历史数据的第二字符相比较的非法字符规则、将数据集合与商业上指定的定义相比较的行政规则以及相对时间范围比较数据集合的时间规则。
比较引擎106能够识别测试数据的特性、基于识别到的特性来选择多样性规则、识别测试数据和历史数据之间的关系、并且基于该关系来确定比较是否实现多样性阈值(即,被比较的数据集合之间的目标多样性水平)。能够基于关于测试数据和历史数据的识别的特性的分析来识别该关系。数据特性关系能够是关于第一数据集合的特性如何不同于第二数据集合的任意分析。示例性关系包括:被比较的数据确切地相同的表示(即,没有差别)、被比较的数据以不提高多样性的方式改变的表示(即,文本“aa”和“bb”是不同的,但其不能提高尝试两个串的测试的健壮性)、以及被比较的数据无关的表示(即,在识别到的特性中存在差别)。关系能够表示在每个数据集合中观察到的所识别的特性之间的多样性的程度。例如,关系能够描述特性的差别,以及基于多样性规则描述差别是细微的还是实质的。以这样的方式,能够将关系与多样性阈值水平相比较。例如,多样性阈值水平能够是多样性规则的条件,并且当关系满足(或超过)多样性阈值水平时,条件被满足。
建议引擎108表示基于测试数据与历史数据的比较来生成(和呈现)消息的任意电路或者电路和可执行指令的组合。例如,当相关联的多样性规则的条件被满足时,能够生成关于特定特性的警报。消息能够包括任意合适的字符集合和/或图像以鼓励在被测应用上使用的测试数据的多样性。例如,消息能够从多样化测试数据的一般请求或提供应当输入什么数据的特定示例的范围中变化。消息能够包括建议改变的特定特性或多样性规则。例如,当多选组件(诸如下拉菜单或者诸如单选按钮的集合之类的组件的组)的项被再次选择用于测试时,建议引擎108能够生成诸如“该项已经在先前被测试。请选择不同的项”的消息。
在能够提供示例的情况下,预先确定的示例能够被包括在消息中或者能够通过建议引擎108生成示例。建议引擎108能够基于多样性规则选择示例性模板,并且基于至少一个当前输入的数据和先前输入的数据从示例性模板生成多样性数据示例。示例性模板表示具有变量的串以基于历史数据或潜在输入的数据来更换字符。
对于能够帮助人工测试者的消息的另一个示例,建议引擎108能够选择人工测试数据日志的子集来显示。能够基于时间范围和测试数据与子集的相似性的程度中的至少一个来选择子集。例如,能够显示满足多样性规则的最近输入的数据或能够显示最靠近的历史数据(例如,最匹配测试数据的来自日志的数据)。
建议引擎108能够引起在第一位置处输入的数据的可见指示。例如,当悬停在UI组件上时,能够指示测试的程度或者在第一位置测试的数据日志。可见指示能够基于包括时间范围和多样性规则的特性的多样性类别的准则集合。例如,热图能够被覆盖在UI上以指示与UI的其他区域相比较具有较小多样性的已经被测试的区域。对于另一个示例,在UI组件上的悬停能够示出相关联的UI组件的多样性类别和/或多样性程度。
数据存贮器102能够包含由引擎104、106以及108利用的信息。例如,数据存贮器102能够存储人工测试数据日志、组件标识符、多样性规则、建议消息模板,等等。建议消息模板表示可由建议引擎108使用的产生关于数据的多样性的消息的数据集合。例如,建议消息模板能够包括文本和段以插入人工测试数据日志以及如何使测试数据多样化的(例如,使用以上讨论的示例性模板的)示例,其中文本能够提供关于数据的多样性的陈述。
图2描绘了示例性测试数据比较系统200。系统200包括操作地耦接到处理器资源222的存储器资源220。处理器资源222能够被操作地耦接到数据存贮器202。在一些示例中,数据存贮器202能够与图1的数据存贮器102相同。
参考图2,存储器资源220能够包含可由处理器资源222执行的指令集合。当指令集合由处理器资源222执行时,指令集合可操作以用于使处理器资源222执行系统200的操作。存储在存储器资源220上的指令集合能够被表示为历史模块204、比较模块206,以及建议模块208。历史模块204、比较模块206,以及建议模块208表示当被执行时分别以与图1的历史引擎104、比较引擎106,以及建议引擎108相同的方式起作用的程序指令。处理器资源222能够执行模块204、206、208,和/或能够执行系统200的模块当中的和/或与系统200的模块相关联的任意其他合适的操作。例如,处理器资源222能够执行模块以识别用于测试UI的第一位置处的UI组件的数据集合的特性、基于数据集合的特性从多个多样性规则中选择多样性规则、基于在第一位置处输入的历史数据将数据集合与多样性规则的条件相比较,并且当数据集合满足所选择的多样性规则的条件的多样性水平时生成将呈现给用户的消息。对于另一个示例,处理器资源222能够执行模块以跟踪从多个数据源在第一位置处输入的历史数据、基于与UI组件的标识符相关联的多个事件使输入的历史数据与UI组件相关联,以及把历史数据存储在与处理器资源222耦接的数据存贮器202中。对于又一个示例,处理器资源222能够执行模块以辨识在文本域UI组件被输入的测试数据集合的文本、基于历史数据的子集与被输入的文本的相似性来识别历史数据的子集、基于多样性规则使消息包括历史数据的子集以及多样化数据的示例(其中消息在第一位置被显示在UI上),以及引起数据集合的与在第一位置处输入的历史数据相比较的多样性程度的指示。
尽管关于图2和其他示例性实施方式图示出和讨论了这些特定模块以及各种其他模块,但模块的其他组合或子组合能够被包括在其他实施方式内。换言之,尽管在图2中图示出的并且其他的示例性实施方式中讨论的模块执行在本文讨论的示例中的特定功能,但能够在不同的模块或在模块的组合完成、实施或实现这些和其他功能。例如,被单独图示和/或讨论的两个或更多模块能够被组合成执行关于两个模块讨论的功能的模块。作为另一个示例,能够在不同的模块或者多个不同的模块执行在关于这些示例所讨论的一个模块执行的功能。图4描绘了功能如何能够被组织到模块中的又一个示例。
处理器资源222能够是能够处理(例如,计算)指令的任意合适的电路,诸如能够从存储器资源220调取指令,以及执行那些指令的一个或多个处理元件。例如,处理器资源222能够是通过取出、解码,以及执行模块204、206,和208来实现数据多样性识别的至少一个中央处理单元(“CPU”)。示例性处理器资源222包括至少一个CPU、基于半导体的微处理器、专用集成电路(“ASIC”)、现场可编程门阵列(“FPGA”),等等。处理器资源222能够包括被集成到单个设备中或分布在多个设备上的多个处理元件。处理器资源222能够串行地、并行地或部分地同时串行和并行地处理指令。
存储器资源220和数据存贮器202表示存储由系统200利用和/或产生的数据的介质。介质能够是能够电子地存储诸如系统200的模块和/或由系统200使用的数据之类的数据的任意非暂时性介质或非暂时性介质的组合。例如,介质能够是与诸如信号之类的暂时的传输介质不同的存储介质。介质能够是机器可读的,诸如计算机可读的。介质能够是能够包含(即,存储)可执行指令的电子、磁性、光学或其他物理存贮设备。存储器资源220可被称为存储当由处理器资源222执行时使处理器资源222实施图2的系统200的功能的程序指令。存储器资源220能够与处理器资源222被集成在相同的设备中或其能够是单独的,但是可由设备和处理器资源222访问。存储器资源220和/或数据存贮器202能够分布在设备上。存储器资源220和数据存贮器202能够表示相同的物理介质或单独的物理介质。数据存贮器202的数据能够包括在本文提及的数据和/或信息的表示。
在本文的讨论中,图1的引擎104、106和108以及图2的模块204、206和208已经被描述为电路或者电路和可执行指令的组合。能够以许多方式实施此类部件。参见图2,可执行指令能够是处理器可执行指令,诸如存储在作为有形、非暂时性计算机可读存储介质的存储器资源220上的程序指令,并且电路能够是电子电路,诸如用于执行那些指令的处理器资源222。存在于存储器资源220上的指令能够包括由处理器资源222直接地执行的任意指令集合(诸如机器代码)或间接地执行的任意指令集合(诸如脚本)。
在一些示例中,可执行指令能够是当被安装时能够由处理器资源222执行以实施系统200的安装数据包的一部分。在此类示例中,存储器资源220能够是便携式介质,诸如由能够从其下载安装数据包并且对安装数据包进行安装的诸如图3的服务设备334之类的计算机设备所维护的光盘、数字视频光盘、闪盘驱动或存储器。在另一个示例中,可执行指令能够是已经被安装的一个或多个应用的一部分。存储器资源220能够是诸如只读存储器(“ROM”)的非易失性存储器资源,诸如随机存取存储器(“RAM”)的易失性存储器资源、存贮设备或其组合。存储器资源220的示例性形式包括静态RAM(“SRAM”)、动态RAM(“DRAM”)、电可擦除可编程ROM(“EEPROM”)、闪速存储器,等等。存储器资源220能够包括诸如“硬盘驱动器”(“HD”)、固态驱动器(“SSD”)或光驱之类的集成存储器。
图3描绘了其中能够按照所公开的示例实施的各种示例性测试数据比较系统300的示例性环境390。示例性环境390被示出为包括用于识别测试数据的多样性的示例性系统300。(在本文关于图1和2描述的)系统300通常能够表示识别测试数据多样性的任意电路或者电路和可执行指令的组合。系统300能够包括分别与图1的历史引擎104、比较引擎106和建议引擎108相同的历史引擎304、比较引擎306和建议引擎308,并且为简要起见不重复相关联的描述。系统300还能够包括显示引擎310。显示引擎310表示准备建议消息以便诸如经由API被传送到呈现机制的电路或者电路和可执行指令的组合。例如,显示引擎310能够以XML格式或其他web格式准备消息。如图3中所示,引擎304、306、308和310能够被集成到诸如服务设备334之类的计算设备中。引擎304、306、308和310能够经由电路来集成或作为安装的指令被集成到计算设备的存储器资源中。
示例性环境390能够包括计算设备,诸如管理员设备332、服务设备334和用户设备336。能够执行第一指令集合以经由管理员设备332执行应用344的功能。例如,应用344能够在管理员设备332上开发和修改并且被存储到诸如服务设备334之类的web服务器上。数据集合340能够包括表示被执行的功能的数据并且能够被存储在数据存贮器302上。服务设备334通常表示对从用户设备336接收到的网络请求进行响应的(虚拟的或实体的)任意计算设备。例如,服务设备334能够操作电路和可执行指令的组合以响应于关于页面或应用的功能的请求来提供网络数据包。用户设备336通常表示传送网络请求并且接收和/或处理对应的响应的任意计算设备。例如,浏览器应用可以被安装在用户设备336上以从服务设备334接收网络数据包并且利用数据包的有效负载以经由浏览器应用显示页面的组件。
计算设备能够位于单独的网络330或同一网络330的一部分上。示例性环境390能够包括任意合适数量的网络330并且任意数量的网络330能够包括云计算环境。云计算环境可以包括计算资源的虚拟共享池。例如,网络330能够是包括虚拟计算资源的分布式网络。系统300和计算设备的任意合适的组合能够是虚拟资源共享池的虚拟资源实例。本文的系统300的引擎和/或模块能够“在云上”存在和/或执行(例如,在虚拟资源共享池上存在和/或执行)。
链路338通常表示线缆、无线连接、光纤连接或经由远程通信链路的远程连接、红外线链路、射频链路中的一个或其组合或者是提供电子通信的系统的任意其他连接器。链路338能够至少部分地包括内联网、因特网、或者两者的组合。链路338还可以包括中间代理、路由器、交换机、负载平衡器,等等。
参考图1-3,图1的引擎104、106和108和/或图2的模块204、206和208能够分布在设备332、334、336或其组合上。引擎和/或模块能够完成或帮助完成在描述另一个引擎和/或模块时所执行的操作。例如,图3的建议引擎308能够请求、完成或者执行关于图1的建议引擎108以及图1的历史引擎104和比较引擎106所描述的方法或操作。因此,尽管各种引擎和模块在图1和2中被示出为单独的引擎,但在其他实施方式中,多个引擎和/或模块的功能可以被实施为单个引擎和/或模块或者被划分在各种引擎和/或模块中。在一些示例中,系统300的引擎能够执行与图4-6结合描述的示例性方法。
图4按照所公开的示例性测试数据比较系统描绘了示例性模块。参考图4,图4的示例性模块通常包括历史模块404、比较模块406,和建议模块408。图4的示例模块能够被实施在诸如图3的服务设备334之类的计算设备上。
测试数据输入458(例如,先前输入的历史测试数据)能够由执行历史模块404的处理器资源来接收。历史模块404表示类似于图2的历史模块204的程序指令。历史模块404能够包括诸如聚合模块440和关联模块442之类的程序指令以促进人工测试数据日志的维护。聚合模块440能够表示当由处理器资源执行时使处理器资源聚结来自多个源460的在第一位置处输入的多个数据的程序指令。关联模块442能够表示当由处理器资源执行时使处理器资源将多个事件462关联到与位于UI的第一位置的第一UI组件相关联的第一组件标识符的程序指令。
测试数据输入472(例如,新输入的测试数据)能够由执行比较模块406的处理器资源来接收。比较模块406表示类似于图2的比较模块206的程序指令。比较引擎406能够包括诸如辨识模块444和分析模块446之类的程序指令以促进确定测试数据输入472相比于历史测试数据输入464是否具多样性。辨识模块444表示当由处理器资源执行时使处理器资源识别测试数据输入458的特性的程序指令。分析模块446表示当由处理器资源执行时使处理器资源进行以下操作的程序指令:基于通过执行辨识模块444的处理器资源所识别的特性来选择多样性规则476、基于关于测试数据输入472和历史数据464两者的识别到的特性的分析来识别测试数据输入472和第二数据输入之间的关系、以及确定比较是否实现由多样性规则476设置的多样性阈值。执行比较模块406的处理器资源能够向执行建议模块408的处理器提供多样性规则476的结果。
建议模块408表示类似于图2的建议模块208的程序指令。建议模块408能够包括诸如采样模块448、示例模块450和视图模块452之类的程序指令,以促进与多样性规则476相关联的消息的生成。采样模块448表示当由处理器资源执行时使处理器资源基于时间范围和测试数据输入472与子集466的相似性的程度中的至少一个来选择要显示的人工测试数据(例如,历史数据464)的日志的子集的程序指令。示例模块448表示当由处理器资源执行时使处理器资源基于多样性规则476选择示例模板468并且基于测试数据输入472和日志子集466中的至少一个从示例模板生成多样数据示例的程序指令。视图模块452表示当由处理器资源执行时使处理器资源基于准则集合470引起在第一位置处输入的数据的可见指示的程序指令。准则集合470能够包括时间范围、多样性水平和/或多样性规则476的特性的多样性类别。执行建议模块408的处理器资源能够生成输出474,该输出474能够包括建议消息(包括示例和日志子集466)和可见指示。
图5和图6是按照所公开的示例描绘了数据多样性识别的示例性方法的流程图。参考图5,数据多样性识别的示例性方法通常能够包括辨识检验数据、根据与UI组件相关联的测试事件汇编历史数据、基于多样性规则来确定检验数据与历史数据的相似性、并且生成关于数据相似性的消息。
检验数据能够作为在UI的组件上应用的数据。例如,检验数据能够包括输入到文本框中的文本、与点击按钮相关联的位置数据、与窗口上的手势相关联的数据、列表中的项的选择、选择单选按钮、与网格交互,等等。能够由人工测试者使用测试工具来提供检验数据以执行关于被测应用的测试动作的会话。
在框502,辨识检验数据。例如,测试数据比较系统能够在在测试会话期间辨识数据何时被输入到被测应用的文本域中。检验数据能够包括要在UI的UI组件上测试的数据,诸如被输入的数据(例如,并且没有完成或提交的数据)或者提交后的测试数据。例如,检验数据的辨识能够发生在完成UI表格之前,其中表格包括文本域,并且检验数据包括文本域的潜在输入的文本数据(诸如自动完成所输入的数据的附件)。检验数据的源能够是执行探索性测试的人工测试者。
在框504,根据与UI组件相关联的测试事件汇编历史数据。例如,能够通过查询关于特定时间范围内的与特定UI组件标识符相关联的事件的数据贮存器来从数据存贮器中调取历史数据。对于另一个示例,能够从测试数据日志收集历史数据或者在被测应用的测试会话期间捕捉历史数据。
在框506,确定检验数据和历史数据之间的相似性。例如,能够基于检验数据与多样性规则的条件的比较来识别检验数据和历史数据之间的相似性,其中多样性规则的条件依赖于在UI组件上执行的测试的历史数据。历史数据能够被存储在数据存贮器中,并且多样性规则能够是包括条件和结果的数据结构,其中结果是基于条件满足而执行的动作。
在框508,生成关于检验数据和历史数据的相似性的消息。当多样性规则的条件实现时,能够基于多样性规则的结果生成消息。
图6包括类似于图5的块的框并且提供附加的框和细节。具体地,图6描绘了大体关于收集历史数据、确定多样性规则、使消息呈现的附加的框和细节。框602、604、608和610类似于图5的框502、504、506和508,并且为简要起见,不重复它们的相应的描述。
在框602,历史数据的汇编能够包括收集、编译和组织用于与将来的测试数据比较的测试事件,如由图6的框616和618所例示的。在框616,聚合来自多个源的历史数据。例如,能够从多个人工测试者和/或使用脚本的自动测试收集和编译历史数据。在框618,根据聚合的历史数据关联与UI组件相关联的事件。以这样的方式,能够通过UI组件标识符来组织包含日志的数据存贮器。
在框606,定义时间范围。时间范围能够包括已经被输入到人工测试数据日志中的记录数据的任意时间段。时间范围能够被定义以确定要与检验数据进行比较的历史数据的范围。例如,时间范围能够被限制到从上星期起的数据。时间范围能够用于通过把相对历史数据的确定限制在时间范围内来确定历史数据与检验数据的相似性。
在框608,执行检验数据和历史数据的相似性的确定。在框620,识别检验数据的特性。例如,特性能够是文本特性和语义特性中的至少一个。特性能够是检验数据的信息数据类型。例如,关于将在文本块被输入的信息的类型的确定能够被识别并且用于识别与该类型的信息相关联的多样性规则,诸如保证电话号码包括至少七个数字并且仅仅号码。在框622,基于识别的特性从数据存贮器的规则数据库中选择多样性规则。在框624,关于多样性规则的条件是否达到的确定。例如,能够基于如何向历史数据应用检验数据的特性的比较来确定规则的条件。
在框612,使得经由UI呈现在框610生成的消息。例如,消息能够被呈现在UI组件的位置(例如,在UI组件上、在UI组件上方或者在UI组件下方)。在框614,能够使与相似性的程度相关联的消息和可视指示符呈现给人工测试者。可视指示符能够经由人工测试者的计算设备被呈现在被测应用的UI上或以另外方式可视地传送到人工测试者。
尽管图4-6的流程图图示出执行的特定次序,但执行的次序可以不同于所图示出的那些。例如,可以相对于所示出的次序将框的执行的次序搅乱。而且,可以并行地或在部分同时发生的情况下执行连续地示出的框。所有此类变化处于本说明书的范围内。
已经参考上文示例示出和描述了本说明书。然而,应当理解,在不背离在所附权利要求中的精神和范围的情况下,可以作出其他形式、细节,和示例。权利要求中的词“第一”、“第二”、或相关项的词的使用不用来将权利要求要素限制到次序或位置,而是仅仅用于区分单独的权利要求要素。

Claims (15)

1.一种测试数据比较系统,包括:
历史引擎,用于:
收集在用户界面上使用的测试数据,所述测试数据包括位置数据;
基于所述用户的组件标识符维护存储测试数据日志的数据存贮器,所述测试数据日志包括在与第一组件标识符相关联的第一位置处使用的第一数据;
比较引擎,用于:
在测试会话期间识别何时在所述第一位置处人工输入第二数据;
根据所述第一数据和所述第二数据的比较识别多样性的程度;并且
当所述多样性的程度达到多样性规则的多样性水平时,确定所述第二数据相比所述第一数据具有多样性;以及
建议引擎,用于:
基于所述比较来使得消息生成;并且
使得所述消息被呈现在所述用户界面上。
2.根据权利要求1所述的系统,其中所述比较引擎用于:
识别所述第二数据的特性;
基于识别到的所述特性来选择所述多样性规则;
基于对关于所述第一数据和关于所述第二数据的识别到的特性的分析来识别所述第一数据和所述第二数据之间的关系;并且
基于所述关系确定所述比较是否达到所述多样性水平。
3.根据权利要求1所述的系统,其中所述历史引擎用于:
聚结来自多个源的在所述第一位置处输入的多个数据;并且
将多个事件关联到所述第一组件标识符,所述第一组件标识符表示在所述第一位置处的第一用户界面组件。
4.根据权利要求1所述的系统,其中所述建议引擎用于:
基于所述多样性规则选择示例性模板;并且
基于所述第一数据和所述第二数据中的至少一个从所述示例性模板生成多样性数据示例。
5.根据权利要求1所述的系统,其中所述建议引擎用于:
基于时间范围和所述第二数据与所述日志的子集的相似性的程度中的至少一个来选择要显示的所述子集;并且
基于包括所述时间范围和所述多样性规则的特性的多样性类别的准则集合来引起在所述第一位置处输入的数据的可见指示。
6.一种包括可由处理器资源执行的指令集合的非暂时性计算机可读存储介质,用于:
识别用于测试在用户界面(“UI”)的第一位置处的UI组件的数据集合的特性;
基于所述数据集合的所述特性从多个多样性规则中选择多样性规则;
基于在所述第一位置处输入的历史数据将所述数据集合与所述多样性规则的条件相比较;并且
当所述数据集合满足所述多样性规则的所述条件的多样性水平时,生成要呈现给用户的消息。
7.根据权利要求6所述的介质,其中所述指令集合进一步可由所述处理器资源执行以用于:
跟踪来自多个数据源的在所述第一位置处输入的历史数据,所述多个数据源中的第一数据源由人工测试者输入;
基于与所述UI组件的标识符相关联的多个事件使在所述第一位置处输入的历史数据与所述UI组件相关联;并且
将所述历史数据存储在耦接到所述处理器资源的数据存贮器中。
8.根据权利要求7所述的介质,其中所述UI组件是文本域,所述数据集合是文本,并且所述指令集合进一步可由处理器资源执行以用于:
辨识在所述文本域处输入的文本;
基于所述历史数据的子集与所输入的文本的相似性来识别所述历史数据的所述子集;并且
基于所述多样性规则使所述消息包括所述历史数据的所述子集和多样性数据的示例。
9.根据权利要求6所述的介质,其中所述指令集合可由所述处理器资源来执行以用于:
使所述消息显示在所述UI上的所述第一位置处;并且
引起所述数据集合的与在所述第一位置处输入的所述历史数据相比较的多样性程度的指示。
10.根据权利要求6所述的介质,其中,所述多样性规则基于识别到的所述特性的信息分类来选择,并且所述多样性规则是包括以下规则的多个规则中的至少一个:
将所述数据集合的第一长度与所述历史数据的第二长度相比较的数据长度规则;
将所述数据集合的第一数据类型与所述历史数据的第二数据类型相比较的数据类型规则;
将所述数据集合的第一语言与所述历史数据的第二语言相比较的语言规则;
将所述数据集合与潜在的安全性问题相比较的安全性规则;
当所述UI组件是口令字段时识别口令字段数据强度的口令规则;
将所述数据集合的第一字符与所述历史数据的第二字符相比较的非法字符规则;
将所述数据集合与商业上指定的定义相比较的行政规则;以及
相对时间范围比较所述数据集合的时间规则。
11.一种数据多样性识别的方法,包括:
辨识要在用户界面(“UI”)组件上测试的检验数据,所述检验数据的源是人工测试者;
根据与所述UI组件相关联的测试事件来汇编历史数据,所述历史数据被存储在数据存贮器中;
基于所述检验数据与多样性规则的条件的比较来确定所述检验数据与所述历史数据的相似性,所述多样性规则基于满足所述条件提供结果,并且所述条件定义所述比较被满足的多样性水平;并且
基于所述多样性规则的条件被达到时的结果,生成关于所述数据的所述相似性的消息。
12.根据权利要求11所述的方法,其中,确定所述检验数据与所述历史数据的相似性包括:
识别所述检验数据的特性,所述特性是文本特性和语义特性中的至少一个;
基于所述特性从规则数据库中选择所述多样性规则;以及
基于应用于所述历史数据的所述检验数据的所述特性来确定所述多样性规则的所述条件被满足。
13.根据权利要求12所述的方法,其中所述特性是所述检验数据的信息数据类型。
14.根据权利要求11所述的方法,包括:
聚合来自多个源的所述历史数据;并且
基于与所述UI组件相关联的测试事件来关联所述历史数据。
15.根据权利要求11所述的方法,包括:
定义所述历史数据的时间范围以与所述检验数据进行比较;
使所述消息经由所述UI呈现给所述人工测试者;
使与相似性的程度相关联的可视指示符呈现给所述人工测试者;并且
其中,辨识所述检验数据发生在完成表格之前,所述UI组件包括所述表格的文本域,并且所述检验数据包括所述文本域的潜在输入的文本数据。
CN201580072453.8A 2015-01-12 2015-01-12 用于数据比较的系统和方法 Active CN107430590B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/010972 WO2016114748A1 (en) 2015-01-12 2015-01-12 Data comparison

Publications (2)

Publication Number Publication Date
CN107430590A true CN107430590A (zh) 2017-12-01
CN107430590B CN107430590B (zh) 2020-12-08

Family

ID=56406149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580072453.8A Active CN107430590B (zh) 2015-01-12 2015-01-12 用于数据比较的系统和方法

Country Status (3)

Country Link
US (1) US10719482B2 (zh)
CN (1) CN107430590B (zh)
WO (1) WO2016114748A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017205832A1 (de) * 2017-04-05 2018-10-11 Siemens Aktiengesellschaft Verfahren zum Parametrieren eines Feldgeräts sowie parametrierbares Feldgerät
US10748035B2 (en) * 2018-07-05 2020-08-18 Mitsubishi Electric Research Laboratories, Inc. Visually aided active learning for training object detector
US12125054B2 (en) 2018-09-25 2024-10-22 Valideck International Corporation System, devices, and methods for acquiring and verifying online information
US11093365B2 (en) * 2019-07-15 2021-08-17 Bank Of America Corporation System for splicing and formatting code via machine learning
CN110457228B (zh) * 2019-08-22 2022-12-20 携程计算机技术(上海)有限公司 接口返回报文的比对方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1684034A (zh) * 2004-04-13 2005-10-19 微软公司 用以执行命令绑定的数据绑定机制的应用
CN101194233A (zh) * 2005-04-18 2008-06-04 捷讯研究有限公司 测试无线组件应用程序的系统和方法
US20100114939A1 (en) * 2008-10-24 2010-05-06 Schulman Elad Software test management system and method with facilitated reuse of test components
CN103793326A (zh) * 2014-01-28 2014-05-14 福建星网锐捷网络有限公司 组件测试方法及装置
CN103810085A (zh) * 2012-11-08 2014-05-21 百度在线网络技术(北京)有限公司 一种通过数据比对进行模块测试的方法及装置
CN104111885A (zh) * 2013-04-22 2014-10-22 腾讯科技(深圳)有限公司 接口测试结果的校验方法和装置

Family Cites Families (41)

* 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
US5600789A (en) * 1992-11-19 1997-02-04 Segue Software, Inc. Automated GUI interface testing
US5758062A (en) * 1996-04-30 1998-05-26 Oracle Corporation Method and apparatus for regression testing of application logic
US6272506B1 (en) 1997-09-12 2001-08-07 Doxis, Llc Computerized verification form processing system and method
US6061643A (en) * 1998-07-07 2000-05-09 Tenfold Corporation Method for defining durable data for regression testing
US6460147B1 (en) * 1998-12-10 2002-10-01 International Business Machines Corporation System and method for automated testing of software systems utilizing statistical models
US6823478B1 (en) * 2000-09-12 2004-11-23 Microsoft Corporation System and method for automating the testing of software processing environment changes
US20050081104A1 (en) 2003-09-25 2005-04-14 Borislav Nikolik Test diversity software testing method and apparatus
US7490319B2 (en) * 2003-11-04 2009-02-10 Kimberly-Clark Worldwide, Inc. Testing tool comprising an automated multidimensional traceability matrix for implementing and validating complex software systems
US8239826B2 (en) * 2004-07-16 2012-08-07 International Business Machines Corporation Automating modular manual tests including framework for test automation
US8015239B2 (en) * 2004-10-19 2011-09-06 Ebay Inc. Method and system to reduce false positives within an automated software-testing environment
WO2006047741A2 (en) * 2004-10-27 2006-05-04 Bae Systems Land & Armaments L.P. Software test environment for regression testing ground combat vehicle software
US8185877B1 (en) * 2005-06-22 2012-05-22 Jpmorgan Chase Bank, N.A. System and method for testing applications
US7925659B2 (en) * 2006-10-09 2011-04-12 Sap Ag Business process change analysis and test case adaptation based on change detection
US8024453B2 (en) * 2006-11-17 2011-09-20 International Business Machines Corporation Monitoring performance of dynamic web content applications
US20080148235A1 (en) * 2006-12-15 2008-06-19 Microsoft Corporation Runtime inspection of user interfaces
US8239835B2 (en) * 2007-05-07 2012-08-07 Infosys Limited Automated software testing framework using independent test scripts
US8595559B2 (en) * 2007-08-23 2013-11-26 International Business Machines Corporation Method and apparatus for model-based testing of a graphical user interface
CA2729304C (en) * 2008-06-30 2016-12-13 Ab Initio Technology Llc Data logging in graph-based computations
US8549483B1 (en) * 2009-01-22 2013-10-01 Intuit Inc. Engine for scalable software testing
AT10759U3 (de) * 2009-04-23 2010-07-15 Avl List Gmbh Verfahren und vorrichtung zur verifizierung eines automatisierungssystems
US8539282B1 (en) * 2009-06-30 2013-09-17 Emc Corporation Managing quality testing
JP5556086B2 (ja) 2009-08-25 2014-07-23 日本電気株式会社 二重化システム、及び、二重化方法
US8745727B2 (en) 2010-04-23 2014-06-03 Verizon Patent And Licensing Inc. Graphical user interface tester
US20110289489A1 (en) * 2010-05-20 2011-11-24 Verizon Patent And Licensing Inc. Concurrent cross browser testing
US9213625B1 (en) * 2010-07-27 2015-12-15 Intuit Inc. Method and apparatus for performing automated user-interface layout testing
US20120253728A1 (en) * 2011-04-01 2012-10-04 Verizon Patent And Licensing Inc. Method and system for intelligent automated testing in a multi-vendor, multi-protocol heterogeneous environment
US9396094B2 (en) * 2011-07-21 2016-07-19 International Business Machines Corporation Software test automation systems and methods
US8788885B1 (en) * 2011-09-23 2014-07-22 Amazon Technologies, Inc. Intermediary for testing content and applications
US8819492B2 (en) * 2011-11-03 2014-08-26 Tata Consultancy Services Limited System and method for testing and analyses of the computer applications
US8612806B2 (en) * 2011-12-16 2013-12-17 Sap Ag Systems and methods for recording user interactions within a target application
US8930758B2 (en) * 2012-01-16 2015-01-06 Siemens Aktiengesellschaft Automated testing of mechatronic systems
US8887135B2 (en) * 2012-03-30 2014-11-11 NIIT Technologies Ltd Generating test cases for functional testing of a software application
WO2013188540A1 (en) * 2012-06-12 2013-12-19 Grant Street Group, Inc. Practical natural-language human-machine interfaces
EP2698955A1 (en) 2012-08-13 2014-02-19 Wildfire Pte Ltd Method and system for sending an alert message to a user
US20140052757A1 (en) * 2012-08-17 2014-02-20 International Business Machines Corporation Techniques providing a software fitting assessment
US9501390B1 (en) * 2013-01-02 2016-11-22 Amazon Technologies, Inc. Enhancing automated mobile application testing
US9336127B2 (en) 2013-02-20 2016-05-10 Kony, Inc. Exposing method related data calls during testing in an event driven, multichannel architecture
US9417994B2 (en) * 2014-04-08 2016-08-16 Turnkey Solutions, Corp. Software test automation system and method
US9424167B2 (en) * 2014-05-21 2016-08-23 Cgi Technologies And Solutions Inc. Automated testing of an application system
US9558089B2 (en) * 2014-11-12 2017-01-31 Intuit Inc. Testing insecure computing environments using random data sets generated from characterizations of real data sets

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1684034A (zh) * 2004-04-13 2005-10-19 微软公司 用以执行命令绑定的数据绑定机制的应用
CN101194233A (zh) * 2005-04-18 2008-06-04 捷讯研究有限公司 测试无线组件应用程序的系统和方法
US20100114939A1 (en) * 2008-10-24 2010-05-06 Schulman Elad Software test management system and method with facilitated reuse of test components
CN103810085A (zh) * 2012-11-08 2014-05-21 百度在线网络技术(北京)有限公司 一种通过数据比对进行模块测试的方法及装置
CN104111885A (zh) * 2013-04-22 2014-10-22 腾讯科技(深圳)有限公司 接口测试结果的校验方法和装置
CN103793326A (zh) * 2014-01-28 2014-05-14 福建星网锐捷网络有限公司 组件测试方法及装置

Also Published As

Publication number Publication date
US10719482B2 (en) 2020-07-21
CN107430590B (zh) 2020-12-08
WO2016114748A1 (en) 2016-07-21
US20170277710A1 (en) 2017-09-28

Similar Documents

Publication Publication Date Title
US11748095B2 (en) Automation of task identification in a software lifecycle
US20220100647A1 (en) System and Method for Automated Software Testing
JP7398068B2 (ja) ソフトウェアテスト
US20240037020A1 (en) System and Method for Automated Software Testing
JP7385740B2 (ja) ユーザ入力を使用したgui要素の取得プロセスの改善
US10459835B1 (en) System and method for controlling quality of performance of digital applications
US10169853B2 (en) Score weights for user interface (UI) elements
US9454466B2 (en) Explaining partially illegal combinations in combinatorial models
US20110016452A1 (en) Method and system for identifying regression test cases for a software
WO2018235252A1 (ja) 分析装置、ログの分析方法及び記録媒体
KR101588027B1 (ko) 소프트웨어 현지화를 위한 테스트 케이스 생성 장치 및 방법
WO2019142345A1 (ja) セキュリティ情報処理装置、情報処理方法及び記録媒体
CN107430590B (zh) 用于数据比较的系统和方法
US10365995B2 (en) Composing future application tests including test action data
US20180024912A1 (en) Application Testing System and Method
US20240354789A1 (en) Quantitative split driven quote segmentation
KR102390280B1 (ko) 무기체계 시스템의 개발 수명주기에서의 사이버보안 적용을 위한 자동화 장치 및 방법
US10867249B1 (en) Method for deriving variable importance on case level for predictive modeling techniques
CN113505329A (zh) 数据可视化处理方法及装置
US20080195453A1 (en) Organisational Representational System
EP3671467A1 (en) Gui application testing using bots
JP7656013B1 (ja) 情報処理装置、情報処理方法及び情報処理システム
Brüseke et al. PBlaman: performance blame analysis based on Palladio contracts
CN111989662A (zh) 自主混合分析建模平台
CN120336191A (zh) 应用程序的测试方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Utah, USA

Applicant after: Weifosi Co., Ltd

Address before: California, USA

Applicant before: Antiy Software Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant