QCon 2011参会收获——关于测试
关于测试
在QCon北京2011的第二天,有一个主题叫做“更有效地测试”,主持人是曾经在Google中国担任测试经理的段念,他作为这个主题的主持人非常合格,可惜的是这次没有听到他自己关于测试的一些经验和观点。
测试的重要性,想必大家都已经非常清楚,编写好的程序想要真正能够应用,测试过程是必不可少的,而且,想要更好地应用敏捷的一些方法和观点,首先就要让我们编写的程序是可以测试的,那样才能够保证我们的重构过程不会破坏原有的功能;另外,测试驱动开发的方法已经被很多人的实践证明,是一种很不错的保证开发程序质量和效率的方式;另外,项目中的测试也分为了很多种类型:单元测试,整合测试,用户界面测试,性能测试,用户接受测试等等,所有这些测试都是为了保证程序的质量。
而在这次大会上,我听到的两个主题侧重的是另外两个方面。
首先是腾讯的测试经理吴凯华带来的关于测试平台的创建,尽管业界已经有了很多种针对各种类型测试的软件,但是他认为,针对特定的需求,这些软件还是无法满足测试的需要。而且,对于所有的测试结果,还应该有一个平台来进行管理,包括测试的记录日志,测试的脚本等等,都应该进行管理。
因此他一直致力于测试平台的构建,吴凯华曾经参与了两个测试平台的工作,而现在正在腾讯为创建新的测试平台而努力,尽管现在的效果还不尽人意,但他还会继续为了改善那个平台而努力。
吴凯华认为,测试平台是对各种测试工具的整合,一方面要有一个前台的管理界面,对执行的各种测试要记录,对各种脚本要保存,从而更有效地自动化地执行各种测试,并能够对各种测试的结果进行管理和分析;另一方面,也是测试平台的核心所在,就是后台对于各种测试工具的整合,这部分也是最难于构建的部分。
紧接着这个Session,是Ivar Jacobson公司的吴穹带来的关于分层测试的演讲。
尽管讲的都是测试,但是吴穹对于吴凯华的某些观点不是非常同意,对于测试平台,他的观点是,先尽量使用开源的测试工具,如果不满足需要的话,就修改开源的测试工具,实在逼不得已,才要构建自己的测试平台或者测试框架,这应该也和敏捷观点是紧密相关的,敏捷提倡的就是要避免浪费,而想要构建自己的测试平台,肯定要消耗大量的人力和财力,那也不是一般的中小型公司所能够承受的,所以他才会提出那样的观点吧。
吴穹博士所讲述的分层测试很有意思,他把测试分成了四种:
- 开发者测试
- 控制驱动集成测试
- 界面驱动集成测试
- 验收测试、性能测试
对于一个系统或者程序,要执行这四种测试,而每种测试所针对的目的也都不尽相同。也正因为需要执行四种不同的测试,而各种测试的用例之间必定会存在一定的交集,所以他认为,我们不需要在每种测试的时候都保证100%的测试覆盖率,足够好的测试覆盖率就好,比方说,每种测试的覆盖率都达到40%左右,而最终整体的测试覆盖率达到70-80%,就足够好了。
这四种测试侧重点都有所不同,就像净化水的过程一样,每一层过滤装置所要过滤掉的杂质都不一样,在各种测试中所要找到的缺陷也不一样,因此,我们不需要在开发者测试的时候找到界面上的bug,每种测试都只需要负责找到应该找到的bug就好。
吴穹博士的演讲中也体现了80-20的观点,他认为足够好的测试就足够了,即便是总体上的综合测试覆盖率,也只需要达到70-80就好了,而且应该是针对核心功能要着重测试,而对于某些代码,像set和get方法,本身就是很简单的方法,即便测试没有覆盖,也无伤大雅。这样的观点也和精益的思想有很好的契合。
作者:侯伯薇@大连
出处:http://www.cnblogs.com/houbowei/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。