1、为什么说简单才能执行,执行才是硬道理?
传统的单元测试理论,可以用两句古诗来形容:两个黄鹂鸣翠柳,一行白鹭上青天。高高在上,越扯越远。为什么会这样?专家们缺少实践。
肚子饿的时候,感觉能吃下一桌满汉全席,实际上,两碗饭就饱了。
没有单元测试实践的同学(有实践是指测试实际项目至少两三个月),刚开始往往希望“高、大、全”,感觉要做的能做的事很多很多,但在实际工作中,你的焦点主要在于完成产品的开发,单元测试只是开发过程中的提升效率和质量的一个手段,只有简单的、核心的方法和技术才会长期使用。
“高、大、全”在客观上往往是不执行的借口,抓住核心,马上执行,在执行中改进,才能马上有效益,想太多是没用的。
2、我不做单元测试,只做接口测试,可行吗?
一个模块只有十个接口,十个接口都测了,没问题,所以模块就没问题了,对不对?理论上是对的,实际上做不到。例如一个接口:BOOL CheckSatelliteStatus(); 功能是检测卫星的状态,它可能从全局变量、文件、数据库中读了很多数据,天上地下几个来回,然后把结果存在某些全局变量、文件或数据库中,而你看到的,就一个返回值,这个返回值可能没有意义,凭这一个返回值就能检测这个接口的功能?这是开国际玩笑。
可见才可检测,做好单元测试就行了,别想那么多。
3、我还要做集成测试,该如何做?
高层代码的单元测试,就是集成测试。
VU4具有底层输入、局部输入、局部输出功能,测试高层代码很简单,所以VU4是最好的集成测试工具。
把单元测试包括高层代码的单元测试做好,集成测试也就完成了。
4、单元测试要和持续集成结合吗?
持续集成是好事,但跟单元测试扯到一起,就很奇怪了。持续集成是“集成”,单元测试则要独立检测代码的功能逻辑,前提是“独立”,为了实现独立,需要做大量的工作,这些工作如果由工具来完成,你可能感觉不到,但并不表示不存在。“集成”和“独立”,完全是反方向的事情,硬扯到一块一定吃力不讨好。
开发过程中做好单元测试,测过的代码才能提交,持续集成针对的是已测试过的产品代码,不要去折腾测试代码的持续集成,那是没意义的。
5、发现缺陷应该发邮件给管理者吗?
发现缺陷应该立即修改产品代码,消灭缺陷,发邮件给管理者干什么呢?单元测试所能发现的错误数量是很多的,改了就OK了。