• 接口功能测试:用来保证接口功能的正确性。
  • 局部数据结构测试(不常用):用来保证接口中的数据结构是正确的
    • 比如变量有无初始值
    • 变量是否溢出
  • 边界条件测试
    • 变量没有赋值(即为NULL)
    • 变量是数值(或字符)
      • 主要边界:最小值,最大值,无穷大(对于DOUBLE等)
      • 溢出边界(期望异常或拒绝服务):最小值-1,最大值+1
      • 临近边界:最小值+1,最大值-1
    • 变量是字符串
      • 引用“字符变量”的边界
      • 空字符串
      • 对字符串长度应用“数值变量”的边界
    • 变量是集合
      • 空集合
      • 对集合的大小应用“数值变量”的边界
      • 调整次序:升序、降序
    • 变量有规律
      • 比如对于Math.sqrt,给出n^2-1,和n^2+1的边界
  • 所有独立执行通路测试:保证每一条代码,每个分支都经过测试
    • 代码覆盖率
      • 语句覆盖:保证每一个语句都执行到了
      • 判定覆盖(分支覆盖):保证每一个分支都执行到
      • 条件覆盖:保证每一个条件都覆盖到true和false(即if、while中的条件语句)
      • 路径覆盖:保证每一个路径都覆盖到
    • 相关软件
      • Cobertura:语句覆盖
      • Emma: Eclipse插件Eclemma
  • 各条错误处理通路测试:保证每一个异常都经过测试