[发明专利]一种软件单元与部件与相结合的源代码变更影响分析与测试方法无效
申请号: | 201210325222.1 | 申请日: | 2012-09-05 |
公开(公告)号: | CN102880547A | 公开(公告)日: | 2013-01-16 |
发明(设计)人: | 徐小春;王礼生;董超群;张垚;杨书轩;黄东海;望正气 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京众合诚成知识产权代理有限公司 11246 | 代理人: | 龚燮英 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 单元 部件 相结合 源代码 变更 影响 分析 测试 方法 | ||
技术领域
本发明涉及程序开发测试领域,更具体地说,本发明涉及一种源代码变更影响分析方法,此外,本发明还涉及一种采用了该源代码变更影响分析之后实施测试的方法。
背景技术
在现有系统源代码基础上的开发需要修改大量的软件代码,软件调试工作需要随时修改代码,而软件维护升级过程亦需要修改代码,代码变更时刻伴随着软件研发活动,在现代软件开发过程中越来越重要。代码的变更通常会产生“副作用”,可能会影响到软件的内外部接口、功能特性和性能等多方面的内容,如果没有对代码的变更影响面进行充分的分析与测试,可能导致程序运行时出现异常甚至崩溃。
圈复杂度(Cyclomatic Complexity)是一种为程序逻辑复杂性提供定量测度的软件度量,该度量的值代表了程序单元中的线性独立路径(Linearly Independent Path)数量,并提供了确保所有语句至少执行一次的测试数量的上界。线性独立路径是指程序中至少引进一个新的处理语句集合或一个新条件的任一路径。采用流图(与流程图不同,流图只有边和节点表示,用于圈复杂度的计算和独立路径的创建)的描述时,线性独立路径必须至少包含一条在定义路径之前不曾用到的边。线性独立路径集合代表了一个测试路径(Test Path)的集合,按照线性独立路径进行的测试是一种高强度的白盒测试。
在对代码局部修改后,可能影响代码的范围包括程序单元内部和程序单元之间。在程序单元内部,如果代码的修改导致了程序控制流的变化,则影响的范围较大,甚至需要进行所有的独立路径的测试;如果代码的修改未导致程序控制流的变化,则影响的范围较小,没有必要对所有的独立路径进行测试,由此需要有一种方法排除没有受到影响的路径。
代码的修改除了影响代码所在的单元本身,还会影响到该单元所属部件的其他程序单元。这时候的变更影响分析可以用该程序部件的集成子树(Integration Subtree)来实现。集成子树是程序中圈复杂度流程图的线性独立集成路径,通过对集成子树中的测试路径进行测试,可以不用测试单元的其它控制逻辑来测试单元的相互作用。在对部件的测试中同样需要有一种方法排除没有受到影响的集成子树。
现行源代码变更影响分析与测试主要依赖编码人员凭经验进行人工分析,未利用圈复杂度、线性独立路径和集成子树等手段来确定变更的影响面,更没有将此应用到白盒测试过程中。除了人工分析,也有关于面向对象代码变更影响分析的研究,主要基于类成员依赖关系确定变更影响源和变更类型,依据一定的算法确定变更影响的范围。
对代码变更进行影响分析与测试有很大的难度,目前缺乏系统的方法进行指导。传统的变更影响分析与测试方法依赖于编码人员的经验和对代码的熟悉程度,人工分析受变更影响的代码块或执行路径,难以对变更的影响面进行全面评估,也难以对代码进行充分的测试。依赖经验进行的分析方法的效果与编码调试人员的个人能力相关,具有较大的随机性和盲目性,并且无自动化工具支持,效率低下,不能提供具有系统性的解决方案。而关于面向对象代码变更影响分析的研究,分析的目标是类,局限于面向对象的代码,不能对非面向对象代码进行变更影响分析,并且该方法未对变更影响分析之后的测试流程及方法进行说明。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供软件部件与单元相结合的源代码变更影响分析与测试方法。
本发明提供了一种源代码变更影响分析与测试方法,其包括:单元级源代码变更影响分析和测试部分、以及部件级源代码变更影响分析和测试部分。
优选地,所述单元级源代码变更影响分析和测试部分包括:
第一步:构造程序单元的流图,所述流图使用节点和边描述逻辑控制流;
第二步:创建线性独立的测试路径集;
第三步:查找修改的代码在流图中的节点,并将其确定为变更点;
第四步:使用路径选择器在线性独立测试路径集中选取包含了变更点的路径,以形成受影响路径集;
第五步:执行受影响路径集中的路径;
第六步:将执行的结果和预期的结果进行比较。
优选地,所述部件级源代码变更影响分析和测试部分包括:
第一步骤:构造程序的调用图,所述调用图使用节点和边描述程序的调用结构,节点代表程序的单元,边表示调用关系;
第二步骤:创建线性独立的测试子树集;
第三步骤:确定修改的代码所在的单元,作为变更点;
第四步骤:使用子树选择器在线性独立测试子树集中选取包含了变更点的子树形成受影响子树集;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210325222.1/2.html,转载请声明来源钻瓜专利网。