敏捷杂谈之敏捷测试中理想的测试组织

发表于:2012-5-07 14:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:qingchunjun    来源:51Testing软件测试博客

  ET/User-Story/System测试(负责人:有经验的/高级测试工程师)

  在敏捷测试中,这几种测试的重要性也是不言而喻的。像探索性测试在敏捷测试中,甚至超过了系统测试的重要性,是敏捷测试面向系统和业务的核心测试类型。探索性测试的特点是测试人员可以事先对被测系统没有任何的了解,通过一边学习一边测试,快速地在有限时间内根据优先级最大限度地发现系统中存在的问题,所以说效率非常高。当然,同时对测试人员的要求也就非常高。它可以没有测试用例,但一定有很多引导测试人员思考的test idea,只有测试人员自身经验非常丰富的情况下,他才有可能根据最少的线索,猜测最有可能发现bug的地方。并且快速学习和总结能力是个不可或缺的条件,这就注定了只能由经验丰富的高级测试工程师才能hold住。User-story分析要求测试人员具备良好地沟通和理解能力,能够将客户表达出来的或者潜在的客户需求转换为我们的用户故事和业务逻辑的描述,供开发人员进行参考。系统测试就不说了,大家都很了解,要做好需要对被测系统有深入全面的了解。所以在这几个测试类型中,是对测试工程师能力的一个综合考验,虽然没有涉及到代码以及自动化,但必须要求测试经验丰富,测试方法掌握扎实,对业务精通的人员来进行。

  BAT/Regression(负责人:初级测试工程师)

  估计没人会反对我们在项目里要最大限度地利用自动化测试来开展BAT和regression测试,这是由自动化测试的特点和对ROI的考虑来决定的。敏捷测试中不可避免地要用到自动化测试,不然一切敏捷都是扯蛋了。而要想提高自动化测试的复用率和降低维护的难度,我们最好能够考虑根据业务更多地使用测试框架,将业务逻辑、测试数据和测试脚本高度解耦,例如使用关键字+数据驱动的混合型框架。这里实际上为什么说BAT和regression只需要没什么测试经验的人去做呢?实际上前提条件就是我们要合理利用框架,像关键字框架等等,用这些框架的人不需要去学习编程,他们只需要能够利用已有的关键字根据测试的需要去组合测试用例即可。所以并不是每个做自动化测试的人都必须具备编程能力的,他们在没有太多测试经验的情况下,做探索性测试是不合适的,但他们可以利用这些关键字练习和设计测试用例,又可以帮助组织执行自动化测试,充分发挥他们应该有的价值,同时自身也可以得到提高。

  Test framework development(负责人:自动化测试开发工程师)

  测试框架的应用在敏捷测试中也是举足轻重的,因为它涉及到自动化测试的复用性和可维护性的问题。脚本的复用性低和维护性差往往成为很多组织自动化测试失败的根本原因。辛辛苦苦开发的测试脚本不能复用,一点小小的功能改动都涉及大批脚本的改动,实在是伤不起。而不管是利用现成的测试框架,如robot或者是自己根据产品的需求开发的测试框架,其本身实际上都是一个完整的开发项目,所以需要负责框架开发的人非常熟悉软件设计方法和扎实的编程技能,这样的要求通常只有对技术狂热爱好的人才有可能达到。他们可能不需要太关心产品业务层面的东西,那不是他们关注的重点。他们需要的产品方面的知识往往可以从其他测试人员那里了解到,这就足够了,如需要开发哪些关键字,都可以由其他人告诉他们即可。他们应该关心地如何使得测试框架本身可以灵活适应产品需求的变化,如何提高框架的复用性。所以归根结底就是对编程和程序设计方面的要求较高,他们具备这些能力后,可以专门关注测试框架方面的工作,从而为BAT和Regression测试的工程师提供有力的帮助。

  当然,这只是在敏捷测试中一种较为理想的测试资源的组织安排模式。它的前提是我们现在有所有这样的一些人,那么我们就可以把他们安排到他们最擅长的测试类型中去。这样做的意义主要有以下两点:

  1、就是实现了我刚刚说的那个原则:让专业的人去做专业的事。这句话说起来简单,但如果我们无法理清敏捷测试中的各种测试类型,需要什么样的测试能力,我想这个原则是很难实现的。我见过和听过太多测试中一做自动化就要求所有的人都去学习编程,学习工具,对于没有这方面兴趣的人来说,这简直就是痛苦得要命的过程,何必呢?如果他擅长于测试理论,熟悉产品业务和需求,那就让他去做探索性测试,让他去分析user-story或者是系统测试,没必要吊死在自动化这一棵树上。只要测试组织者或者团队建设者真正清楚了测试的需求,那我相信他就不会大而全地要求每个人都是每一方面的专家。

  2、招聘的时候可以更加有的放矢。我的组织中需要完成什么样的任务了,我就去招什么样的人。现在很多企业的招聘广告上都会写:要有自动化测试的经验,有编程经验,会脚本,精通测试理论等等等等。这样大而全的要求会带来什么样的后果?你对人家的要求多,那他必然要价就高,那企业白白浪费大把金钱去招了一些能力强但不适合的人进来,从而实际效率得不到提高,而且很可能招不到合适的人。比如测试团队里面缺的就是做探索性测试的人,我为什么一定要他具备自动化测试的经验呢,为什么要他有编程能力呢?完全没必要。再比如我现在有几个经验比较丰富的测试工程师做探索性测试了,但BAT和Regression没多少人做,那我完全可以招没什么经验的实习生进来,又好用又不贵,何乐而不为呢?如果觉得要做一套测试框架,也没必要要求人家有很深的测试背景,懂得多高深的测试理论,只要开发功底扎实,我想那一定就符合你的需求了。我突然想起一句广告说得非常对:只选对的,不要贵的。

  当然,我这里只说出了我的一点想法,欢迎更多的看官童鞋们一起分享你们的经验,分享创造价值嘛。如果喜欢敏捷测试的朋友可以看看我文中说的那本敏捷测试实践的书,网上有英文版的下载,相信会对大家有好处,呵呵。

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

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

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号