错误定位技术

前言

视频:北大-软件分析-公开课
文档:课件
简单记录下。


基于测试的错误定位

静态分析、测试等技术都是为了发现缺陷。当一个缺陷被发现之后,如何修复该缺陷:如何知道缺陷是因为哪行程序的错误导致的;当定位到有缺陷的语句之后,如何修复该语句的缺陷;

基于测试的错误定位:

  • 输入:软件系统的源码;一组测试,至少有一个没有通过;
  • 输出:一个可能有错误的程序元素列表,根据出错概率排序。(程序元素可以定义在不同级别上:表达式,语句,方法,类,文件)

基于频谱的错误定位

基本思想:被失败的测试用例执行的程序元素,更有可能有错误;被成功的测试用例执行的程序元素,更有可能没有错
误;

下面例子:

  • 错误的那一列,经过第一、三行。所以错误可能出现在第一、三行。
  • 第一行有3个测试用例通过;第三行有有两个测试用例通过。所以,错误更可能出现在第三行。
    在这里插入图片描述
    在这里插入图片描述

其他

程序切片:出错的语句只可能存在于动态反向切片中;动态反向切片可以有效的缩小错误语句的范围;
基于状态覆盖的错误定位、基于变异的错误定位etc

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

da1234cao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值