团队转型的目标及计划—京东质量团队转型实践(3)

发表于:2018-11-20 13:16

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

 作者:京东研发虚拟平台    来源:51Testing软件测试网原创

  1.3、团队转型的目标及计划
  1.3.1、转型路上的迷茫
  自动化测试软件测试发展的一个必然结果,随着软件技术的不断发展,测试工具也得到了长足的发展,人们开始利用测试工具来帮助自己做一些重复性的工作。软件测试的一个显著特点是重复性,重复会让人产生厌倦的心理,重复也使工作量倍增,因此人们想利用工具来解决重复的问题。
  目前,自动化测试在行业中处于被热捧的时期,一方面是很多专业人士对自动化测试大加赞赏,另一方面,在移动互联时代,企业的生存环境发生着深刻的变化,各大互联网公司都在寻求自身发展的道路,公司的转型成为了必然趋势。公司转型,员工势必也要跟随发生变化,至今都不能忘记团队成员第一次听说组件化测试时满脸的新奇,随着一轮又一轮地探讨如何做、怎么做,团队成员才慢慢意识到这将会是一条漫长的路,期间肯定有迷茫和痛苦,然而更痛苦和严峻的挑战是团队的转型!转型是否可以达到应有的预期呢?
  我们的团队曾经面临如下两大问题。
  1.人员水平参差不齐
  团队转型不是一个人的转型,通常涉及十几、二十几人的同步转型,其中每个人的水平参差不齐,学习能力也不近相同,可能之前大多数人都是从事功能测试,没有开发过自动化的工具或者框架,用的自动化的工具也不多,也没有做过开发。那么,就要求我们必须双管齐下,线上学习和线下培训同步进行。
  2.做什么及从何处做起
  微软公司早年也设有只进行手工测试而不编写代码的职位,称为STE(Software Testing Engineer),而现在所有的测试工程师的职位都称为SDET(Software Development Engineer in Test),从名字可以看出来,这是需要掌握编程能力的,而这些编程能力是为了更好地做测试。
  从STE转到SDET的充分条件是测试人员具有对软件及需求的较高理解能力,同时擅于站在用户角度去理解需求,以及对质量的重视使得程序的返工率大大降低,而必要条件是开发人员所具备的设计能力和编码能力。认清自己的不足,在以下方面不断提高自己的能力。
  1)对程序架构思想和构成的理解:通过参加需求评审、设计评审、代码评审,从中学习设计方面的知识。
  2)编码能力:通过单元测试、自动化测试、测试工具和测试框架的开发等渠道提高自己在编码方面的能力。
  走出迷茫,有了奋斗的目标,并且拼命追逐、坚持不懈,终会看到成功的方向。
  1.3.2、树立目标
  我们做任何事情都应该有个目的,有了目的就会产生一个对应的目标,然后基于这个目标进行相关活动的实施,以此来达到目的。类似的,我们在进行自动化实施的时候,首先要明确自动化测试的目标,即实现了自动化测试到底能为我们带来什么好处,以及解决了什么问题,我们不能为了自动化而自动化,必须在实施自动化测试之前明确自动化测试的目标。
  1.提高测试人员的工作成就感和幸福感,减少手工测试中的重复性工作
  目前,在大部分中小企业中,手工测试占日常测试工作的大部分比例,测试人员必须跟随开发团队一起不断地进行迭代式开发和测试,一个功能模块可能在整个测试周期被重复测试的次数超过10次。
  如何改变这个现状呢?使用自动化测试肯定是个很好的选择。相应脚本写好以后,可以不断地重复运行,测试人员只需要单击某个按钮就可以开始测试工作了,然后看一下测试结果,就完成了以往手工测试需要花费很长时间才能完成的工作。此时,测试工作的成就感和幸福感油然而生,测试人员也会有精力和意愿去主动地推进自动化测试在不同项目中的深入实施。
  2.提高测试用例的执行效率,实现快速的自动化回归测试,快速地给予开发团队质量反馈
  使用手工方式来执行测试用例,执行速度必然是很慢的。人是一种生物,而不是机器,工作时间长了必然会觉得劳累,测试执行的速度自然就慢了下来,在测试用例非常多的情况下,完整测试一遍所有测试用例的时间成本就会相当高。
  如果使用自动化测试取代手工测试,那么测试用例的执行者就变成了机器,机器可以全天候不停地执行,可以毫无怨言、不知疲倦、快速地完成测试脚本指派给它的测试任务。此种方式势必可以大大提高测试执行的效率,减少测试用例的执行时间,提高测试执行的准确性。
  目前,敏捷开发模式在各类软件企业中开始普及和应用。敏捷开发对于被开发产品的质量反馈有着很高的要求,需要每周甚至每天开发出一个Build版本,并且部署在测试环境上,同时希望测试人员能够给予质量的快速反馈。目前,只有通过自动化测试的方式才能真正实现对于大型敏捷开发项目的质量反馈需求,缺少自动化测试的敏捷开发项目会大大增加项目失败的风险。
  如何验证达到了此目的呢?可以和以前手工测试的执行时间进行对比,看看是否明显缩短了测试用例的执行时间,询问开发人员项目的质量反馈速度能否为快速发布产品带来很大帮助。
  3.减少测试人员的数量,提高开发和测试的比例,节省企业的人力成本
  在大部分IT企业的运营成本中,50%~70%的成本是人工成本,如何能够更好地控制人工成本,对于企业的发展有着重要意义。使用自动化测试方式,势必会减少手工测试的工作量,从而达到减少测试人员的目的,进而降低企业的人工成本,提高企业的盈利能力。
  4.在线产品的运行状态监控
  在完成产品开发和测试工作后,产品会发布到生产环境,正式为用户提供服务。但是,产品在生产环境的运营过程中,总是会由于各类原因产生这样或者那样的运行问题或故障。如何快速发现这样的问题呢?有人说"出了问题一定会有用户给客服打电话进行反馈的,那么我们就可以发现生产环境中的问题了"。如果采用这样的处理方式,那么势必会降低用户对于产品使用的满意度。另外,如果没有热心的用户进行反馈,那么生产环境问题被发现的时间会被大大推迟,因此,仅仅依靠客户反馈的方式是不可取的。
  为了保证快速、及时地发现生产环境的不定期问题,可以编写自动化测试脚本测试产品的主要功能逻辑,定时运行测试脚本检查产品系统是否依旧可以正常工作,如果运行测试脚本后没有发现任何问题,则休眠等待一段时间后再运行测试脚本检测产品系统的运行状态。如果测试脚本发现了产品系统的运行问题,在重试几次之后确认产品系统的问题依旧存在,则测试脚本会自动给系统运维的值班人员发出报警邮件和短信,相关人员收到报警后可以人工去处理系统出现的运行故障,这样就达到了实时监控产品系统的目的,可以在第一时间发现和处理系统的故障。
  5.插入大量测试数据
  在系统级别的测试过程中,经常要插入大量的测试数据来验证系统的处理能力。例如,我们遇到过测试人员想要插入100个订单,并且每个订单都要有业务要求,那么使用手工的方式来插入这些数据势必会花费很长的时间和精力,但是如果我们有"一键下单"这个自动化的工具,很短的时间就可以达到目的。
  6.常见的错误目标:使用自动化完全替代手工测试
  有人认为,转型后就是自动化测试了,不用手工测试了,对于任何项目我们首选自动化测试。这样是不可取的。在做出如何对待自动化测试的决定之前,首先要对自动化测试有一个清晰的认识。自动化测试是对手工测试的一种补充,很多数据的正确性、界面美观程度和业务逻辑的满足程度等都离不开测试人员的人工判断,而仅仅依赖手工测试会让测试过于低效,尤其是回归测试的重复工作量会对测试人员造成巨大压力。因此,人工测试与自动化测试一个都不能少,关键是在合适的地方使用合适的测试手段

相关推荐:
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号