- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件故障定位关键技术研究综述
摘 要:软件故障定位旨在利用程序信息和测试信息定位出故障语句或给出出错语句的可疑范围,以辅助提高软件质量。随着软件结构的复杂化与软件规模的扩大化,程序运行状态呈指数级增长,已经无法单独依靠手动定位技术进行故障排查。因此,越来越多的辅助定位技术应运而生。为了探索这些技术的实用性,首先介绍了传统的故障定位技术以及近年来最新推广的故障定位技术,然后总结了常用的测试程序集,最后提出故障定位的关键问题并指出了未来值得关注的研究方向。 关键词:故障定位;程序调试;软件测试;执行跟踪;可疑代码 DOIDOI:/ 中图分类号:TP301 文献标识码:A 文章编号:1672--0205-05 0 引言 软件应用的日益广泛已深入影响到人们的生活[1-3],尤其在许多危及安全的行业,如医药、航空、核能行业等,而且这种趋势随着软件的复杂化而更加明显。与此同时,也衍生了令人堪忧的软件故障,故障的产生不仅导致经济损失,甚至可能造成生命威胁[4]。伴随着软件成本的增加,超过一半的修复成本被传递给消费者。因此,为了降低成本、提高软件质量,必须加强软件故障定位的研究。 软件调试中一个很重要的因素就是找到产生程序故障的根源,失败问题产生的根源可能离程序展示出的位置距离很远,例如程序崩溃或产生故障输出时无法直接定位具体故障源。因此,软件故障定位和软件故障修复应运而生。相对于软件修复,故障定位更为重要,定位是修复的必要条件。由于软件系统规模不断扩大,使传统的手工定位耗时耗力,而且受软件开发人员的思维定位,以及编码风格、约束规范限制,可能导致无法快速有效地找到故障位置。通过引入自动化故障定位技术,可使定位效率大大提高。目前,越?碓蕉嗟难芯空呖?始致力于软件故障定位的研究且取得了可观的成果,本文主要对XX年以来故障定位的相关成果进行研究,以期准确把握故障定位的发展方向。 1 故障定位技术 故障定位常见技术 传统的故障定位技术在简单的小型程序中解决了软件可靠性低的难题,提高了软件质量,但是随着软件的规模化与复杂化发展,近年来不断出现新的故障定位技术,虽然没有任何一种技术可以适用于所有故障定位场景,但是各种技术都各具优势。 基于覆盖的故障定位技术 故障定位研究实质上是解决如何把存在故障的程序语句排名推至首位。基于覆盖的故障定位技术较为直观,覆盖分析法正是采用可疑度描述来降低定位复杂度,尤其适用于一些大规模的故障定位。Wong等[6]作了如下假设:元素可疑度与被成功测试用例覆盖次数成反比,与被失败测试用例覆盖次数成正比。简而言之,如果该元素被失败测试用例覆盖的多,而很少被成功测试用例覆盖,该处引发故障的可能性则很大;Jones等[5]基于同样的思想提出利用覆盖信息和测试信息定位错误,并开发了可视化工具Tarantula;Xie等[7]提出了集合理论的分析框架,之后又通过蜕变技术将软件测试分析技术集成到故障定位中[8],反映了更加真实的场景。其不足之处是测试用例的数量、质量限制了覆盖的全面性,而且如果用例数量过少,覆盖不全面,或者用例质量差,大量测试用例重复覆盖相同代码,将产生大量冗余覆盖,从而导致故障定位的精准度降低[9]。 基于程序切片的故障定位技术 程序切片技术将程序抽象化,通过删除不相关的部分将程序用切片表示,切片保留原始程序的行为规范。程序切片技术包括静态切片技术和动态切片技术。静态切片技术是对源程序采取静态分析技术,利用语句之间的依赖关系将相关变量语句集合形成静态切片。静态切片技术最早由Weiser首次提出[10],该技术主要将整个程序分为若干个切片,通过含有错误变量的程序切片来排除无关变量,从而缩减故障范围。静态切片的缺点是,片的大小可能会对给定的可执行语句带来影响,如变量值随着执行的改变导致切片发生变化,而且当程序规模较大时,算法时间开销会很大。因此,Zhang等[11]提出了多种动态切片技术,包括后向动态切片、前向动态切片和双向动态切片。BWS通过执行语句输出而捕捉故障变量的值;FWS通过计算成功用例的最小输入触发故障所在位置;BIS通过确定失败执行用例的谓词执行情况,生成正确的输出,从而找到故障所在位置。 基于程序频谱的故障定位技术 基于频谱分析进行故障定位的方法简单而言是根据测试用例集合运行完成后的记录信息,使用风险评估方法对程序中的每一行语句计算故障可疑度。可利用的记录信息主要是程序执行过程中的剖面信息与测试用例是否通过的信息[31]。 表1给出了常用的符号说明作参考。 最新推广的故障定位技术 基于数据挖掘的故障定位技术 基于数据挖掘的故障定位技术试图从大量程序运行信息数据中提取相关信息,产生一个可使用的数据模型,从而达到定位效
您可能关注的文档
最近下载
- 基于PLC的混凝土搅拌站电气控制系统设计.doc VIP
- 数字通信用对绞或星绞多芯对称电缆 第3部分:工作区布线电缆 分规范.pdf VIP
- DB21T1234-2003辽宁省建筑工程施工质量验收实施细则.pdf VIP
- 2025中原农业保险股份有限公司招聘67人考试参考试题及答案解析.docx VIP
- 《社会制度》课件.ppt VIP
- 2024银发族消费报告.docx VIP
- 开通PTA,铁矿石,期货特定品种交易基础知识测试题.xls VIP
- 2025中原农业保险股份有限公司招聘67人参考考试题库及答案解析.docx VIP
- T CI 206—2023 涉河建设项目防洪评价分析与计算规程.pdf VIP
- 关于开展村(社区)组织换届工作的实施方案.doc VIP
原创力文档


文档评论(0)