QCon 2011参会收获——关于测试

关于测试

在QCon北京2011的第二天,有一个主题叫做“更有效地测试”,主持人是曾经在Google中国担任测试经理的段念,他作为这个主题的主持人非常合格,可惜的是这次没有听到他自己关于测试的一些经验和观点。

测试的重要性,想必大家都已经非常清楚,编写好的程序想要真正能够应用,测试过程是必不可少的,而且,想要更好地应用敏捷的一些方法和观点,首先就要让我们编写的程序是可以测试的,那样才能够保证我们的重构过程不会破坏原有的功能;另外,测试驱动开发的方法已经被很多人的实践证明,是一种很不错的保证开发程序质量和效率的方式;另外,项目中的测试也分为了很多种类型:单元测试,整合测试,用户界面测试,性能测试,用户接受测试等等,所有这些测试都是为了保证程序的质量。

而在这次大会上,我听到的两个主题侧重的是另外两个方面。

首先是腾讯的测试经理吴凯华带来的关于测试平台的创建,尽管业界已经有了很多种针对各种类型测试的软件,但是他认为,针对特定的需求,这些软件还是无法满足测试的需要。而且,对于所有的测试结果,还应该有一个平台来进行管理,包括测试的记录日志,测试的脚本等等,都应该进行管理。

因此他一直致力于测试平台的构建,吴凯华曾经参与了两个测试平台的工作,而现在正在腾讯为创建新的测试平台而努力,尽管现在的效果还不尽人意,但他还会继续为了改善那个平台而努力。

吴凯华认为,测试平台是对各种测试工具的整合,一方面要有一个前台的管理界面,对执行的各种测试要记录,对各种脚本要保存,从而更有效地自动化地执行各种测试,并能够对各种测试的结果进行管理和分析;另一方面,也是测试平台的核心所在,就是后台对于各种测试工具的整合,这部分也是最难于构建的部分。

紧接着这个Session,是Ivar Jacobson公司的吴穹带来的关于分层测试的演讲。

尽管讲的都是测试,但是吴穹对于吴凯华的某些观点不是非常同意,对于测试平台,他的观点是,先尽量使用开源的测试工具,如果不满足需要的话,就修改开源的测试工具,实在逼不得已,才要构建自己的测试平台或者测试框架,这应该也和敏捷观点是紧密相关的,敏捷提倡的就是要避免浪费,而想要构建自己的测试平台,肯定要消耗大量的人力和财力,那也不是一般的中小型公司所能够承受的,所以他才会提出那样的观点吧。

吴穹博士所讲述的分层测试很有意思,他把测试分成了四种:

  1. 开发者测试
  2. 控制驱动集成测试
  3. 界面驱动集成测试
  4. 验收测试、性能测试

对于一个系统或者程序,要执行这四种测试,而每种测试所针对的目的也都不尽相同。也正因为需要执行四种不同的测试,而各种测试的用例之间必定会存在一定的交集,所以他认为,我们不需要在每种测试的时候都保证100%的测试覆盖率,足够好的测试覆盖率就好,比方说,每种测试的覆盖率都达到40%左右,而最终整体的测试覆盖率达到70-80%,就足够好了。

这四种测试侧重点都有所不同,就像净化水的过程一样,每一层过滤装置所要过滤掉的杂质都不一样,在各种测试中所要找到的缺陷也不一样,因此,我们不需要在开发者测试的时候找到界面上的bug,每种测试都只需要负责找到应该找到的bug就好。

吴穹博士的演讲中也体现了80-20的观点,他认为足够好的测试就足够了,即便是总体上的综合测试覆盖率,也只需要达到70-80就好了,而且应该是针对核心功能要着重测试,而对于某些代码,像set和get方法,本身就是很简单的方法,即便测试没有覆盖,也无伤大雅。这样的观点也和精益的思想有很好的契合。

posted @ 2011-04-16 20:16 侯伯薇 阅读(...) 评论(...) 编辑 收藏