System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向软件集成开发系统的界面测试工具和方法技术方案_技高网

一种面向软件集成开发系统的界面测试工具和方法技术方案

技术编号:41218233 阅读:3 留言:0更新日期:2024-05-09 23:39
发明专利技术涉及一种面向软件集成开发系统的界面测试工具和方法。现有基于模型的界面自动化测试技术采用基于阈值的整页比较来建立页面等价,无法识别Web应用中近似重复界面,不适应Web应用的动态变化,造成生成的回归测试套件失效。本发明专利技术将界面分割成独立片段的分层结构,采用基于界面片段的状态抽象,从界面的结构和可视化两个方面比较片段相似性以建立界面等价关系;基于深度优先搜索和回溯策略进行模型推断,刻画并构造界面模型;使用Web应用界面模型得到界面事件序列,通过模型迭代探索路径生成界面测试用例。该工具和方法能够检测在片段级别的界面等价关系,而不需要人工参与和设置阈值,使得模型构造具有更高的准确性,测试用例具有更广泛的覆盖性,并且能够提高测试效率。

【技术实现步骤摘要】

本专利技术涉及一种面向软件集成开发系统的界面测试工具和方法,属于软件。


技术介绍

1、在web应用程序的界面测试实践中,回归测试是一项成本高昂的活动,需要开发人员使用编程和记录/重放工具的来手动创建测试套件。此外,维护测试套件成本很高,应用程序的微小变化也会导致许多测试中断。研究表明,对应用程序用户界面的简单修改也会导致30-70%的测试更改,当测试维护成本变得难以承受时,整个测试套件都会被放弃。由于现代web应用界面的发布周期较短,并且手工编写测试用例的维护成本高昂,回归测试套件的自动生成是可行的解决方案。web应用界面测试用例生成技术的有效性受限于获取被测应用模型刻画的准确性和完整性,然而为复杂web应用界面手动构建模型较为困难。自动化模型推理技术通过触发用户操作,并记录web应用程序中界面之间的相应转换,以构建基于图形的界面模型。

2、然而,web应用程序在功能方面具有彼此相似的近似重复界面,使得模型推断的冗余度较高,并且对应用的描述不够充分。另外,回归测试断言难以检测到意外的应用程序行为,同时不能识别不影响功能的微小变化。因此,模型推理和测试断言生成都需要合适的应用抽象以产生有效、健壮的测试套件。现有技术生成回归测试,将测试期间看到的整个界面与先前版本记录的界面实例进行比较。这样的整页比较技术难以处理近似重复现象,使测试套件变得脆弱。本专利技术发现一个页面不是一个单一的功能实体,因此当比较不同界面时,将界面分割成单独的片段有助于确定等价功能。


技术实现思路

1、本专利技术的目的:现有基于模型的界面自动化测试技术采用基于阈值的整页比较来建立页面等价,无法识别web应用中近似重复界面,不适应web应用的动态变化,造成生成的回归测试套件失效。

2、本专利技术的原理:本专利技术将界面分割成独立片段的分层结构,采用基于界面片段的状态抽象,从界面的结构和可视化两个方面比较片段相似性以建立界面等价关系;基于深度优先搜索和回溯策略进行模型推断,刻画并构造界面模型;使用web应用界面模型得到ui事件序列,通过模型迭代探索路径生成ui测试用例。

3、本专利技术的效果:该工具和方法能够检测在片段级别的界面等价关系,而不需要人工参与和设置阈值,使得模型构造具有更高的准确性,测试用例具有更广泛的覆盖性,并且能够提高测试效率和准确性。

4、本专利技术技术解决方案:一种面向软件集成开发系统的界面测试工具和方法,其特点在于实现步骤如下:

5、1、基于片段的界面抽象

6、本专利技术把界面作为具有层次结构的片段集合,其中每个片段都是界面的一部分,代表着其所有子片段所提供的功能集合。

7、将界面p定义为三元组(d,v,froot),其中,d是页面的动态dom,v是页面快照,froot是没有父节点的完整界面p的根片段。

8、froot具有dom树中的所有节点,因此比较两个界面与比较其根片段具有相同效果。片段f定义为三元组(n,v,{f1,f2,…}),其中,n表示f的dom节点集合,v是f的快照,每个fi是一个子片段。

9、2、片段相似性比较。

10、使用片段对页面进行表示,通过比较组成页面的片段来对界面进行分类,根据片段的相似性将片段对划分为完全不同、完全相同、结构相似和数据相似等四种类型。

11、基于片段的分类考虑了结构和可视化两个方面,通过结合结构和可视化分析识别近似重复。在结构方面,在删除文本内容和属性之后,比较片段的dom子树上的节点;在可视化方面,使用片段的本地化快照,从而忽略dom中没有可视化影响的更改。此外,通过比较可视化可以识别javapcript和cpp等动态web元素的变化。

12、如果两个片段的结构和可视化特性完全相同,则片段将其分类为克隆;当片段在可视化上不同但在结构上相同时,则这些片段是结构相似类型的近似重复;当结构改变,但web元素的添加和删除与已有web元素等价,则这些片段是结构相似类型的近似重复。

13、3、基于片段的模型推理

14、自动化模型推理是迭代过程,通过触发可执行动作a的事件来执行给定web应用程序的功能,并捕获界面转换结果a,建立图形化界面模型m。

15、界面转换操作ax表示为一个三元组(pprc,ax,pdpt),其中,界面pprc,执行动作ax,转换为界面pdpt。

16、应用模型m表示为有向图({p1,…,pn},{a1,…,am}),其中,pa表示界面a,ax表示界面转移,表示图中节点间的有向边。

17、界面抽象函数paf表示为(d,p1,p2,t),其中d计算两个页面p1和p2之间的相似度函数,t是d输出阈值,设置相似度是否在t之下。

18、模型推断技术依赖于界面抽象函数paf,决定了两个给定界面p1和p2间的相似度,以避免捕获和探索的模型存在重复。

19、web应用程序的模型推断步骤,遵循深度优先的探索策略。在第一次迭代中,使用浏览器中的页面url加载应用程序,并将相应的界面作为根节点存储在模型中。此后,在web应用程序上执行的每个操作都可以是探索步骤或回溯步骤。在每个探索步骤中,调用当前界面的未探索操作,使用paf判断结果界面不同于模型中的每个现有界面,则将结果界面添加到现有模型中。然后,将观察到的界面转换记录为模型中源界面和目标界面之间的有向边。当前界面被完全探索时,本次迭代结束。下一次迭代,从现有界面开始选择模型中具有未探索的可执行动作。为了达到选定的界面,使用已经记录在模型中的转换来执行回溯操作。在对源界面执行动作之后,使用分类函数算法将得到的浏览器界面与模型中的所有现有界面进行比较。如果任何现有界面的分类是克隆或数据相似时,则丢弃新界面,否则将其添加到模型中当该没有未探索的可执行动作需要执行时,则探索操作终止。

20、4、检测数据流片段

21、在模型推理过程中,在每个探索步骤之后,通过将浏览器结果界面与现有界面进行比较,决定是否将结果浏览器界面保留在模型中。对给定片段进行分类采用递归操作比较相应的子片段。本专利技术改进递归算法,不是只存储每对片段的比较结果,而是使用基于映射的实现将唯一的片段作为映射键,将重复片段列表作为值。可以提高执行性能,从而避免子问题结果的重新计算。每当一个新的界面添加到模型中时,通过将新界面中的每个片段与现有唯一片段进行比较来更新映射。如果新界面中的任何片段不是现有唯一片段的克隆片段,将作为新的唯一片段添加到映射中,否则将被添加为发现是其克隆的唯一片段的副本。

22、此外,如果发现一个片段是映射中至少一个其他片段的数据近似副本,则判定该片段为数据流动片段。首先,识别动态dom中特定于被测试web应用程序的部分,可能会发生数据更改,数据流片段的任何克隆数据也是流动的。

23、5、测试用例生成

24、ui测试用例是推断web应用程序模型中得到的ui事件序列。使用探索路径来生成测试用例,这些路径本质上是推断的本文档来自技高网...

【技术保护点】

1.一种软件集成开发系统界面测试方法,特征在于实现步骤如下:

【技术特征摘要】

1.一种软件集成开发系统界面测...

【专利技术属性】
技术研发人员:李扬陈杉杉张鼎王晨程秦和珂
申请(专利权)人:神州数码系统集成服务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1