51Testing软件测试网'xMM9M8?x te最近在研究单元测试工具,发现单元测试工具很多也是一款自动化测试工具
n4E.o6q
pURh051Testing软件测试网.YX;Lfe3A1q#}Z[比如正在研究的TestDriven 就是集成Nunit的一个自动化单元测试工具51Testing软件测试网OT'XR.vGw(q6T9e
xE"s(r
R&V!F:LyD0关于单元测试,很多人对它都有误区
3I9go7v UDub8@0 iWj^(Le@lK0有人带着对单元测试的崇拜之情的对我说:白盒的单元测试可以测试到非常细致的程度,包括,数组边界,空指针情况。(呵呵,感觉他觉得单元测试真是一款神奇而完美的测试方法。)
!rJ.g3W2oz0,z
zl%p6@0我告诉他:是的,所有的问题和bug,只要它在一定条件下能够表现出跟期望输出的不同,那么我们就可以测试出它。51Testing软件测试网
~H7D"P y;Z`,k
7y"t_8n%Lq P!\0但是单元测试能够测试到多深的程度,全看我们的单元测试用例设计到多详细的程度。(跟其它集成测试,系统测试一样)
A@y S?0I;vl({)w0并不是脑子里面想象的:单元测试工具一运行,我们代码的什么问题都找出来了。51Testing软件测试网 NmS{zg(??
51Testing软件测试网t%h+@3w z[Q4g测试并不像编译时候找语法错误这么简单。
5J;n-F7USBS0P)eb2l1vp wG0测试,它一定要有个期望输出,将实际输出和期望输出比较,不一致,我们才能发现错误
+|:D#b*D%gpbE;?5X051Testing软件测试网*RCZ?
^(~.J&Ku所以,是的,单元测试能够找到很深程度的问题,只要你设计了相应的用例。51Testing软件测试网6l2W2b"kqm q
L`w
UtLOR0但是我们都知道,这个就是个矛盾了。51Testing软件测试网aF6Y i
\
51Testing软件测试网?'v{ r}单元用例越详细,单元测试代码写的就越多,当你单元测试代码写到源代码的10倍以上了,呵呵我相信你的源代码应该就比较完美了。。。51Testing软件测试网tEE7e)t
\:{
juXqoqV"l0可是这个代价多高?成本多高?呵呵!
+Thwj6SK2b0{
Y k-n,a0完美的测试可以发现代码所有的错误,可是,这个测试的成本也可想而知,呵呵
5R Z&r9E8R@/~W0 x!w'w}`#Xfae A0测试不要钻牛角尖,希望发现所有的错误。
6} Ac N)^?o0+@h,sPoVI0我们测试的目的就是在有限的时间里面发现最多最重要的BUG!51Testing软件测试网8e*VE
tI0|a.v