当前位置: 首页 > 专利查询>于秀山专利>正文

一种用功能图分析软件功能变更及其影响的方法技术

技术编号:8105648 阅读:245 留言:0更新日期:2012-12-21 04:17
本发明专利技术公开了一种用功能图分析软件功能变更及其影响的方法,包括:通过对被测软件进行分析,构建软件功能图;分析控件变更和代码变更影响;控件与代码映射,通过分析源程序代码,采用代码与界面控件映射方法,找出变更代码所对应的软件功能,将代码变更转化为功能变更;根据功能变更和代码变更所影响到的软件功能情况,分析功能变更影响域,找出经过功能变更点的所有功能。本发明专利技术采用方法依赖图描述代码依赖关系,能够准确反映代码变更对软件带来的影响;充分考虑了代码变更和控件变更对软件功能带来的影响,影响分析全面;根据控件和代码之间关联关系将代码变更转换为功能变更,变更影响分析结果直观。

【技术实现步骤摘要】

本专利技术涉及一种软件测试方法,具体涉及。
技术介绍
软件变更是软件生存周期中不可避免且十分频繁的一种行为,软件变更后原有软件将受到不同程度的影响,其中有些影响是显而易见的,称为显性影响,有些影响是潜在的,难以从表面识别,称为隐性影响。软件变更影响分析是确定这些变更对软件所造成的显性特别是隐性影响,为软件测试、维护等提供技术支持。 20世纪80年代以来,⑶I (图形用户界面)技术得到了广泛应用,⑶I软件在给用户带来直观、简便的同时,其本身所具有的输入/输出图形化、事件驱动、事件触发随机性、多任务以及消息传递等特性,使软件功能变得越来越复杂。此外,目前大多数GUI软件都是采用快速原型方法开发的,软件版本变更频繁。软件功能的复杂性导致软件功能的每一处变更,都将对与此功能相关的其他功能带来显性和隐性影响,隐性影响难以直接、直观地识别出来,因此,在回归测试时,只能凭经验设计测试用例,难免造成测试用例的遗漏、重复和冗余,严重影响回归测试的充分性和测试效率。在变更影响域分析领域,有代表性的研究如下I.面向过程分析方法传统的变更影响分析技术是针对面向过程程序而提出的,这些方法采用程序依赖图对程序进行分析,运用控制依赖和数据依赖来表现程序节点间的依赖关系。控制依赖是从程序控制结构中提取出来的软件运行时序逻辑关系;而数据依赖则是从数据声明中提取出来的数据定义-引用关系。使用这种程序依赖图可以很好地描述面向过程程序中的程序逻辑,但对于面向对象软件中以对象为基础的程序逻辑,这些方法不能很好处理因面向对象中的多态性而产生的间接依赖关系。2.基于类依赖图方法近年来,针对面向对象程序特点,有些学者将变更影响分析技术运用于面向对象软件中,提出了通过类依赖图分析变更影响的方法。这种方法粒度过粗,导致分析结果准确度不高。上述两种方法都是以源代码为分析对象,根据源代码变更情况,找出受源代码变更影响的其他源代码。采用这些方法,能够找出代码变更影响域,但由于软件代码与功能不是简单的对应关系,因此,即使知道了受变更影响的代码,也无法得知受影响的功能。为了覆盖受变更影响的源代码,测试人员还需要花费一定的精力阅读代码,才能设计出覆盖变更影响域的回归测试用例,从而影响回归测试的效率。软件功能是软件的精髓,用户通过软件所提供的功能完成指定的任务,相对于代码而言,软件功能更加直观,因此,从功能层面分析软件变更影响域将更加直观和简便,而已有的方法难以有效解决这个问题。
技术实现思路
本专利技术所解决的技术问题是提供,主要解决如何从软件功能层面分析软件变更影响域,从而提高变更影响域分析的直观性、充分性和效率。技术方案包括,包括构建软件功能图;通过对被测软件进行分析,找出软件所有的功能以及功能之间的关系;分析控件变更影响;通过比较新旧版本软件功能图,找出新旧版本功能差异及差 异影响;分析代码变更影响;通过比较新旧版本软件源程序代码,找出代码变更部分,根据代码变更情况,采用方法依赖图找出受代码变更影响的代码;控件与代码映射;通过分析源程序代码,采用代码与界面控件映射方法,找出变更代码所对应的软件功能,将代码变更转化为功能变更;分析功能变更影响域;根据功能变更和代码变更所影响到的软件功能情况,采用深度搜索算法,找出经过功能变更点的所有功能。进一步,软件功能图构建具体包括词法和语法分析;采用类编译原理技术,对被测软件源代码进行词法和语法分析,通过分析得到抽象语法树和符号表; 图形用户界面GUI控件辨识;采用深度优先搜索技术,遍历抽象语法树和符号表,得到源代码中所有的GUI控件;软件功能图生成;根据⑶I控件之间的相互关系,通过对⑶I控件分析,生成完整的软件功能图。进一步在控件变更影响分析中,针对新旧版本两个软件,首先生成软件功能图Gl和软件功能图G2,而后通过比较这两个软件功能图,标识出发生变化的控件,最后根据标识出的控件找出受变更影响的其他控件。进一步,代码变更影响分析的步骤包括构建方法依赖图和方法变更影响传递图,将方法依赖转换为方法变更影响传递;方法变更影响和属性变更影响分析。根据方法变更和属性变更类型分析代码变更影响。进一步,通过控件与代码映射建立源代码与控件之间的映射关系,从而将代码变更转化为功能变更。利用代码变更影响分析结果,根据其中受到影响的方法集合和属性集合找出与其对应的控件,并在软件功能比较结果图中予以标识。进一步,功能变更影响域分析是根据软件功能变更标识结果,找出经过变更点的所有功能路径,所述功能路径是受功能变更影响的部分,也是回归测试时必须覆盖的最小功能集。与现有技术相比较,本专利技术的有益效果是本专利技术针对GUI软件特点,从软件功能出发,提出了基于控件变更和代码变更的软件功能变更影响域分析方法。与已有方法相比,有以下优点(I)克服了面向过程方法不适用于面向对象软件的缺点,能够处理面向对象软件中的多态、继承等,适用于面向对象软件;(2)与基于类划分的代码依赖图相比,本专利技术中采用方法依赖图描述代码依赖关系,代码分析粒度适中,能够准确反映代码变更对软件功能带来的影响;(3)与单纯的功能变更影响分析相比,本专利技术充分考虑了代码变更和控件变更对软件功能带来的影响,影响分析全面,没有遗漏;(4)与单纯的代码变更影响分析相比,本专利技术根据控件和代码之间的关联关系,将代码变更转换为功能变更,变更影响分析结果直观,便于使用。 附图说明图I是本专利技术的主工作流程图;图2是本专利技术中软件功能图生成的工作流程图;图3是本专利技术中词法和语法分析流程图;图4是本专利技术中⑶I控件辨识的工作流程图;图5是本专利技术中控件与代码映射表生成流程图;图6是本专利技术中控件变更影响分析流程图;图7是本专利技术中程序模块划分示意图;图8是本专利技术中类变更对控件影响示意图;图9是本专利技术中代码变更影响分析的流程图;图10是本专利技术中的方法依赖图;图11是本专利技术中依赖关系方向和变更传递方向不意图;图12是本专利技术中方法依赖图和方法变更传递图;图13是本专利技术中变更前后的学生管理系统界面图;图14是本专利技术中VI. O版软件功能图;图15是本专利技术中V2. O版软件功能图;图16本专利技术中方法变更及函数调用关系图。具体实施例方式本专利技术针对已有方法存在的问题,从软件功能的角度分析软件功能变更影响域,主要解决如何找出软件中受代码变更影响的软件功能,从而提高变更影响域分析的直观性、充分性和效率。对于GUI软件而言,软件功能变更来自于两个方面,一是界面控件变更,二是底层代码变更。界面控件变更将显性影响软件已有的功能,底层代码变更将隐性影响软件已有功能。本专利技术针对这两种变更,对功能变更影响域进行分析。下面参考附图和优选实施例,对本专利技术技术方案作详细说明。如图I所示,是本专利技术的主工作流程图。一种用功能图分析软件功能变更及其影响的执行过程如下。步骤I :软件功能图构建。通过对被测软件进行分析,找出软件所有的功能以及功能之间的关系;步骤2 :控件变更影响分析。通过比较新旧版本软件功能图,找出新旧版本功能差异及差异影响;步骤3 :代码变更影响分析。通过比较新旧版本软件源程序代码,找出代码变更部分,根据代码变更情况,采用方法依赖图找出受代码变更影响的代码;步骤4 :控件与代码映射。通过分析源程序代码,采用代码与界面控件映射方法,找出变更代码所对应的软本文档来自技高网
...

【技术保护点】
一种用功能图分析软件功能变更及其影响的方法,包括:构建软件功能图;通过对被测软件进行分析,找出软件所有的功能以及功能之间的关系;分析控件变更影响;通过比较新旧版本软件功能图,找出新旧版本功能差异及差异影响;分析代码变更影响;通过比较新旧版本软件源程序代码,找出代码变更部分,根据代码变更情况,采用方法依赖图找出受代码变更影响的代码;控件与代码映射;通过分析源程序代码,采用代码与界面控件映射方法,找出变更代码所对应的软件功能,将代码变更转化为功能变更;分析功能变更影响域;根据功能变更和代码变更所影响到的软件功能情况,采用深度搜索算法,找出经过功能变更点的所有功能。

【技术特征摘要】

【专利技术属性】
技术研发人员:于秀山王建伟许峰宋炎淼于长钺杨豹董昕刘然刘怡静黄忠见迟芳
申请(专利权)人:于秀山
类型:发明
国别省市:

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

1