代码检查错误列表总结

  • 数据引用错误

  1. 是否有变量使用前未赋值或初始化
  2. 下标值是否越界(上越界,下越界)
  3. 是否有非整数下标
  4. 是否有虚调用(悬挂指针,没有内存空间)
  5. 当使用别名时,属性是否正确
  6. 记录和结构的属性是否匹配(存储形式)
  7. 是否计算位串地址,是否传递位串参数(字节边界)
  8. 基础存储属性是否正确
  9. 跨过程的结构定义是否匹配(多过程,多子程序使用中)
  10. 索引或下标是否有“仅差一个”的错误
  11. 继承需求是否满足
  • 运算错误

  1. 是否有非运算变量间的运算(数组,字符串)
  2. 是否有混合模式的运算(类型不同)
  3. 是否存在不同字长变量间的运算
  4. 目标变量大小是否小于赋值大小(空间不足)
  5. 中间结果是否上溢或下溢
  6. 是否除零
  7. 是否存在二进制不精确度(3.14*100=314?)
  8. 变量值是否超过有意义范围
  9. 操作符优先顺序是否正确
  10. 整数除法是否正确((n/2)*2 = n ?, n为偶数成立,n为奇数不成立)
  • 数据声明错误

  1. 是否所有变量已声明
  2. 默认属性是否正确理解
  3. 数组和字符串初始化是否正确
  4. 变量是否赋予正确长度,类型,存储类型
  5. 初始化是否与存储类一致
  6. 是否有相似变量名(num与nums)
  • 输入输出错误

  1. 文件属性是否正确
  2. OPEN语句是否正确
  3. I/O语句是否规范
  4. 缓冲大小与记录大小是否匹配
  5. 文件在使用前是否打开
  6. 文件在使用后是否关闭
  7. 文件结束条件是否正确处理
  8. 是否处理I/O错误
  9. 输出结果中是否有文字或语法错误
  • 控制流程错误

  1. 是否有多条分支路径
  2. 是否每个循环都终止
  3. 是否每个程序都终止
  4. 是否存在由于入口条件不满足而跳过循环的情况
  5. 可能的循环越界是否正确
  6. 是否存在“仅差一个”迭代错误(除(i=0; i<n; i++)外的都有嫌疑)
  • 比较错误

  1. 是否存在不同类型变量比较(string与指针,日期与数字)
  2. 是否有混合模式比较
  3. 比较运算符是否正确(“至多”、“至少”、“大于”、“不小于”、“等于”)
  4. 布尔表达式是否正确(&&、||、!)
  5. 比较运算符和布尔表达式是否混合(10<x<20→(0/1) < 20)
  6. 是否存在二进制小数比较
  7. 操作符优先顺序是否正确
  8. 编译器是否对布尔表达式计算方式正确(if(x==0 && (y/x)>z),注意有些与两边都计算,出现除零)
  • 接口错误

  1. 形参与实参数量是否匹配
  2. 形参与实参属性是否匹配
  3. 形参与实参量纲是否匹配
  4. 形参与实参个数是否匹配
  5. 形参与实参顺序是否匹配
  6. 全局变量定义在模块中是否一致
  7. 常数是否以实参形式传递
  • 其它检查

  1. 交叉应用列表中是否有未引用过的变量
  2. 是否有“警告”和“提示”信息(处理之)
  3. 是否对输入的合法性进行了检查
  4. 是否遗漏了功能
原文地址:https://www.cnblogs.com/hustlijian/p/2056102.html