- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四届中国测试学术会议
软件控制流故障诊断的研究’
朱伟,徐拾义
(上海失学计算机工程与科学学院)
摘要:软件的故障诊断是软件测试的一个重要组成部分,快速准确的定位故障发生位置对于提高软
件质量具有重要的意义.本丈提出了一种利用运行时执行路径计算的方法进行故障诊断的方法.该
方法在测试用例的驱动下,计算出执行路径和候选路径条,并在候选路径集中找出预期路径.通过
比较执行路径和预期路径,给出故障诊断的信.E-.
关键字:软件测试,故障诊断,执行路径,预期路径,候选路径
1.引言
软件测试是保证并提高软件质量的重要手段,如何提高软件的测试效率,是软件测试的一个重
要研究领域。多年来,许多专家学者对之进行了广泛而深入的研究,取得相当丰富的研究成果。Gupta
出了一种基于两两组合覆盖的测试数据启发式生成方法。目前,在软件测试领域。学者们的研究主
要集中在测试用例的生成方面,在软件故障诊断方面的报道还不多。
故障诊断是在软件测试之后不可缺少的关键性工作,方便可靠的故障诊断能够帮助开发人员迅
速找到故障位置并消除之,从而提高软件质量。所以对于软件故障诊断方法的研究具有相当重要的
现实意义。本文试图就一类特定的软件故障——控制流故障,提出一种实用的方法从待测程序和一
组已经得到的测试用例中诊断出软件的故障位置。
文章内容组织如下,第2部分,介绍控制流故障模型与软件测试的相关知识,第3部分论述对
一个故障进行诊断的具体算法,第4部分通过实例验证算法的有效性。
软件故障模型及其相关知识
Fault
Model)就是用一些基本故障的组合。软件故障模型应该
软件故障模型[6—7](Software
是软件物理错误的抽象,并能反映其本质的一定程度的组合。建立故障模型的好处是使用模型中给
出的信息就可以设计和编制算法。
定义1.软件控制流故障模型。软件流程中.控制流程的控制域与原有的控制域不相同的故障称
为控制流故障。
即在正常情况下某流程控制结构的控制域为E.当由于某种原因发生了故障后,该流程控制控制
结构的控制域改变为E’.当E≠E’时即发生了控制流故障。
定义Z.软件执行路径。软件在各个控制结构处所选择分支的一个序列。
·基金项目:田象自然科学基金资助项目
作者简介:来伟(1982’).男.硕士研究生
撩抬义(1941’).男.教授.博士生导师
第四届中国测试学术会议
假定一段程序存在控制结构E1E2……Ei(i∈刊),每一个控制结构都存在n个分支,记为Ein
径。
定理l_一段程序,在只考虑存在流程控制故障的情况下,程序的输出值域范围不会发生变化。
证明:一个流程控制结构用来进行分支选择,在流程控制结构中不存在对程序变量进行赋值操
其中f、g分别代表一个程序运算块,x,Y相当于f、g这些程序运算块的一个输入。那么一个流程
控制结构输入端是一个程序块,而往往流程控制结构会对应于多个输出,那么相当于不同的函数的
一个组合,因为流程控制块不会对程序变量进行赋值操作,也就是说流程控制结构不会影响到函数
的输入变量,所以也就不会影响到这些函数的值,也就是说当软件控制流控制结构发生故障的时候,
虽然输出值与预期值不同,但是仍然能找到一条路径得到预期的正确值。
定义3.软件执行候选路径集。是这个软件所有可能执行路径中除去执行路径后所剩下的所有路
径的集合称为候选路径集,其中输出和预期结构相同的那条路径称为预期路径。
因为根据定义1可知,控制流故障的表现就是因为某个控制流结构的控制域发生了变化,对于
程序执行来说,也就是程序执行时,在某个控制结构点处的路径选择出现了问题,而在无故障的程
序中,该处应该选择另外一个分支,而这个分支包含在候选路径之中。这样,通过记录一个程序的
候选路径就一定能够得到一条执行正确的路径。
定理2.对于一个被测程序仅存在控制流故障,如果根据一个已近给定的测试用例TC(input,
expectedResult)得到的输出与expectedResult的结论不一致,或者程序没有执行结束(系统死
机),那么这个程序的预期路径与执行路径中同一控制
文档评论(0)