|
1 设计错误
1.1 数据结构
数据定义丢失。
数据定义不正确。
数据定义不清楚。
数据定义矛盾。
数据定义次序颠倒。
共享数据访问控制丢失。
共享数据访问控制不正确。
共享数据访问控制次序颠倒。
1.2 算法
逻辑顺序丢失。
逻辑顺序多余。
逻辑顺序不正确。
逻辑顺序次序颠倒。
输入检查丢失。
输入检查多余。
输入检查不正确。
输入检查次序颠倒。
输出定义丢失。
输出定义多余。
输出定义不正确。
输出定义次序颠倒。
特殊条件处理程序丢失。
特殊条件处理程序多余。
特殊条件处理程序不正确。
特殊条件处理程序次序颠倒。
1.3 用户界面规范
关于用户的设想是不完善的。
一个规范项目丢失。
一个规范项目多余。
一个规范项目不正确。
一个规范项目不清楚。
规范项目次序颠倒。
1.4 软件接口规范
关于附属软件的设想是不完善的。
一个规范项目丢失。
一个规范项目多余。
一个规范项目不正确。
一个规范项目不清楚。
规范项目次序颠倒。
1.5 硬件接口规范
关于硬件的设想是不完善的。
一个规范项目丢失。
一个规范项目多余。
一个规范项目不正确。
一个规范项目不清楚。
规范项目次序颠倒。
2 编码错误
2.1 初始化错误
一个简单变量总是没有初始化。
一个简单变量有时候没有初始化。
一个简单变量用错误的数值初始化。
一个集合变量总是没有初始化。
一个集合变量有时候没有初始化。
一个集合变量用错误的数值初始化。
一个集合变量部分没有初始化。
一个集合变量没有被分配。
一个集合变量被分配了错误的大小尺寸。
一种资源没有被分配。
2.2 结束错误
一个集合变量没有被释放。
一种资源没有被释放。
2.3 绑定错误
一个变量以错误的范围声明。
一个程序调用丢失了参数。
一个程序调用有错误的参数次序。
一个程序调用有额外的参数。
实际参数传递的机制与形式参数的使用机制不匹配。
一个程序没有返回值。
一个程序返回错误的值。
2.4 引用错误
错误的程序被调用。
错误的变量被引用。
错误的常量被引用。
错误的变量分配。
一个变量没有被分配。
2.5 静态数据结构问题
一个简单的变量有错误的数据类型。
集合变量的一个成员有错误的数据类型。
一个集合变量的集合大小尺寸是错误的。
2.6 动态数据问题
数组下标超出范围。
数组下标不正确。
未初始化的指针被废弃。
空指针被废弃。
指向空内存的指针被废弃。
未初始化的指针被释放。
存储在空内存中的指针被废弃。
空指针被释放。
指向空内存的指针被释放。
指向静态内存的指针被释放。
指向自动(堆栈)内存的指针被释放。
2.7 面向对象问题
包含动态分配的空间的类不需要方法。
基类存在不正确声明的方法以便派生类进行覆盖。
错误的方法签名被用于调用一个超载的方法。
来自继承层次的错误类的方法被使用。
派生类没有完全地实现需要的功能。
2.8 存储问题
内存被损坏。
堆栈被损坏。
堆栈溢出。
堆被损坏。
地址空间的指针是无效的。
地址有一个无效的对齐。
2.9 丢失操作
返回代码或标志没有被设置。
返回代码或标志没有被检查。
异常没有被丢弃。
异常丢弃没有被处理。
事件顺序没有被预见。
程序状态没有被预见。
语句丢失。
程序调用丢失。
2.10 额外操作
返回代码或者标志在不需要时被设置。
异常在无效是被抛弃。
无关语句被执行。
无关程序调用被执行。
2.11 控制流问题
语句被错误的控制流条件控制。
循环迭代被1中断。
循环被过早地停止。
循环不确定地运行。
多分支中的一种情况丢失。
多分支选择了错误的情形。
语句被多次执行。
语句被执行的次数太少。
2.12 值损坏问题
算术操作下溢或者溢出。
精度损失。
有符号和无符号整数混合。
浮点数不正确地比较。
2.13 无效表达式
错误的变量被使用。
操作数输入是无效的。
错误的算术操作符被使用。
错误的算术表达式顺序被使用。
错误的关系操作符被使用。
错误的关系表达式顺序被使用。
错误的布尔操作符被使用。
错误的布尔表达式顺序被使用。
存在丢失的项。
存在额外的项。
2.14 排版错误
丢失字符。
存在额外的字符。
字符次序颠倒。
2.15 其他人的问题
不正确地使用编译器。
不正确地使用软件工具。
不正确地使用系统库。
不正确地使用第三方库。
系统库中有缺陷。
编译器中有缺陷。
软件工具中有缺陷。
操作系统中有缺陷。
第三方库中有缺陷。 |
|