qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

如何打造一个理想的软件测试团队

 一、确认好团队的目标(即该团队未来2-3年或者更长时间内期望发展成什么样)

  测试团队的核心任务应该就是保证自己负责项目的质量,并且通过不断的改进来缩短项目的周期吧!

  我们可以先想象下2-3年后,期望整个团队的测试模式是怎样的?

  比如:一个新的版本开始后(这里指增量版本),我们确认该版本的测试模式是

  1、新增模块在版本前期就开始研究测试方法(比如:单元测试接口测试自动化测试等),并且能够让开发配合提供一些支持。通过这种方式能够覆盖到70%以上的测试点。然后再通过对该模块以及对整个系统的把握,准确的分析出那些可能还是有风险的,并且进行探索性测试和整体场景的测试

  2、关联模块的测试点分析出来后能够很快的实现自动化

  3、老模块已经全部实现自动化了

  4、测试人员发现的问题基本上都能够自己定位,甚至能够指导研发进行修改。研发修改后能够准确的分析出可能有影响的地方,并补充测试

  达到这样的程度(或者达到这样程度的80%以上),相信对于版本的快速迭代以及质量都是很有帮助的,而且对于测试团队以及测试人员的成长来说,也是比较好的。

  那么,怎样才能够达到这样的程度呢?

  1、整个团队自动化的程度非常高,只要是老模块全部实现自动化了

  2、整个团队对于产品内部业务逻辑非常清楚,甚至达到研发的程度(不用到代码的每行),能够对研发的设计提出有效的意见,并能够指导研发进行设计

  3、整个团队成员的质量意识非常高,会有应该是自己发现的bug结果没有发现感到羞愧的思想

  4、整个团队具备前期测试和缺陷预防的能力,能够更开发一起配合在前期就做好相关工作,比如:前期的缺陷预防,测试方法研究等等!

  达到这样的程度后,整个团队至少有部分人应该具备如下技术能力:

  1、自动化开发能力:这样的人员越多越好(至少要有1/3以上),这样能够让自动化成为一种常用的改进技术,让自动化成为一种习惯

  2、业务能力:对于产品的内部实现和整个业务逻辑都非常熟悉,能够有效的指导该模块的设计,并且发现该模块的问题能够自己定位。至少每个模块都找得到这样的人

  3、单元测试和接口测试能力:能够在前期通过对代码或者借口进行测试,尽量在前期就能够保证质量(需要学习相关的开发语言)

  4、对于产品的理解比较深,能够有效的指导产品后面的改进方向

  5、项目管理能力,对于一个不大的团队来说有2-3个差不多了

 二、挑选合适的人员

  理想的测试人员应该具备如下几个特点:

  1、有激情:这是杰克韦尔奇最认可的一点,笔者深有同感,相信对生活有激情的人,对工作也同样有激情

  2、喜欢测试:有探索未知世界的好奇心,能够在测试中找到成就感。

  3、热爱技术并且有一定的技术能力:老实说,测试入门是技术门槛相对比较浅的,但是真的要做到很好程度确实需要比较好的技术,比如:上面的几点,都是有一定的技术门槛的,只有热爱技术的人才会愿意去主动去深入学习技术

  三、如何实现目标

  1、团队的文化和制度:所谓无规矩不成方圆,如果一个团队要健康的发展,团队的文化和制度是非常重要的。当然,我们团队的文化和制度也是为了更好的实现我们的目标而服务的,比如:我们期望大家主动去学习模块的原理知识,那么我们就可以形成这样的文化和制度。并且有了制度后一定要坚决的去执行(但是可以更加的人性化),然后根据大家的意见去不断的完善制度和管理。没有制度的话很难保证团队的执行力,那样目标也很难实现,所以,这个非常重要,也是一个初入管理者很容易出现的问题

  2、业务熟悉:对于早期来说,我们的直接学习对象肯定是开发,学习的资料大概就是需求文档和设计文档,这个时候可以让测试人员每个人负责一个模块,先去学习设计文档,并且要求测试人员自己能够画出该模块的整个业务逻辑图,并且跟研发确认是ok的(要求内部培训和讲解,并请研发过来旁听)。然后根据业务逻辑图分析可能存在问题的地方,并结合代码进行详细分析(这个时候可不要求测试人员具备单元测试或接口测试能力),后面测试的过程中发现问题后,自己能够尝试的定位问题,并且完成一份模块的定位问题经验文档(后面随着自己的深入学习来不断的完善)

  3、自动化:自动化的起步确实是很难的,刚开始的成本很高,再加上项目的工作本身也比较紧,这样很容易让团队对自动化望而止步。但是,经验证明自动化的工作确实是越早开始研究越好。一个比较好的方法是团队负责人自己先花时间去分析下,目前哪个功能模块的测试是重复率最高的,并且实现难度稍微比较小的(模块的选择很重要),然后思考如何去实现自动化(多关注同类产品,看下别人是怎么做的)。确定好怎么做后,如果自己技术比较好的话就自己尝试去实现(推荐方式,当然也会花费自己的一些额外时间,但是肯定是值得的),如果团队里面有更适合的人的话,则可以自己去承担对方的工作(比如:测试任务),然后让对方投入时间去做这件事情(当然,这个人一定要选好)。等到有效果后(这部分的工作能够节省下来),这个时候就可以利用节省的这部分时间继续做这个工作了(相信上面看到效果后也会提供更多的支持),通过这种方式持续改进应该会比较好

  4、接口和单元测试:对于整个模块的业务逻辑比较熟悉后,这里需要的另外一个能力就是我们对于开发使用的语言本身也比较熟悉,至少静态走读开发的代码没有太大问题(当然,可能一个团队这样的人不会很多,我们可以先培养这样的人)。并且随着我们的自动化工作已经有了很大效果后(这个时候大家的代码开发能力实际上也比较好了),就可以专门投入人员做这些事情了。当然,这个需要跟开发的配合,但是前面2者做好后,后面的改进其实就是水到渠成的事情了。而且也最好是先完成前面的2点,再开始第3点,毕竟步子迈大了容易扯着蛋

  将以上几点的目标进行细化,具体要做到什么程度?怎么去一步一步去做?每一步的完成时间点是怎样的?如何评估是否达成该目标呢?将这些问题搞清楚后就可以开始做了,定期分析和总结,相信应该是能够达成上面的目标的

  PS:一家之言,不一定完全正确,但是目前正在朝这个方向努力。

版权声明:本文出自 pengyongbo 的51Testing软件测试博客:http://www.51testing.com/?181625

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

posted on 2013-05-14 11:53 顺其自然EVO 阅读(198) 评论(0)  编辑  收藏 所属分类: 测试学习专栏


只有注册用户登录后才能发表评论。


网站导航:
 
<2013年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(54)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜