程序逻辑错误定位与字符串字典压缩技术解析
程序逻辑错误定位相关技术
不变量检测方法
在程序开发中,不变量检测有静态和动态两种方式。静态检测借助基于编译器问题的技术,例如提取程序源代码的数据流图来发现不变量。不过,静态检测存在明显问题,程序员很难发现不变量,追踪代码和检测变量值之间的规则是一项艰巨的任务,尤其是在考虑指针、多态等情况时。
动态检测则是通过多次以不同输入参数值运行程序,并依据变量值及其之间的关系来发现不变量。动态方法存在粗心、耗时的问题,而且结果的可靠性欠佳。
以下是两种检测方式的对比:
|检测方式|优点|缺点|
| ---- | ---- | ---- |
|静态检测|可借助编译器技术|程序员发现不变量困难,处理复杂情况难度大|
|动态检测|基于多次运行程序发现不变量|粗心、耗时,结果可靠性不高|
软件故障预测相关
基于机器学习和统计的软件故障预测方法自20世纪90年代起就备受关注。研究表明,若构建稳健的模型,故障预测模型的检测概率(71%)可能高于软件审查人员(60%)。软件故障预测具有诸多优势,具体如下:
1. 达成高度可靠的系统。
2. 通过聚焦易出错模块来改进测试流程。
3. 利用面向对象指标从设计方案中挑选最佳设计。
4. 识别被预测为易出错的重构候选对象。
5. 通过改进测试流程提升质量。
Daikon算法
Daikon算法先以多个不同输入参数运行程序,接着对程序进行插桩,每次运行时将变量值保存到数据跟踪文件中。之后,它从数据跟踪文件中提取变量值,利用一系
超级会员免费看
订阅专栏 解锁全文
2665

被折叠的 条评论
为什么被折叠?



