对软件测试的认识
作者:网络转载 发布时间:[ 2013/7/15 14:12:37 ] 推荐标签:
再总结一下白盒和黑盒测试:
White box testing means that you know the input, you know the inner workings of the mechanism and can inspect it and you know the output.
With black box testing you only know what the input is and what the output should be.
因此通常情况下,UT是白盒测试,但是有时候也可以是黑盒。例如现在流行的测试驱动开发,UT是根据需求先于代码被创建出来的,此时的UT只知道我们有什么,然后希望看到什么,所以是黑盒。
而其他的测试则大部分是黑盒测试。但是集成测试和回归测试也可以是白盒。
前面提到的,测试对源代码覆盖率的问题,理论上只有对白盒测试,这个指标才有意义。对与黑盒测试,代码覆盖率根本不make sense。
对与某些领导提的,“我们这个集成测试要覆盖源代码”,基本是脑子被门挤了。
但是需要说明的是,黑盒测试一样可以计算代码覆盖率,虽然我认为没有什么意义。
使用cobertura注入后,可以方便的得到任何一个集成测试对源代码的覆盖率。具体可以参考我写的cobertura的介绍。
后提一下目前流行的开源mock框架(因为我是developer所以尤其关注UT相关的工具)
较早的时候EasyMock是流行的工具之一。
现在来看,EasyMock由于出现的较早,因此功能也比较少。使用EasyMock会遇到很多不容易mock的情况。
Mocktio
EasyMock之后流行的mock工具。特点是句法结构清晰,易理解。文档比较全,由于比较流行所以遇到问题容易找到解答。
Mockito足以解决大部分UT的mock需求。总得来说是非常不错的mock工具。
PowerMock
其实这个工具是在EasyMock和Mockito上扩展出来的,目的是为了解决EasyMock和Mockito不能解决的问题。
我在介绍PowerMock的文章中详细说明了这个工具可用于哪些特殊mock需求。
缺点是该工具文档较少,例子不全,使用时遇到问题不容易解决。同时PowerMock需要和EasyMock或Mockito配合一起使用。
因此必须先掌握EasyMock或Mockito。
Jmokit
http://code.google.com/p/jmockit/
另外一个类似PowerMock的工具。这个工具我不准备介绍了(近看mock工具看的审美疲劳了)。
该工具实现和PowerMock相同的功能因此如果不喜欢PowerMock可以选择这个工具。
相对PowerMock, 这个工具文档比较全,适于学习。
另外还有Jmock等等mock工具,非常之多也很杂。此外也有一些专用Mock工具,比如MockFTPServer。
开源的世界很有意思呀~

sales@spasvo.com