(3)计算错误

  计算错误是指基本的数学逻辑问题。

  * 计算中是否使用了不同数据类型的变量,如整数与浮点数相加?

  * 计算中是否使用了数据类型相同但字节长度不同的变量?

  * 计算时是否了解和考虑到编译器对类型或长度不一致的变量的转换规则?

  * 赋值的目的变量是否小于赋值表达式的值?

  * 在数值计算过程中是否可能出现溢出?

  * 除数或模是否可能为零?

  * 对于整型算术运算或某些计算,特别是除法的代码处理是否会丢失精度?

  * 变量的值是否超过有意义的范围?

  * 对于包含多个操作的表达式,求值次序是否混乱,运算优先级对吗?需要加括号使其清晰吗?

  (4)比较错误

  小于、大于、等于、不等于、真、假、比较和判断错误很可能是边界条件问题。

  * 比较得正确吗?

  * 存在分数或者浮点数之间的比较吗?如果有,精度问题会影响比较吗?1.00000001和1.00000002极其接近,它们相等吗?

  * 每一个逻辑表达式都正确地表达了吗?逻辑计算如期进行了吗?求值次序有疑问吗?

  * 逻辑表达式的操作数是逻辑值吗?

  (5)控制流程错误

  控制流程错误是指编程语言中循环等控制结构未按预期方式工作,通常由计算或者比较错误直接或间接造成。

  * 程序中的语句组是否对应?

  * 程序、模块、子程序和循环能否终止?如果不能,可以接受吗?

  * 可能存在永远不停的循环吗?