当前位置: 首页 > 专利查询>张泽祎专利>正文

一种黑盒回归测试方法技术

技术编号:16269852 阅读:31 留言:0更新日期:2017-09-22 21:31
本发明专利技术涉及软件测试技术领域,特别是一种黑盒回归测试方法,包括以下步骤,步骤S101:源代码解析;步骤S102:界面元素分析;步骤S103:交互关系分析;步骤S104:测试执行过程跟踪;步骤S105:用例覆盖分析;步骤S106:测试用例约简;步骤S107:功能差异检测;步骤S108:功能变更影响分析;步骤S109:回归测试用例筛选;步骤S110:影响域覆盖分析。本发明专利技术能够有效避免回归测试的重复、冗余和遗漏,大大提高回归测试的充分性、有效性和测试效率。

【技术实现步骤摘要】
一种黑盒回归测试方法
本专利技术涉及软件测试
,特别是一种黑盒回归测试方法。
技术介绍
软件功能是软件价值的重要体现,软件功能变更是软件开发过程中一项难以避免且经常发生的行为,对于每一次功能变更,都需要通过回归测试验证其正确性。特别是对于GUI类应用软件,这类软件采用人机交互方式,为用户提供了一种快捷、简便的软件操作方式,GUI类软件在给用户带来直观、简便、快捷的同时,其本身所具有的输入/输出图形化、事件驱动、事件触发随机性、多任务以及消息传递等特性,使软件功能测试以及回归测试工作面临许多新的挑战。挑战1:如何获取软件所具有的功能GUI类软件包含大量的界面,每一个界面中又包含很多菜单和按钮,由此构成不同的软件功能。对于GUI类软件而言,每一个功能路径对应着一个软件功能,在测试过程中,至少要覆盖这些功能路径。然而,由于软件功能路径繁多,仅凭手工方式难以确定被测软件所具有的全部功能,因此也就无法对软件功能进行全面、有效的测试。挑战2:软件功能变更及其影响域难以确定目前,大多数GUI类软件是采用快速原型方法开发的,软件版本变更频繁,在软件生存周期内,需要进行多次回归测试,由于GUI类软件功能复杂,难以用人工方式识别软件功能变更以及功能变更对软件其他功能带来的影响,测试人员只能凭借经验对软件进行回归测试,这样,难免造成回归测试的重复、冗余和遗漏,影响回归测试的质量和效率。挑战3:如何获知测试覆盖情况GUI类软件采用事件驱动方式执行,用户通过与控件的交互来触发相应的事件进而与内部代码及业务逻辑发生交互,因此,传统测试中的诸如分支覆盖、语句覆盖等经典的覆盖准则很难适用于GUI类软件测试中,无法有效指导测试。另一方面,GUI类软件功能是通过界面体现的,用户通过点击界面元素实现软件功能,因此,如何通过功能覆盖来衡量测试充分性是测试人员面临的另一大难题。挑战4:如何约简测试用例在软件测试过程中,测试人员需要设计大量的测试用例,从功能覆盖的角度而言,这些测试用例难免存在重复和冗余,即不同测试用例所覆盖的功能相同,对于这些测试用例,需要进行约简,以减少测试用例执行和维护成本。挑战5:如何筛选回归测试用例在前一轮的测试过程中,测试人员设计了大量的测试用例,在回归测试阶段,测试人员需要根据软件功能变更及其影响情况,从已有测试用例集中筛选出回归测试用例,由于缺乏有效的方法,测试人员难以从大量测试用例中筛选出符合要求的回归测试用例。近年来,软件的功能越来越丰富,复杂度也越来越高。随之,软件系统功能测试的测试用例数成倍增长,执行一次全集回归测试的时间大幅度增加,已经成为影响产品快速发布的重要因素之一。尤其在升级维护项目中,需求一般来源于客户,具有需求变化快、时间要求紧、绝大部分代码属于继承等特点,原有的穷举所有测试用例的测试策略存在的周期长、效率低的问题愈加凸显。凭经验选择部分子集进行回归测试,虽然可以大幅度的减少测试时间,但是测试质量无法保证,存在很大的漏测、重复测风险。回归测试优化技术的重点是如何选择有效的回归测试集来保证测试有效性并提高测试效率。如何平衡成本与风险,业内进行了众多优化技术研究,大部分都集中在对每一个测试需求对应的多个测试用例约简技术上,例如粒子群优化算法、启发式算法、遗传算法、基于数据依赖及控制依赖的用例选择方法等,对测试范围优化技术鲜有涉及。但上述测试方法及装置存在两点问题:一是,对系统测试者的能力要求很高,或者需要掌握用户的使用场景,或者需要对被测软件的设计非常了解,清楚了解每个测试用例在代码中的执行路径,这是大多数系统测试人员都无法掌握的。二是,对测试环境和测试资源的要求较高,尤其是嵌入式系统,测试资源紧张、测试手段匮乏,很难实施。中国专利技术专利申请CN106354631A公开了一种快速软件系统回归测试的方法,包括:根据代码差异以及使用关系,获得全部变化影响的用户接口全集,确定系统回归测试黑盒测试用例范围;根据变化单元的复杂度及用户接口使用变化单元的情况,计算用户接口的优先级,确定黑盒测试用例的执行顺序;依据上述测试范围和优先级顺序实施测试。目前,在回归测试领域,有代表性的黑盒回归测试工具是MercuryInteractive公司的WinRunner和IBMHPQuickTestProfessional(QTP)。这些工具采用捕获/回放技术,通过捕获测试人员的操作,生成测试脚本。在回归测试时,通过回放测试脚本程序,对修改后的软件进行测试。这种方法采用的是重新运行所有测试用例的策略,不能针对软件的修改情况选择回归测试用例,难免执行不必要的测试用例,并且,在回放测试脚本时,由于软件版本的变更,经常导致脚本程序中断,测试人员需要花费大量的时间调试测试脚本,从而,大大降低了测试效率,因此,尽管这些工具有很独特的理念,但实际使用效果不佳。此外,这类工具不具备功能变更标识、功能变更影响分析、测试用例优化以及回归测试用例优选等功能,不能满足回归测试需要。另外一个在回归测试领域研究较多的是基于代码的回归测试,这类方法主要是通过分析代码,找出受代码改动影响的代码部分,这部分代码是回归测试时需要重新测试的代码。这类方法只适合于白盒测试,由于软件代码与软件功能不存在直接的一一对应关系,因此,这类方法不适合于对软件进行功能回归即黑盒回归测试。
技术实现思路
本专利技术需要解决的技术问题是提供一种快速、准确、高效进行黑盒回归测试的方法和系统。为解决上述技术问题,本专利技术的一种黑盒回归测试方法,包括以下步骤,步骤S101:源代码解析,通过类型解析和对源代码的词法、语法分析得到代码的语法树和类型系统;步骤S102:界面元素分析,扫描源代码抽象语法树,以窗口类定义为基本单元,分析被测软件的界面构成,形成界面元素树模型;步骤S103:交互关系分析,扫描源代码抽象语法树,并依据所使用的类型系统对调用逻辑、事件流进行分析,形成被测软件界面元素调用关系模型;步骤S104:测试执行过程跟踪,捕获用例执行过程中所输入的数据以及点击的界面元素,形成用例执行路径数据;步骤S105:用例覆盖分析,将用例执行数据与界面模型进行匹配,得到每个用例执行后被覆盖的界面元素和路径,并以图形方式显示于界面上;步骤S106:测试用例约简,分析一组用例所覆盖的界面元素和路径,采用基于调用路径和基于界面元素覆盖数量两种算法剔除其中冗余的测试用例,形成测试用例集;步骤S107:功能差异检测,通过对两个软件版本的静态分析结果进行分析,找出两个版本间的UI差异和UI变更位置;步骤S108:功能变更影响分析,依据找到的变更点,采用回溯迭代算法,在界面元素静态结构模型上查找依赖项,形成从变更点出发的变更影响范围即影响域;步骤S109:回归测试用例筛选:以变更影响域为目标函数,采用覆盖的变更功能优先、关键度优先以及路径长度优先策略,从约简后的测试用例集中查找出能够覆盖变更影响域的最少个数测试用例;步骤S110:影响域覆盖分析,依据筛选出的回归测试用例所能够覆盖的变更影响域,找出尚未被覆盖的变更影响域。进一步的,所述步骤S101源代码解析中如果代码为C#语言,将代码的逻辑结构与代码所述的类型系统相关联,所述类型系统中包含被测软件自定义的类型、引用类库的类型以及框架自身的类型,依据其本文档来自技高网
...
一种黑盒回归测试方法

【技术保护点】
一种黑盒回归测试方法,其特征在于,包括以下步骤,步骤S101:源代码解析,通过类型解析和对源代码的词法、语法分析得到代码的语法树和类型系统;步骤S102:界面元素分析,扫描源代码抽象语法树,以窗口类定义为基本单元,分析被测软件的界面构成,形成界面元素树模型;步骤S103:交互关系分析,扫描源代码抽象语法树,并依据所使用的类型系统对调用逻辑、事件流进行分析,形成被测软件界面元素调用关系模型;步骤S104:测试执行过程跟踪,捕获用例执行过程中所输入的数据以及点击的界面元素,形成用例执行路径数据;步骤S105:用例覆盖分析,将用例执行数据与界面模型进行匹配,得到每个用例执行后被覆盖的界面元素和路径,并以图形方式显示于界面上;步骤S106:测试用例约简,分析一组用例所覆盖的界面元素和路径,采用基于调用路径和基于界面元素覆盖数量两种算法剔除其中冗余的测试用例,形成测试用例集;步骤S107:功能差异检测,通过对两个软件版本的静态分析结果进行分析,找出两个版本间的UI差异和UI变更位置;步骤S108:功能变更影响分析,依据找到的变更点,采用回溯迭代算法,在界面元素静态结构模型上查找依赖项,形成从变更点出发的变更影响范围即影响域;步骤S109:回归测试用例筛选:以变更影响域为目标函数,采用覆盖的变更功能优先、关键度优先以及路径长度优先策略,从约简后的测试用例集中查找出能够覆盖变更影响域的最少个数测试用例;步骤S110:影响域覆盖分析,依据筛选出的回归测试用例所能够覆盖的变更影响域,找出尚未被覆盖的变更影响域。...

【技术特征摘要】
1.一种黑盒回归测试方法,其特征在于,包括以下步骤,步骤S101:源代码解析,通过类型解析和对源代码的词法、语法分析得到代码的语法树和类型系统;步骤S102:界面元素分析,扫描源代码抽象语法树,以窗口类定义为基本单元,分析被测软件的界面构成,形成界面元素树模型;步骤S103:交互关系分析,扫描源代码抽象语法树,并依据所使用的类型系统对调用逻辑、事件流进行分析,形成被测软件界面元素调用关系模型;步骤S104:测试执行过程跟踪,捕获用例执行过程中所输入的数据以及点击的界面元素,形成用例执行路径数据;步骤S105:用例覆盖分析,将用例执行数据与界面模型进行匹配,得到每个用例执行后被覆盖的界面元素和路径,并以图形方式显示于界面上;步骤S106:测试用例约简,分析一组用例所覆盖的界面元素和路径,采用基于调用路径和基于界面元素覆盖数量两种算法剔除其中冗余的测试用例,形成测试用例集;步骤S107:功能差异检测,通过对两个软件版本的静态分析结果进行分析,找出两个版本间的UI差异和UI变更位置;步骤S108:功能变更影响分析,依据找到的变更点,采用回溯迭代算法,在界面元素静态结构模型上查找依赖项,形成从变更点出发的变更影响范围即影响域;步骤S109:回归测试用例筛选:以变更影响域为目标函数,采用覆盖的变更功能优先、关键度优先以及路径长度优先策略,从约简后的测试用例集中查找出能够覆盖变更影响域的最少个数测试用例;步骤S110:影响域覆...

【专利技术属性】
技术研发人员:于秀山张泽祎刘然于长钺
申请(专利权)人:张泽祎
类型:发明
国别省市:北京,11

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

1