浅谈程序关联性分析法在软件测试中的应用

摘要:当对软件的进行维护的时候,由于关联性普遍存在于各个模块之间,修改错误的模块,添加新的模块和删除无用的模块,这些变更过程都会产生不合适错误或潜在错误,其软件测试和维护的关键问题就是如何对这些错误进行跟踪定位,基于程序关联性分析的测试方法是解决上述问题的一种非常有效的方法,该文对程序关联性分析法在软件测试中的初步应用进行了分析。

关键词:关联性;软件测试;静态代码;动态代码

中***分类号:TP3文献标识码:A文章编号:1009-3044(2010)21-6068-02

Study On a Software Test Approach Based on Analyzing Program Association

GENG Li-wei

(Guangdong Radio & TV University, Guangzhou 510091, China)

Abstract: In the course of software are maintenance,owing to the association exist among modules,in consistencies or new error should be produced by modifying the wrong module,adding new modules or deleting useless module. The key issue is how to trace and locate these errors. The software are test approach based on analyzing program association is a way to resolve these issues. The essay has a preliminary investigation on software test approach based on analyzing program association.

Key words: association; software test; static code; dynamic code

一般来说,软件完成后都不可能保证其完全的正确性,会出现错误,所以在软件投入使用前必须进行各种测试来完善其稳定性和可靠性;同时还有一些遗漏问题会在软件使用过程中逐步出现,对于这类现象,我们就要进行修复在使用中出现的问题来维护软件的可用性,软件维护的方法有重新设计工程、应用程序理解、程序转换、影响分析、逆向工程、回归测试、软件配置管理等一系列相关技术[1]。如果没有经过运行前的测试,容易导致就会在以后的程序运行中出现这些问题,从而造成用户无法估量的损失。因此,要解决这类问题,就必须对软件进行各种不同方式的测试来分析其问题、错误所在,但这些过程会引起不合理的资源投入,形成了很高的维护费用。测试和维护工作快速和有效地开展的难点和问题,已经逐渐成为了软件测试和维护的瓶颈。

1 软件测试方法的分类

从目前看,软件测试有很多种不同的方法和技术,从不同的角度来看存在着不同的分类方法,一般的分类都是从是否需要执行被测软件的角度来考虑,可以分为静态测试和动态测试两种 [2]。1) 静态测试。静态方法是主要通过分析程序静态特性,分析找出问题的潜在存在,例如不合适的变量、不准确的计算等等,根据结果可用进一步的对错误进行查找,为后续的测试方法的选取提供帮助,静态测试能显著提高软件的可靠性和易维护性,为软件的质量提供必要的保证。其测试方法一般可以包括代码检查和静态结构分析两种主要方面。静态结构主要是以***像的方式来测试和分析软件的内构的运行情况,像函数调用关系***、函数内部控制流***等这些都属于这类测试方法。其主要的分析方法主要有数据流分析和程序控制流分析。2) 动态测试。动态测试是通过运行程序直接测试,与静态测试主要区别在在真实环境下运行测试被测代码,这样可以从更全面来观察程序运行时能体现的速度和结构等行为,并通过对程序的执行状态和程序的外部的检查、分析,来确定程序发生错误的环节、部位。动态测试完成的功能有:接口灵敏性测试、覆盖程度分析、速度性能分析等,其中最重要的是覆盖程度分析,其定义是指对代码的执行路径覆盖绿进行测定和评估,包括判定覆盖、语句覆盖、路径覆盖等,这些都是根据不同需要为基本,为设计测试不同需要提出方法和依据。动态阶段的测试方法主要有以下四种:1) 符号测试;2) 逻辑覆盖;3) 路径测试;4)程序插桩及程序变异。

2 基于程序相关性分析的软件测试方法

2.1 软件的相关性分析

模块和与相关其它部分之间的关联就是软件的相关性,这是一种相互联系和相互制约关系,如果体现在软件测试来看,主要有两个方面的相关性:不同模板之间的关联程度和模块与测试的关联程度[3]。不同模式的软件测试技术,主要是通过把相关关系通过形式化的技术进行直观的表达,把有效的途径运用到对应的测试技术中。由于相关模式的软件测试本身就是具有正向和反向相关能力的数学模型,其主要的步骤是将模块功能和源代码测试联系起来,通过分析确定软件运行的每个阶段产生的错误或潜在的错误,以及与其它阶段的相关性,从而使整个软件系统测试到维护各个阶段的对应性完善。例如在程序测试运行过程中出现了某不确定的错误,要有效地修改这个错误,就一定要知道这个错误出现的具体环节,通过什么途径传播到发现它的部位,当遇到这种情况,可以考虑逆向相关法,对于在修改和回归测试等很多场合,逆向相关都是相对有得非常广泛的方法。总体来说,相关性分析是在抽象层次上建立各个环节的相关数学软件模型,建立从问题领域到程序设计领域的映射集,根据不同相关性的描述,可以分为数字、函数、模块等多种层次[4]。

2.2 相关测试方法的表达和测试方案设计

测试方案的设计都是测试阶段中关键的技术问题,其具体的步骤可以分为以下六个步骤:1) 从程序中选取合适有效的测试数据;2) 通过静态测试或者动态测试形成测试用例;3) 用这些用例逐步测试被测程序;4) 观察和分析软件的运行情况;5) 检验测试结果与模型预期结果的一致性程度;6) 再根据程序的执行结果对测试方案进行对应的修改。

2.2.1 静态代码分析模块

静态代码分析模块是对源代码的全面分析,从而提取模块和动态插桩实现时的相关必要信息。该模块主要作用主要体现在存储和关联检测时,为模块分析提供准确的、完整的代码,同时也可实现插桩的不同种类,提供插桩位置的更为有效、精确信息。一般来说静态分析的过程可以进行如下三个主要部分:1)对整个文件以目标单位进行运行测试,进行源代码有效化;一般可采取打开代码源文件的方式进行;2)对预处理后的源代码文件,并把源代码文件划分为不同模块,再将这些模块信息和分支信息联系起来,识别出相关信息,生成统一完整的关联结构***,提供表达式、关键词、各类程序给所需的测试用户;3)最后对标记模块进行识别,在模块不同区域对修改完善后的代码进行插桩[5]。

2.2.2 动态代码分析模块

在源代码环境下可以自动生成插桩文件的方法被称为动态执行模块分析,其主要的优势体现在可以增加程序调试的灵活性,其正常的步骤是在目标系统或运行环境中,先把插桩文件编译为可执行的文件类型,再对可执行文件进行运行测试插桩,通过这样,就可以完成多种不同的代码测试功能。程序插桩,这是一种能够实现覆盖程度测试的技术手段和重要保证,它专门用来控制程序运行过程中模型函数的变化总体趋势,再者也可以用于检测程序某些功能的覆盖率。如果要更有效地保持被测试程序逻辑性,可以在程序中适当插入一些具有各种不同作用的探针[6],同时由于这种探针具有采集功能,这样可以分析输出程序的运行方式。这些特征数据分析结果可以表达出程序的控制流及数据流信息,这样可以得到覆盖程度等对测试有用的信息[7]。

3 结束语

近年来,在软件测试与维护领域,我国有了相当大的进步和发展,但问题依然存在,如测试理论和技术这方面研究来说,很难满足软件开发的实际需要。关联性的测试函数,为软件设计和测试维护人员提供了一种新的思路,使得软件测试与维护更加有效,帮助软件的稳定性。对在实际开发中存在的一些问题,如现在程序的规模扩大,复杂程度增高,这些都会对程序分析造成很复杂繁琐的工作量。如何以根据软件测试和维护的为核心目标,完善软件测试理论与技术,更好地提高软件测试和维护性能,更有效地使其维护费用降到最低,是目前软件测试技术人员面临的非常紧迫,同时也是意义重大的任务。

参考文献:

[1] 孙洪皓.基于程序切片技术的软件理解辅助系统设计与实现[D].硕士学位论文.大连理工大学,2007.

[2] 丁剑洁.基于度量的软件维护过程管理的研究[D].硕士学位论文.西北大学.2006.

[3] 易晓东,杨学***.一种C程序断言的全自动静态验证方法[J].计算机科学,2006,33(9).

[4] 蒋曹清,张大方,缪力.一种回归测试后的错误定位方法[J].计算机工程与科学,2005,27(4).

[5] 虞晓岚,杨小虎.功能性回归测试工具分析[J].计算机应用与软件,2007,24(5).

[6] 王学东,汪文勇.汇编程序覆盖测试中虚拟插桩的实现[J].计算机工程,2007,33(7).

[7] 赵瑞莲,闵应骅.一种基于规范和程序域分析的软件测试方法[J].计算机研究与发展,2003,40(6).

浅谈程序关联性分析法在软件测试中的应用

转载请注明出处学文网 » 浅谈程序关联性分析法在软件测试中的应用

学习

函数数据分析

阅读(17)

本文为您介绍函数数据分析,内容包括常用数据分析函数,函数数据分析方法实操。【摘要】近几年来,函数数据分析方法正处于迅猛发展阶段,国内已有一些学者将其应用到拍卖,股票等方面。它的出现带来了统计学分析方法上的一次变革。本文简要介绍

学习

煤质技术

阅读(26)

本文为您介绍煤质技术,内容包括煤质规范最新,煤质化验员安全技术操作规程。1.预热对喷吹煤比表面积及微观形貌的影响刘仁生,赵兵,钟雪晴,LIURen-sheng,ZHAOBing,ZHONGXue-qing

学习

范振绪书画艺术综述

阅读(52)

本文为您介绍范振绪书画艺术综述,内容包括书画艺术大师范振绪,范振绪书画最新价格。范振绪(1872~1960),字禹勤,号东雪老人,甘肃省白银市靖远县城关人,清工部主事范培之子,出生于北京,9岁丧父后随母返回故里,清光绪年进士。1906年,同沈钧儒等留学日

学习

文圣拳学实战技法

阅读(23)

本文为您介绍文圣拳学实战技法,内容包括怎么练习文圣拳,文圣拳基本功训练。文圣拳学主动进攻实战技法强调,交手实战时,以欲动待发的整体弹性内劲为内功之本,全身上下、左右、内外协调均整,运动中手法、身法结合八位、夺位的技击步法,松静中本

学习

当代中国四大社会阶层分析

阅读(120)

本文为您介绍当代中国四大社会阶层分析,内容包括当前中国各社会阶层现状分析,当今社会阶级阶层分析。摘要:组成社会大系统的不同人群,因其对社会稀缺资源——包括国家控制权力、生产资料及财富、社会资本、专门知识、技术等要素的拥有、控

学习

塑性混凝土在防渗墙施工中的应用

阅读(35)

本文为您介绍塑性混凝土在防渗墙施工中的应用,内容包括塑性砼防渗墙是怎么做的,塑性混凝土防渗墙检测方法。摘要:通过对已建工程的施工总结,介绍了塑性混凝土防渗墙施工技术的特点和对质量的控制,通过质量检查表明,墙体整体均匀,致密性好,达到

学习

亦悲亦喜寓庄于谐

阅读(24)

喜剧是一种笑的艺术,它将深刻的内容寓于诙谐幽默的形式而实现审美效果。换言之,笑并不就是喜剧艺术,喜剧的笑是一种审美创造,“反常性”、“不协调”的矛盾是其实现笑的审美效果的喜剧性实质。因此,叔本华说:“笑不过是因为人们突然发现,在他所

学习

电网污闪事故

阅读(21)

本文为您介绍电网污闪事故,内容包括电网春季防污闪反事故演习,电网防污闪技术问答。1前言

学习

人物神态描写

阅读(23)

本文为您介绍人物神态描写,内容包括描写人物神态的词语,人物的神态描写。——余华《假糖》

学习

多属性效用决策在经济现象中的应用

阅读(28)

多属性效用分析方法首先为决策目标建立一棵与决策目标相关的属性树,并通过决策会议将决策树简化,然后为简化后的决策树的重要属性建立效用函数,并计算出各备选方案的效用值,从而得出最优方案的决策方法。

学习

PHC桩在地下室抗浮中的应用

阅读(26)

摘要:地下室工程应用日益广泛,地下室抗浮承载力不足引发的工程问题也愈来愈多。本文分析地下水位对地下结构的抗浮计算原理,并用工程实例阐明采用PHC管桩作为抗浮桩的优越性和单桩抗拔承载力特征值的决定。

学习

小麦转基因技术及其应用研究

阅读(22)

本文为您介绍小麦转基因技术及其应用研究,内容包括小麦品种有没有转基因的,小麦转基因技术及其应用研究。【摘要】通过转基因技术实现小麦改善品质、产量提高,同时增强杭病虫及抗逆能力。随着我国人口基数的不断增长,粮食安全形势愈发严峻

学习

函数数据分析

阅读(17)

本文为您介绍函数数据分析,内容包括常用数据分析函数,函数数据分析方法实操。【摘要】近几年来,函数数据分析方法正处于迅猛发展阶段,国内已有一些学者将其应用到拍卖,股票等方面。它的出现带来了统计学分析方法上的一次变革。本文简要介绍

学习

当代中国四大社会阶层分析

阅读(120)

本文为您介绍当代中国四大社会阶层分析,内容包括当前中国各社会阶层现状分析,当今社会阶级阶层分析。摘要:组成社会大系统的不同人群,因其对社会稀缺资源——包括国家控制权力、生产资料及财富、社会资本、专门知识、技术等要素的拥有、控

学习

城市道路线形设计分析

阅读(49)

本文为您介绍城市道路线形设计分析,内容包括道路线形设计分析,城市道路纵断面线形设计步骤。摘要:本文介绍了道路设计中线形设计的组成因素,对城市道路线形设计中的问题进行分析,得出了几点结论,供大家参考。

学习

有关土的静三轴试验分析

阅读(24)

本文为您介绍有关土的静三轴试验分析,内容包括土的三轴压缩试验,用三轴试验测定土的抗剪强度指标。摘要:测定土体的抗剪强度方法有较多,其中,三轴压缩试验被公认为是相对较为有效和完善的方法。同普通的直剪试验相比,三轴压缩试验有很多的优

学习

产业分析报告范文精选

阅读(30)

本文为您介绍产业分析报告范文精选,内容包括产业发展调研报告怎么写,2021年新闻出版产业分析报告。产业分析报告篇1EXECUTIVESUMMARY

学习

我国二元经济形成的原因及影响因素分析

阅读(60)

本文为您介绍我国二元经济形成的原因及影响因素分析,内容包括我国二元经济结构的形成原因,城乡二元经济结构的影响因素。一个国家经济发展的初期普遍存在一个现象,就是二元经济结构现象。这一过程在相对同质,在一元的低水平经济的基础上,现

学习

基于区位熵理论的重庆市第三产业发展分析

阅读(37)

本文为您介绍基于区位熵理论的重庆市第三产业发展分析,内容包括2016重庆产业数据分析,城市产业怎么分析。摘要:一个国家或地区的经济发达程度是通过第三产业的发展水平来体现的,第三产业不仅发展潜力大,而且对社会经济发展带动作用明显。通

学习

液压阻尼器静刚度和动刚度研究分析

阅读(20)

本文为您介绍液压阻尼器静刚度和动刚度研究分析,内容包括弯剪阻尼器计算分析,阻尼器的力学分析。摘要:液压阻尼器静刚度和动刚度是液压阻尼器的主要的机械特性参数。静刚度指液压阻尼器在受到持续载荷激扰时,抵抗变形的能力。动刚度指液压