单元测试重点
● 先判断功能是不是错误引起(如舍入误差就不是由错误引起的)
● 模块接口:模块接口测试主要检查下述几个反面-参数数目,次序,属性,单位系统与单元是否保持一致;是否修改只作输入用的变元;全局变量的定义和用法在各个模块中是否一致
● 局部数据结构
● 重要执行通路:在测试期间选择最有代表性,最可能发现错误的执行通路进行测试十分关键
● 出错处理通路:
● 对错误的描述是难以理解
● 记下错误与实际遇到的错误不同
● 在对错误进行处理之前,错误条件已经引起系统干预
● 对错误的处理不正确
● 描述错误的信息不足以帮助确定造成错误的位置
调试途径
● 蛮干法:仅当所有其他方法都失败了得情况下才用
● 回溯法:从症状发现地方开始,人工沿着程序的控制流往回追踪分析源程序代码,知道找到错误为止,调试小程序最有效的方法
● 原因排除法:
● 对分查找法:如果已经知道每个变量在程序内的若干个关键的正确值,则可以用赋值语句或输入语句在程序中的附近注入这些变量的正确值,然后运行程序并检查所得到的输出
● 归纳法:是从个别现象推断出一般性结论的思维方式,使用这种调试程序时,首先把和错误有关的数据组织在一起分析,以便发现错误原因
● 演绎法:从一般原理或前提出发,经过排除和精华的过程推导出结论,采用这样的方法,首先设想出所有可能出错的原因,然后试图用测试来排除每一个假设的原因
两个重要测试技术
白盒子技术
目的:
在测试者完全知道程序的结构和处理算法.按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按照预定的要求工作.又称机构测试.
逻辑测试的覆盖种类:
● 语句覆盖: 至少每个语句都应该执行一次.
● 判断覆盖: 每种判断的每种可能的结果都因该至少执行一次.也就是每个判断的分子都至少执行一次.
● 条件覆盖: 每个判断表达式的每个条件都取到各种可能的结果
● 判定条件覆盖: 有时候判断覆盖不一定包含条件覆盖,条件覆盖不一定包含判断覆盖.所以为了满足两种覆盖出现了这个覆盖.
● 条件组合覆盖: 选取足够多的测试数据,使的每个判断表达式中条件的各种可能组合都至少出现一次.
● 路径测试:选取足够多的测试数据.使程序的每条可能路径都被执行一次.
● 其他覆盖: 点覆盖/边覆盖