软件单元测试之单元测试的目的

发表于:2009-04-07来源:作者:点击数: 标签:单元目的软件
最近被公司逼的急了,它要求在这个月里写一篇关于 单元测试 的论文。无奈之下,只好来到这里记录下自己学习的点点滴滴。以方便自己以后整理成论文。 做事往往要带很强的目的性去做才可以成功,单元测试也不例外 单元测试目的: 首先保证代码 质量 。 其次保证
最近被公司逼的急了,它要求在这个月里写一篇关于单元测试的论文。无奈之下,只好来到这里记录下自己学习的点点滴滴。以方便自己以后整理成论文。

        做事往往要带很强的目的性去做才可以成功,单元测试也不例外

单元测试目的:
首先保证代码质量
其次保证代码的可维护。
再此保证代码的可扩展。

目的之一代码的代码质量。
        我们编写的代码虽然可以通过编译器检测到语法的正确性质,但并不能保证代码逻辑也是正确的。我们该怎么保证代码执行是正确的呢。好下面我们来看下代码。


java 代码
 
   int add(int x, int y){  
    return x+y;  
}  

   上面的功能模块。下面是段测试代码
 
java 代码
 
void testAdd(){  
    //我们要求程序逻辑是1+4=5;  
    assertEquals(5,add(1,4); 


        经过测试以后,如果你修改了int add(int x, int y);里面的逻辑,如果修改的正确,测试代码始终都是见到绿色的。如果你逻辑错了。那不好意思,你的测试将会让你重新写那段逻辑代码。直到你正确为止。
        有个比较特殊的情况,如果我测试代码写成这样,那我保证逻辑代码的正确性,但我却看不到我期待的绿色,这有是什么原因呢?

java 代码
 
1. void testAdd(){    
2.     //我们要求程序逻辑是1+4=5;    
3.     assertEquals(6,add(1,4);   
4. }   
        我个人认为这个问题并是逻辑代码的问题,而是你测试代码中的逻辑问题,
        噢,MyGot,作为程序员的我。已经为逻辑代码伤脑筋了。还要为测试代码烦恼,做人真命苦啊。  想来也确实是这样。
        这就引申了另外一个问题,怎么样才可以保证我逻辑代码的可测性?

目的之二代码的可维护性。
        就拿上面的例子来说吧。只要我们的单元测试是正确的,那我们就可以保证无论你怎么修改那段代码,只要测试代码可以产生绿色条,那OK,你修改的逻辑代码是正确的。当然可维护并非只有这点,还有,比如保证修改了这段代码不会影响到其他的模块等。

原文转自:http://www.ltesting.net