`

Google软件测试之道的启示

阅读更多

读完Google软件测试之道之后,在关于如何做自动化测试方面对本人非常有启发,以下结合自己的工作背景谈谈关于自动化测试以及关于测试工程师的一些启示

 

自动化测试

关于测试,在Google有个70/20/10原则:分别对应小型测试,中型测试与大型测试的比例.Google倾向于将能自动化的东西尽量自动化,当然这一切的前提是Google基于迭代开发,快速发布的需求.

 

再回到自己的工作.我自己所在的项目组大部份都是基于Ajax的网站,软件的开发基于前台+后台的模式:

  • 前台:使用Jquery之类的JS框架去调用后台提供的服务去填充页面的内容
  • 后台:使用Spring MVC编写大量的API供前台调用,一般都是以@RequestMapping标记的方法,大部份方法返回的是JSON字符串,供前台调用

目前项目组中已经进行的自动化测试包含如下内容

  • 基于UI,使用Selenium web driver编写的自动化测试:目前已经将网站最重要的功能实现自动化.并且已经稳定地用于回归测试
  • 后台的单元测试:一般是类级别的测试,比如DAO类和Service类的测试

所以目前这情况很明显缺少所谓的"20"的中型测试那一部分.当然我这里的"20"部分指的是Spring MVC里@Controller标识的类中带有@RequestMapping的方法,他们大部分会返回JSON,以API的形式供前端调用.和Google里指的并不一定是一个东西.在我们每一个新的或者老的项目中,都会有大概几十个这样的接口(API),如果能将这些接口进行自动化测试,无疑是有很多好处的

  • 基于API的测试对UI没有依赖性,运行起来跟单元测试差不多
  • 跟基于Selenium的测试比起来,这种测试运行时间相对更短
  • 一般来说API不会频繁变动,维护成本会比基于UI的要低
  • 如果程序有多个版本比如PC版和手机版.基于API的测试将始终是通用,与UI无关的

具体如何实施这样的测试呢?可以参照使用HttpClient进行接口测试,当然这篇文章只是描述了一个最简单的例子.主要思想就是使用HttpClient以及一些处理JSON的API比如Jackson之类的.

 

如果将这一部分测试完成,那么我也将我自己的70/20/10体系即:

  • 开发工程师做基于类的单元测试
  • 使用HttpClient+Json API测试的接口测试:将能自动化的都进行自动化
  • 基于Selenium的端到端测试:这部分只做最重要/重复性的功能

测试工程师职位的几点启示

在Google软件测试之道中描述的TE的未来是测试架构师,他们会变成测试活动的管理者,我个人感觉这种水平或者境界并不是可以刻意追求的,它是基于知识加经验的不断积累.它更多需要的是实践,所以对此我觉得没有什么可以多说的.

以下是自己关于测试工程师这个职位的一些有用的启示:

  • 要想成为一个好的测试工程师,必须成为产品专家.即使你在公司的职责并非是负责端到端的测试,但是成为产品专家对自己的工作无疑是很有益处的,我个人觉得这也是责任感的一个体现
  • 我赞同书上说的测试工程师他首先是工程师,对于编程知识,尤其是工作相关的编程知识,一定要加强学习.对我自己而言,以后依然要多看看开发人员写的功能代码
  • 对于测试产品而言,多进行一些探索式测试是非常有益的,我觉得James Whitttaker的<探索式软件测试>应该成为每个测试人员的案头书

最后,在本书5.6的结论中作者讲到"我们熟知和喜爱的测试方式即将终结.... (省略)....软件开发的问题也已经彻底改变.继续死守已存在数十年之久的测试教条无异于刻舟求剑".我个人所在的层次让我感受不到这种终结,哈.但是测试无疑是需要不断创新的.Google正是通过他们强大的技术能力以及创新精神来面对这种挑战,书中着重介绍的工具Quality Bot(质量机器人),BITE(浏览器测试环境)以及Google测试分析系统无疑都体现了这一点.让我们"拥抱这些变化吧,并促其发生,做一个与时代同行,与时俱进的测试者"

 

本文出自"lijingshou"博客,请务必保留此出处http://lijingshou.iteye.com/blog/2002642

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics