发布新日志

  • 代码检查错误列表总结2

    2007-08-23 13:34:38

    3.运算错误

    • 是否存在不一致的数据类型(如非算术类型)的变量间的运算?
    • 是否有混合模式的运算?例如,将浮点变量与一个整型变量做加法运算。这种情况并不一定是错误,但因该谨慎使用,确保程序语言的转换规则能够被正确理解。
    • 是否有相同数据类型,不同字长变量间的运算?
    • 赋值语句的目标变量的数据类型是否小于右边表达式的数据类型或结果?
    • 在表达式的运算中是否存在表达式向上或向下溢出的情况?
    • 除法运算中的除数是否可能为0?
    • 如果计算机表达变量的基本方式是基于二进制的,那么运算结果是否不精确?
    • 在特定场合,变量的值是否超出了有意义的范围?
    • 对于包含一个以上操作符的表达式,赋值顺序和操作符的优先顺序是否正确?
    • 整数的运算是否有使用不当的情况,尤其是除法?

    4.比较错误

    • 是否有不同数据类型的变量之间的比较运算
    • 是否有混合模式的比较运算,或不同长度的变量间的比较运算?
    • 比较运算符是否正确?
    • 每个布尔表达式所叙述的内容是否都正确?
    • 布尔运算符的操作数是否是布尔类型的?比较运算符和布尔运算符是否错误的混在了一起?
    • 在二进制的计算机上,是否有用二进制表示的小数或浮点数的比较运算?
    • 对于那些包含一个以上布尔运算符的表达式,赋值顺序以及运算符的优先顺序是否正确?
    • 编译器计算布尔表达式的方式是否会对程序产生影响?
  • 代码检查错误列表总结1

    2007-08-22 11:13:54

    1.数据引用错误

    • 是否有引用的变量未赋值或未初始化?
    • 对于所有的数组引用,是否每一个下标的值都在相应维规定的界限之内?
    • 对于所有的数组引用,是否每一个下标的值都是整数?
    • 对于所有的通过指针或引用变量的引用,当前引用的内存单元是否分配?
    • 如果一个内存区域具有不同属性的别名,当通过别名进行引用时,内存区域中的数据值是否具有正确的属性?
    • 变量值的类型和属性是否与编译器所预期的一致?
    • 在使用的计算机上,当内存分配的单元小于内存可寻址的单元大小时,是否存在直接或间接的寻址错误?
    • 当使用指针或引用变量时,被引用的内存的属性是否与编译器所预期的一致?
    • 假如一个数据结构在多个过程或子程序中被引用,那么每个过程或子程序对该结构的定义是否都相同?
    • 如果字符串有索引,当对数组进行索引操作或下标引用,字符串的边界取值是否有“仅差一个”的错误?
    • 对于面向对象的语言,是否所有的继承需求都在实现类中得到了满足?

    2.数据声明错误

    • 是否所有的变量都进行了明确的声明?
    • 如果变量所有的属性在声明中没有明确说明,那么默认的属性能否被正确理解?
    • 如果变量在声明语句中被初始化,那么它的初始化是否正确?
    • 是否每个变量都被赋予了正确的长度和数据类型?
    • 变量的初始化是否与其存储空间的类型一致?
    • 是否存在着相似名称的变量?
  • 软件测试的原则

    2007-08-21 13:32:17

    1.测试用例中一个必需部分是对预期输出或结果的定义。

      一个测试用例必须包括两个部分:

      a.对程序的输入数据的描述

      b.对程序在上述输入数据下的正确输出结果的精确描述

    2.程序员应当避免测试自己编写的程序。

    3.编写软件的组织不应该测试自己编写的软件。

    4.应该彻底检查每个测试的执行结果。

    5.测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况。

    6.检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”。

    7.应避免测试用例用后即弃,除非软件本身就是一个一次性的软件。

    8.计划测试工作时不应默许假定不会发现错误。

    9.程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比。

    10.软件测试是一项极富创造性,极具智力挑战性的工作。

Open Toolbar