基于影响域分析的软件回归测试设计

2018-01-03 02:14王德敏
电子测试 2017年22期
关键词:控制流测试用例软件测试

王德敏

(公安部第一研究所,北京,100048)

基于影响域分析的软件回归测试设计

王德敏

(公安部第一研究所,北京,100048)

本文就软件回归测试开展分析,并对基于控制流和数据流的影响域分析、影响域重定位、基于影响域的回归测试设计进行了详细论述,希望由此能够为相关业内人士带来一定启发。

影响域;回归测试;数据流;控制流

1 软件回归测试分析

1.1 回归测试的关键点

作为软件工程的重要组成,软件测试属于保证软件质量的重要手段,本文研究的回归测试便是软件测试的重要组成,其与首轮测试均在软件工程中占据着较为重要的地位。首轮测试主要采用追踪法保证测试需求覆盖率,回归测试则将开展的重点放在了更改内容的确认与影响方面,而这便需要回归测试开展中相关测试人员对更改后的软件开展更改影响域分析。为了实现高质量的回归测试并设计针对性较强的测试用例,高水准的更改影响域估计和确定必不可缺,可以说更改影响域估计和确定直接关系着软件回归测试的成败,很多回归测试难度大、风险高便是由于软件更改影响域在确定阶段出现了问题。值得注意的是,长期以来学界提出了“Link”算法、基于概念格软件修改分析等多种回归测试的更改影响域确定方法,不过这类方法多局限于理论层次,很多软件因此开展的软件回归测试往往较为容易出现问题[1]。

1.2 更改影响域

软件工程更改影响域超出实际范围往往会导致测试用例冗余较高、浪费测试资源、降低测试效率等问题的出现,而如果不能完全覆盖实际范围,则会导致软件升级后出现的缺陷漏测,软件回归测试的意义自然难以实现最大化发挥。在笔者的实际调查中发现,我国当下软件工程更改影响域分析存在着三种分析方法,即经验判断法、直观分析法、完全覆盖法,三种方法的详细介绍如下所示:(1)经验判断法。软件测试人员长期从业积累的经验是经验判断法的主要依据,这一分析方法的高质量应用需要测试人员较为深入了解被测试软件,同时自然也需要拥有较为丰富的从业经验,由此基于更改报告开展的分析质量才能够得到保证。(2)直观分析法。结合设计人员提供的更改报告将更改内容对应到具体模块属于直观分析法应用的主要流程,应用简单是这一分析方法的优势,但只能应用于逻辑简单软件是其不足,否则漏测出现的几率将大大提升。(3)完全覆盖法。完全基于首轮测试用例开展分析是完全覆盖法的应用理念,不过这一方法仅能服务于软件规模小、软件功能单一的软件项目[2]。

2 基于控制流和数据流的影响域分析

2.1 原理

考虑到业界在回归测试领域存在的不足,本文提出了基于控制流和数据流的影响域分析方法,这一方法的原理如下所示。

2.1.1 基于控制流的影响域分析原理

假设某软件系统全域集合为R,更改后n个更改点对程序的影响范围为Rn,由此便可以确定关系式,而考虑到软件的程序更处于程序控制流的某个分支之中,便可以应用图1开展分析,本文将图1中处理过程A所在模块称作过程模块A,而如果处理过程中过程模块A发生变化,便能够确定出更改结果的类型,即:①程序执行时序不发生变化、②过程模块A执行时序发生变化、③过程模块A输出数据结构发生变化、④同时出现②和③的变化,由此情况①的更改影响域可以确定为过程模块A的内部,而情况②、③、④则存在着更改影响域向外扩散的情况,开展时序和全局资源被改变后的使用情况分析便显得较为重要[3]。

图1 控制流示意图

图 2 数据流示意图

2.1.2 基于数据流的影响域分析原理

假设图2为图1处理过程A更改过程数据流图,该图中的数据处理A便与图1的处理过程A相对应,考虑到数据处理A的更改,便能够得出数据流变化的三层含义,即:①数据流“DATA2.1”不再流向数据处理C、②“DATA2.1”数据流向不变但结构发生变化、③“DATA2.1”结构发生变化,其中①和②的情况将对后续数据流造成影响,而③的情况带来的影响则需要结合实际环境展开分析。

2.2 操作步骤

基于控制流和数据流的影响域分析在具体操作中存在着较大差别,具体操作如下所示:(1)基于控制流的影响域分析操作步骤。步骤流程可概括为:“确定更改类型→获得受影响控制流→获得更改影响域”,这一过程需要结合软件更改情况等信息,而如果设软件存在n处更改,则可以结合公式完成影响域的求得,该公式中的i≥0且i≤n。(2)基于数据流的影响域分析步骤。步骤流程可以概括为:“获得变化数据流集合→获得数据流影响集合→获得更改影响域”,这一过程同样需要开展软件更改情况分析,而结合公式这一公式支持下完成更改影响域计算。

3 影响域重定位与基于影响域的回归测试设计

3.1 影响域重定位

在基于控制流和数据流分析的支持下,即可实现高质量的软件更改影响域求得,而随后结合软件具体情况开展的影响域重定位也不能被忽视,这是由于影响域重定位能够通过缩小或扩大软件更改影响域进一步提升其精度,本文对一般情况下需要增加和缩小软件修改影响域范围的情况进行了总结,具体内容如下所示:(1)增加影响域范围的情形。不在软件修改和升级的更改影响范围内,不过需要重新确认以保证测试质量;处于被更改点前,但软件的修改和升级对其造成了影响;软件修改和升级涉及的控制流和数据流路径与其不接触,但同时带来的时序改变对其造成了影响。(2)缩小影响域范围的情形。处于软件修改和升级涉及的控制流和数据流路径上,由于可以直观确定其处于更改影响域内,故无需再次开展测试;对于软件的特殊流程,虽然其处于软件修改和升级涉及的影响域中,但无需进行再次测试。

3.2 基于影响域的回归测试设计

完成最终意义上的软件修改和升级后的软件更改影响域确定后,即可真正开展基于影响域的回归测试设计,这一设计需要结合影响域和测试范围的映射关系,以此实现影响域映射在测试范围上,这正是保证软件回归测试质量的关键点。

4 结论

基于控制流和数据流分析的软件回归测试设计具备较高实用性。而在此基础上,本文涉及的影响域重定位、基于影响域的回归测试设计等具体内容,则证明了研究的价值。因此,在相关领域的理论研究和实践探索中,本文内容便能够发挥一定程度的参考作用。

[1]夏同飞,郑浩.大型软件回归测试用例选择优化策略[J].测试技术学报,2016,30(02):106-113.

[2]吴川,巩敦卫,姚香娟.基于分支覆盖的回归测试路径选择[J].软件学报,2016,27(04):839-854.

The influence domain analysis software design based on regression test

Wang Demin
(The first Research Institute of the Ministry of public security, Beijing ,100048)

In this paper, the regression test carried out analysis, and the influence of control flow and data flow analysis, based on the domain of the re positioning, regression test design influence based on domain are discussed, the hope can bring some inspiration for the related industry.

Influence domain; regression testing ;data flow ;control flow

王德敏(1982年6月--),女,河南信阳人,硕士研究生,工程师,研究方向软件测试。

猜你喜欢
控制流测试用例软件测试
抵御控制流分析的Python 程序混淆算法
工控系统中PLC安全漏洞及控制流完整性研究
抵御控制流分析的程序混淆算法
基于SmartUnit的安全通信系统单元测试用例自动生成
基于OBE的软件测试课程教学改革探索
EXCEL和VBA实现软件测试记录管理
基于混合遗传算法的回归测试用例集最小化研究
关于软件测试技术应用与发展趋势研究
软件测试工程化模型及应用研究
基于依赖结构的测试用例优先级技术