静态代码质量分析技术.ppt

静态代码质量分析技术

关于代码 你有什么样的先验知识? 如何形式化描述这些知识? 如何使用这些知识查找缺陷? 动态测试 离线运行程序 应用最广泛的缺陷查找技术 对功能性最有效 工作量大:微软(半数的测试人员?) 自动程度难以提高 基本分类 黑盒 白盒 静态缺陷查找 不运行程序(广义测试包含这类活动) 静态分析可以涉及更多的路径组合 测试一次只能有一个执行轨迹 可以分析多种属性 死琐?安全漏洞?性能属性? 源码?目标码? 在线检测 当系统正在为用户提供服务时,一般不能进行测试:输入受限 但可以进行检测,获取各种状态、事件 进行分析,并可能据此调整目标系统 尽量减少对系统的应用 与静态分析结合? 二、静态代码缺陷类别 与具体应用“无关” 词法或者语法 共性特性(死锁、空指针、内存泄露、数组越界) 公共库用法(顺序、参数、接口实现,容错,安全) 与具体应用“相关” 类型定义(操作格式,不含其它信息(信息隐藏)) 类型约束(调用的顺序、参数值,接口实现) 需求相关(正确) 如何得到这些知识? 与具体应用无关 词法或者语法:语言设计人员 共性特性: 基础知识 公共库用法:库开发人员(形成文挡) 用户整理(分析实现代码、分析使用代码) 与具体应用相关 类型定义:

文档评论(0)

1亿VIP精品文档

相关文档