APP下载

基于风险轨迹与复杂网络的缺陷定位方法

2020-06-18王曙燕孙家泽

计算机工程 2020年6期
关键词:程序方法

王曙燕,韩 雪,孙家泽

(西安邮电大学 计算机学院,西安 710121)

0 概述

随着软件复杂性的增加,软件缺陷几乎不可避免。程序调试在软件开发与维护过程中是一项成本昂贵且复杂耗时的工作[1]。研究表明,软件发展维护过程中50% ~80%的成本用于软件测试和调试[2]。因此,如何有效快速定位软件缺陷是保证软件高质量和可靠性的关键性工作。

当程序输出偏离预期输出时,通常说明程序中存在缺陷。传统的软件缺陷定位方法大多是在源码中设置断点,在失败的输入上重新执行程序,并检查程序状态以了解失败的原因,但该方法依赖于程序员的主观判断,效率不高。为实现软件缺陷定位自动化,许多用于调试的自动缺陷定位技术被提出。文献[3]提出将程序切片技术用于软件调试中,常被用来减少错误的搜索范围,但存在时间和空间复杂度过高的问题。文献[4]提出基于覆盖信息的错误定位技术,通过对成功和失败测试用例执行过程中的覆盖信息进行分析,计算语句可疑度,例如Tarantula[5]、Jaccard[6]和Ochiai[7]等方法,但这些方法会受到偶然性成功测试用例的影响[8],使定位效率降低。文献[9]提出程序谱的概念,程序谱记录了程序运行过程的某方面信息,可用于跟踪程序行为。文献[10]通过对程序频谱间差异和回归缺陷的相关性进行研究,实验结果表明有缺陷的程序在运行过程中表现出行为异常的概率较大。文献[11]根据程序光谱间的相似性进行缺陷定位,但如果错误语句不在可疑集合中,则定位效率会明显降低。……

登录APP查看全文

猜你喜欢

程序方法
学习方法
试论我国未决羁押程序的立法完善
失能的信仰——走向衰亡的民事诉讼程序
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
用对方法才能瘦
创卫暗访程序有待改进
四大方法 教你不再“坐以待病”!
赚钱方法
捕鱼