函数后置信息在软件静态测试中的应用

来源 :科学与财富 | 被引量 : 0次 | 上传用户:bazhahai
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在当前的社会发展中,静态测试技术的应用越来越广泛,已成为社会各行业测试工作中经常采用的一种测试新技术。在工作中,为了提高测试精确度、解决代码缺陷问题,以应用函数后置信息软件来进行测试就显得格外关键,这一软件技术的采用有效的改善了原有测试工作中存在的本地修改、全局修改集以及返回数据流问题。本文从静态测试的概念入手,函数副作用产生的软件测试影响进行分析,着重探讨了其在软件静态测试中的应用优势。
  关键词:软件测试;静态测试;函数后置信息
  伴随信息技术、计算机技术的飞速发展以及应用的日趋普及,软件技术的应用也越来越广泛,这也使得软件技术变得越来越复杂和繁琐。而在这些软件工作中,一旦出现质量问题,其产生的影响和造成的损失将是不可估量的,因此保障软件质量已成为目前软件工程领域中一个极为重要的内容,也是工程人员最为关心的内容。软件静态测试作为衡量软件质量的主要途径,如何保证其检测的精确度深受人们的重视与关注,函数后置信息技术就是基于这种时代背景下产生的一种测量新方法,其产生为软件测试技术指明了发展新方向。
  一、静态测试概述
  软件测试是目前软件工作中不可忽视的重要内容之一,是保证软件质量的主要途径。一般来说,软件故障通常都表现在计算结果的误差以及系统崩溃两个方面。其中,计算结果错误是一个很容易就被检测出来的问题;而导致系统崩溃的故障不仅无法及时的检测出来,同时其造成的后果也是非常严重的。这类故障在检测中被检测出来的概率很低,而采用静态测试技术对这些故障进行测试的话,则只需要分析源码而需要运行程序,这就避免了由于软件问题而造成的计算机故障隐患,同时对于缺陷的针对性处理优势高。
  1、软件测试分析
  所谓的软件测试主要指的是在工作中采用有关测试工具和测试方案对软件产品的性能、功能进行全面测试,甚至是根据编写者的不同来采取不同的测试工具来进行软件质量判断,从而实现软件性能和功能的评估。软件测试工作在软件领域有着举足轻重的地位,是设计和维护测试系统、提高软件质量的主要手段。
  2、静态测试
  静态测试主要是不运行被检测的软件,仅仅通过分析、检查和测量源程序的语法、结构、过程、接口等环节来检测软件中存在的问题以及正确性,对需求规格的说明书、源文件、流程图、符号执行采用找错、编审的方式来进行研究,从而实现软件质量的检测。这种方法的应用对于系统崩溃故障而言有着重要的意义,是可用于进一步差错、测试用例的一种现代化测试手段。
  二、函数副作用对测试的影响
  基于缺陷模式下的软件测试工作是近年来应用极为广泛的一种测试技术,是通过对程序执行信息化、抽象画处理的基础上,分析软件故障匹配模式,从而实现测试工作的正常、持续开展。对于某些函数调用分析,其函数以及子函数很有可能受到内外因素的影响而需要进行及时的修改,并且返回特定的信息。这些内容的存在极容易对调用者上下产生一定的影响,如果在静态测试工作中将这一问题忽略不计,则很有可能导致变量或者表达方式的区间值发生误差,进而造成软件测量工作的缺陷。
  三、函数后置信息概述
  函数后置信息软件技术在目前的软件测试工作中经常遇到,尤其是在静态测试中,更是极为常见。在工作中如果我们忽略掉函数副作用的影响,那么很容易对相关变量产生一定的影响,将会造成整个软件检测出现质量隐患。为此在这里利用函数后置信息软件检测技术就显得格外重要,将其用于区间计算和缺陷检测中所发挥出的优势十分明显。
  1、后置信息描述
  PFI是函数执行后对其调用者的影响,包括函数体内修改的外部变量、函数体内修改的指针型参数、引用型参数以及函数的返回值等,可描述为一个四元组M=(L,G,P,R).
  L是一个集合,表示函数中直接修改的外部变量及其取值区间.若函数F中的某条语句.s修改了若干外部变量,则这些外部变量及其取值区间构成语句s的本地更改集合。
  P是一个集合,表示函数参数列表中具有指针或引用特性的参数及其取值区间,它们构成函数F的可更改参数集合。
  R是一个集合,若函数F中的某条语句S返回到某个变量或表达式的取值区间,则该取值区间构成语句S的返回值。
  G是一个集合,若函数F及其子函数中更改了若干外部变量,则这些变量及其取值区间构成函数F的后置信息。
  2、生成算法
  在现有的一些故障分析系统中,采用的故障查找及区间计算的算法大多数是基于路径的,即首先产生一条路径,然后针对该路径的控制流进行分析,该类算法的复杂性至少是O(P)(P为路径数).为提高分析效率,本文应用对控制流图进行迭代的方法计算后置信息,在控制流图上对当前节点包含变量的可能取值区间进行迭代。本算法中要计算的相关变量取值区间是沿着控制流正向进行的,基本数据流方程形式为:
  其中:其中,n为控制流节点;i[n]为到达控制流节点n前的所有相关变量区间集合;O[n]为到达节点n后所有相关变量区间集合;g[n]为节点n中新产生或“被改变”得到的变量区间集合;k[n]为节点n中“注销”或“被改变”的变量区间集合;P[n]为控制流中节点n的所有前驱节点集合。
  3、算法分析
  因为所有定义的集合是有穷的,最终一定存在1次while循环,使每个控制流节点n都满足结束条件,从而计算出当前函数的后置信息.在最坏情况下,算法的时间复杂度是O(n4),但如果按照深度优先顺序安排节点的计算顺序,则实际迭代的平均数将小于5,这样算法的效率较高,对于算法的输出结果,如果集合L(f)、G(f)、P(f)、R(f)中对应的变量存在交集,则理论上交集中的变量取值在不同后置成员中应一致,否则会影响测试的准确度,这主要依赖于函数内抽象表示及计算部分对别名问题的处理准确度。
  四、结束语
  目前市场上的主流静态测试产品存在的主要问题是缺陷的误报率较高,有漏报现象.为提高这种软件测试技术的精度,将PFI应用于DTS中,并提出一种应用控制流迭代技术生成函数后置信息的算法.该算法以较低的计算复杂性得到程序中所有函数的后置信息,并可将其用于各种缺陷检测算法中.通过对不同的DTS以及其他同类产品的对比测试,结果表明,该技术可有效地缓解缺陷误报及漏报情况。
  参考文献
  [1] 吕金和. 函数副作用在软件静态测试中的应用[J]. 软件导刊. 2010(04)
  [2] 朱剑林. 基于PAT树的程序静态分析方法[J]. 咸宁学院学报. 2007(06)
其他文献
以可靠性为中心的维修,是用来确定设备预防性维修工作及优化维修制度的一种系统工作方法,也是许多发达国家国防部门和工业部门制定军用装备和设备预防性维修大纲的首选方案。通过现场故障数据的统计、专家评估、定量化建模等手段在保证安全性和完好性的前提下,以维修停机损失最小为目标优化系统的维修策略。下面将采用可靠性理论为基础对IDG系统的可靠性进行深入分析和研究。  一、IDG工作原理  飞机IDG 由恒速传动
随着近年来我国经济的飞速发展,各类企业蓬勃成长,高质量人才需求逐年加大,会计学作为促进经济发展、企业成长的重要学科,热度逐年上涨。我国培养会计学专业的高校甚多,走向社会的
在《煤矿安全》教学过程中,瓦斯抽采虚拟仿真教学仪不仅可以使学生熟悉煤矿瓦斯抽采的真实场景,达到与理论知识的结合,还可以锻炼学生实践动手能力,也为学生考取技能等级证打下良
简要分析现浇钢筋混凝土楼板的裂缝产生的原因以及在设计、施工和材料选用等方面应注意的问题,并提出相关有效的防治措施。
针对晋煤赵庄煤矿西翼胶带巷围岩收敛变形严重、顶板喷层开裂、底鼓显著的现象,实施全断面扩修、全断面锚网索支护、全断面二次注浆加固技术,并通过现场监测予以验证,该工艺
摘 要:工程项目成本控制是项目管理的重要内容,施工企业应该正确认识成本控制的重要性,以降低成本,提高效益。基于此,本文从工程项目成本控制过程中的各重要因素以及环节这两个方面出发,结合实践对建筑工程施工成本控制进行了探讨,并就如何提高工程项目成本控制水平进行了阐述。通过本文,希望能给企业在建筑工程施工成本控制过程中提供参考。  关键词:建筑工程;施工成本;控制    在市场经济条件下,面对当前竞争日
分簇技术是延长无线传感器网络的生命周期的一种有效方法,其通信方式以多跳为主,非均匀分簇方法是解决均匀分簇方法能量空洞问题的新方法。在分簇阶段充分考虑了候选节点剩余
顶推法施工是沿桥轴纵轴方向的台后设置预制场,分阶段预制梁体,纵向预应力筋张拉后,通过水平千斤顶施力,借助滑道、滑块滑动装置,将梁逐段向前顶推,就位后落梁,更换正式支座。在箱梁
1995年岳阳纸业股份有限公司投资6000万元从奥地利Andritz公司引进国内第一条75吨/日APMP生产线,既能生产意大利杨(即欧美黑杨)APMP浆,又能生产松木CTMP浆,是一种高得率、低污染且
当前的经济不再是个体发展经济,而是产业聚集发展。产业集约化发展是当前地区经济发展的重要举措,在我国很多地方都在实行产业节约化发展,东莞也不例外。本文将在文献上研究