如何防止单元测试实施中因小失大 .

上一篇 / 下一篇  2012-12-07 09:48:53

 “独立”状态下易以发现的错误,才是单元测试的目标;集成后才易以发现的问题,应该留待系统测试。具体来说,代码单元本身的功能逻辑错误都是单元测试的目标,而设计错误、性能问题难于在最小单元内测试,不是单元测试目标。性能问题是指时间性能(如执行速度)和空间性能(如存储空间大小、内存泄漏)。

单元测试也不考虑平行和向上依赖关系,并把向下依赖抽象为内部输入,例如,测试一个函数时,不考虑这个函数在项目中是被普通调用、系统回调、消息或信号调用、还是中断调用;不考虑多线程、重载;嵌入式环境中的端口、寄存器等在代码中都是内存,视为全局变量;并把底层函数(包括操作系统API)的输出视为内部输入。总之,只用各种输入(包括内部输入)下是否产生了正确输出的方式,完整测试函数的功能逻辑,也正因为这个原因,单元测试可以脱离原来的平台环境,在易以实施的平台上进行,例如,在PC上测试嵌入式项目,在Windows上测试Linux项目,都是可行的。

       编码规范检查与单元测试无关,无论是否实施单元测试,编码规范检查都是必不可少的工作。静态分析属于全局扫描,严格来说也不是单元测试,提高编译器的警告级别,就是最简单高效的静态分析。

       综上所述,单元测试要做的,就是检测代码单元的功能逻辑是否正确,包括对各种可能输入是否考虑全面,每种输入的处理是否正确。除此之外,不要把其他本不属于单元测试的目标牵扯到单元测试中来。

单元测试是意义重大且困难的工作,目标应该具体而明确,将不属于单元测试或单元测试不擅长的目标牵扯进来,其结果往往是“拣了芝麻,丢了西瓜”,造成单元测试实施失败。

TAG:

 

评分:0

我来说两句

日历

« 2024-05-05  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 6318
  • 日志数: 10
  • 建立时间: 2012-09-25
  • 更新时间: 2012-12-07

RSS订阅

Open Toolbar