浅谈测试生涯如何转型升级


导读:数据库

    全部的测试从业人员都想从业务测试转型成长为测试开发工程师,由于这是一个门槛,一种层级,一个上升自我,提升我的价值的重要驱动力。编程

    测试开发工程师是一个交又工做的角色。与开发工程师相比,测试开发工程师除了要具有写代码的能力,还须要掌握操做系统、数据库、网络、软件测试等相关领域的知识。与业务测试工程师相比,测试开发工程师拥有编写测试脚本、设计测试框架、搭建测试平台、维护测试环境等技能,可是可能没有业务测试工程师那种专业的业务知识背景。测试开发工做,本质就是为了保证测试可以正确且顺利进行而作的工做。测试开发要服务于业务测试,测试开发不是脱离业务而单独存在的。在软件系统生命周期过程当中,业务测试工程师和测试开发工程师是并存的,并不会彼此替代。网络

那么,你为转型作好准备了吗?架构


1.2业务测试的挑战并发

1.2.1测试人员的挑战及新要求框架

在固定时间内快速迭代,进行高并发任务测试一直都是测试人员和测试团队所面临的挑战。除此以外,他们还要应对不断变化的用户需求,同时整个行业内开发人员和测试人员人数比例不平衡,传统测试以外的任务缺少明确的方向和职业发展路径等,这些都是测试人员面临的问题。业务的多元化,以及公司战略调整和整个行业的不断发展,要求测试人员具有愈来愈多的技能,其承担的责任也就愈来愈大传统测试的角色已经没法知足工做的须要,同时测试人员也但愿变得比以往更具技术性。现在的工做也要求测试人员具有比以往更高的执行力,可以提供快速反馈,有时不只要是测试人员,还须要成为开发人员。运维

从流程上来看,测试介于产品和开发之间,须要和产品人员沟通,也须要和开发人员沟通,工做的特色也决定了测试人员要面临的挑战。如今大量的公司在招鸭测试工程师时,愈来愈须要综合性的测试人才,要求应聘人员掌握必定的开发技能,这样其能够更好地理解系统,发现更深层次的缺陷,与开发人员的交流也会更高效,在和产品人员沟通时也能提出更有建设性的意见。未来彻底不懂技术或者代码的测试人员可能会被行业淘汰。编程语言


应对挑战的惟一方法就是不断适应和进步。测试人员必须了解他们的角色在如何变化,以及如何在不一样的环境中为利益相关者提供最好的服务。测试人员须要具有很高的灵活性和适应性,不断学习新的技能和方法,并愿意承担新的角色和活动,这才是测试人员自身必须掌握的核心技能。高并发

结合做者所在团队的实际状况,团队的目标是可以快速反应,支持业务快速迭代,同时要把测试人员从繁重的重复工做中解放出来,为内外“赋能”,提供好的测试平台、好用的测试工具和高效的测试方法等。这就对测试人员提出了一些新的要求。工具

1.编写代码的能力

具有编写代码的能力可以提升测试效率,独立或者辅助开发人员定位问题,而不是只报告问题。这也有助于测试人员了解编程过程,完善思惟方式,提高测试形象。

2.工具思惟与工具开发能力

工具思惟有助于测试人员敏锐地发现能够节省人力的工做点。具有工具开发能力能够真正从繁重的重复工做中解放本身。

3.持续学习的能力,学会思考

持续学习不只是一种态度,更是一种能力。持续学习新的技术和新的思想,了解新的动态趋势等,可以帮助测试人员更好地适应变化,在变化中进步。学会思考这个话题很宽泛,包括规避风险、项目推动、问题解决等测试人员须要的不少其余的认知过程。可是,若是测试人员不能持续学习,那么他的思考也会被限制。只有持续学习,不断思考,才能知道在不可知的将来咱们可以提供什么,价值该如何体现

4.强大的心里

测试工做是一个不断质疑与被质疑的过程。测试人员天天会面对不少繁重的工做,随时随地均可能被别人挑战,还有可能在工做中遭遇质疑及误解。想要将工做进行下去,强大的心里对于测试人员来讲极其重要。

5.测试思惟

测试思惟决定了测试人员能在测试这条路上走多远。测试的核心技能不是测试理论、也不是测试工具,而是试分析试设计测试架构和试补主:思美去長、び少矩地”一直是做者所在团队提侣的·学会分析任务,分清优先级,具有统一规划能力,可以使工做达到事半功倍的效果。


转型的基础及必要性


转型是为了更好地知足业务需求,更好地保证系统质量,也是为了可以更好地配合公司的战略。每一个团队是否转型,以及转型的动机及基础,根据具体状况而不尽相同。做者所在团队主要负责业务的测试,年后新来了一位经验丰富的测试经理,因此同时存在测试开发的岗位,这也是团队转型的一个优点。

相信和做者状况相同的团队数量很多,那么这样的团队想要快速转型须要先搞清楚哪些问题呢?

1.转型的目的

更好地知足业务需求以配合公司的战略,同时考虑到行业的发展趋势,提高团队总体的技术水平,实现团队与我的的共同成长,实现良性循环

2.转型的方向

单元测试是很是重要并且很是有必要实施的。在敏捷开发模型的工做实践中,开发人员承担了单元测试的工做。因为公司战略的调整,UI层的自动化测试再也不是团队的重点,所以自动化接口测试配合测试工具开发,是做者所在团队转型的首选方向。完善的接口测试体系可以在很大程度上保证产品的质量,而这部分的投入也快速收到成效,并且测试工具的开发可以将测试人员从大量的手工重复性工做中解放出来,提升效率。

3.转型的基础

团队转型要根据转型的目的以及须要解决的问题,选择转型的方案。大致上能够从转型意愿、转型所需时间、转型规划、转型先后技能、应用等方面选行准备。

(1)转型意愿

团队想要转型成功,除了须要考虑业务需求、行业趋势等外部环境因素外,还要考虑团队成员的转型意愿。团队成员主动转型的意愿是转型成功的关键因素。被迫转型与主动转型的差异在这里就不须要讨论了,取得的转型效果也是不一样的。充分发挥团队成员的主观能动性可以让转型快速完成并取得使人惊喜的效果。

(2)转型所需时间

团队转型必须经历一个学习和练习的过程,这个过程须要时间。然而,测试工做的性质决定了其最缺乏的偏偏又是时间。那么这部分时间从哪里来?须要团队成员达成共识,避免占用成员的业余时间而使他们产生抵触情绪

(3)转型规划

团队想要转型成功,在转型开始以前,要作好整个转型期间的规划,包括须要学习的技能、学习的进度、练习的时间、掌握程度的考核、备份学习材料和备用方案等转型期间要严格按照规划进行,确保转型有条不紊地进行。

(4)转型先后技能

根据团队转型的目的,要求团队掌握的技能也不尽相同,想要达到的效果也不一样团队应根据业务的特色及面临问题的紧迫性来决定须要掌握的技能。转型前须要具有的技能基本大同小异,包括测试的基本知识、业务背景知识、数据库相关操做能力、主流编程语言开发能力(最好与公司开发语言一致)等。

(5)应用

团队转型想要取得好的成效,实战是不得不考虑的问题。若是没有实战应用,那么再多的理论支持也只能是纸上谈兵。在转型过程当中,能够尝试将培训的技能应用到实际项目中。若是没有项目,也可人为地创造针对性的实战。只有经过实际应用,才能发现问题和解决问题,让转型真正发挥做用,取得好的效果。

13团队转型的目标及计划

1.3.1转型路上的迷茫

自动化测试是软件测试发展的一个必然结果。随着软件技术的不断发展,测试工具也获得了长足的发展,人们开始利用测试工具来帮助本身作一些重复性工做。软件测试的一个显著特色是重复性。重复会让人产生厌倦的心理,重复也使工做量倍增,所以人们想利用工具来解决重复的问题。

目前,自动化测试在行业中处于被热捧的时期。一方面,不少专业人士对自动化测试大加赞扬:另外一方面,在移动互联时代,企业的生存环境发生着深入的变化,各大互联网公司都在寻求自身发展的道路,公司的转型成了必然趋势。公司要转型,员工势必也要跟随发生变化。至今,做者都不能忘记团队成员第一次据说组件化测试时满脸的新奇。随着一轮又一轮地探讨如何作、怎么作,团队成员才慢慢意识到这将会是一条漫长的路,期间确定有迷茫和痛苦。然而,更痛苦和严峻的挑战是团队的转型。转型是否能够达到应有的预期呢?

不少团队基本上会不一样程度上的面临如下两大问题。

(1)人员水平良莠不齐

团队转型不是一我的的转型,一般涉及十几人、二十几人的同步转型。其中每一个人的水平良莠不齐,学习能力也不尽相同。例如,以前大多数人从事的工做是功能测试,没有开发过自动化工具或者框架,用的自动化工具很少,也没有作过开发。那么,这就要求咱们必须左右开弓,线上学习和线下培训同步进行。

(2)作什么及从何处作起Microsoft公司最初也设有只进行手工测试而不编写代码的职位,称为STESoftware Testing Engineer)。而如今全部测试工程师的职位都称为SDET( Software Development Engineer in Test)。从名字能够看出来,后者是须要掌握编程能力的,而掌握编程能力是为了更好地测试。

从STE转到SDET的充分条件是测试人员对软件及需求具备较强的理解能力,同时擅于站在用户的角度去理解需求,以及重视质量使得程序的返工率大大下降而必要条件是达到开发人员所具有的设计能力和编码能力。认清本身的不足,在如下方面不断提升本身的能力。

(1)对程序架构思想的理解:经过参加需求评审、设计评审、代码评审,学习设计方面的知识。

(2)编码能力:经过单元测试、自动化测试、测试工具和测试框架的开发等环节提升本身在编码方面的能力。

走出迷茫,有了奋斗的目标,只要拼命追逐、坚持不懈,终会看到成功的方向。

1.3.2树立目标

咱们作任何事情都应该有一个目的。有了目的,就会产生一个对应的目标。而后基于这个目标,进行相关活动的实施,以此来达到目的。相似地,咱们在进行自动化实施的时候,首先要明确自动化测试的目标,即实现了自动化测试到底能为咱们带来什么好处,以及能够解决什么间题。咱们不能为了自动化而自动化,必须在实施自动化测试以前明确自动化测试的目标。

1.提升测试人员的工做成就感和幸福感,减小手工测试中重复性的工做

目前。在大部分中小企业中,手工测试在平常测试工做占据的比例很大。测试人员必须跟随开发团队不断地进行选代式开发和测试。一个功能模块可能在整个测试周期中重复测试超过10次。

如何改变这个现状呢?进行自动化测试确定是一个很好的选择。相应脚本写好之后,能够不断地重复运行。测试人员只须要单击某个按钮就能够开始测试工做了,而后看一下测试结果。就完成了以往手工测试须要花费很长时间才能完成的工做。此时,测试工做的成就感和幸福感油然而生,测试人员也会有意愿去主动地推动自动化测试在不一样项目中的深刻实施

2.提升测试用例的执行效率,实现快速的自动化回归测试,快速地给予开发团队质量反馈

使用手工方式来执行测试用例,执行速度必然是很慢的。人是一种生物,而不是机器,工做时间长了必然会以为劳累,测试执行的速度天然就慢了下来。在测试用例很是多的状况下,测试一遍通全部测试用例的时间成本就会至关高。

若是使用自动化测试取代手工测试,那么测试用例的执行者就变成了机器。机器能够全天候不停地执行,能够不知疲倦、快速地完成测试脚本指派给它的测试任务。此种方式势必能够大大提升测试执行的效率,缩短测试用例的执行时间,提升测试执行的准确性。

目前,敏捷开发模式在各种软件企业中开始普及和应用。敏捷开发对被开发产品的质量反馈有着很高的要求,须要每周甚至天天开发出一个 Build版本,而且部署在测试环境上,同时但愿测试人员可以给予快速的质量反馈。目前,只有经过自动化测试的方式,才能真正实现对于大型敏捷开发项目的质量反馈需求。缺乏自动化测试的敏捷开发项目会大大增长项目失败的风险

为了验证是否达到了此目的,能够和之前手工测试的执行时间进行对比,看看是否明显缩短了测试用例的执行时间,询问开发人员项目的质量反馈速度可否为快速发布产品带来很大帮助。

3.减小测试人员的数量,提升开发和测试的比例,节省企业的人力成本在大部分IT企业的运营成本中,5006~706的成本是人工成本,如何更好地控制人工成本,对企业的发展有着重要意义。使用自动化测试方式,势必会减小手工测试的工做量,从而达到减小测试人员的目的,进而下降企业的人工成本,提升企业的盈利能力

4.在线产品的运行状态监控

在完成产品开发和测试工做后,产品会发布到生产环境中,正式为用户提供服务。可是,在生产环境的运营过程当中,产品老是会因为各种缘由产生这样或者那样的问题或故障。如何快速发现这样的问题呢?有人说:“出了问题必定会有用户给客服打电话,这样咱们就能够发现生产环境中的问题了。”采用这样的处理方式,势必会下降用户对产品的满意度。另外,若是没有热心的用户进行反馈,那么生产环境中的问题被发现的时间会大大推迟。所以,仅仅依靠客户反馈的方式是不可取的。

为了保证快速、及时地发现生产环境中的问题,能够编写自动化测试脚本,以测试产品的主要功能逻辑。定时运行测试脚本,以检查产品系统是否依旧能够正常工做。若是运行测试脚本后没有发现任何问题,则休眠等待一段时间后再运行测试脚本,以检测产品系统的运行状态。若是测试脚本发现了产品系统的运行问题,在重试几回以后确认产品系统的问题依旧存在,则测试脚本会自动给系统运维的值班人员发出报警邮件和短信。相关人员收到报警信息后能够人工处理系统出现的运行故障,这样就达到了实时监控产品系统的目的,以便在第一时间发现和处

理系统的故障

5.插入大量测试数据

在系统级别的测试过程当中,常常要插入大量的测试数据来验证系统的处理能力。例如,测试人员想要插入100个订单,而且每一个订单都要有业务要求,使用手工的方式来插入这些数据势必会花费很长的时间和不少的精力。然而,若是咱们有“

6.常见的错误目标:使用自动化测试彻底替代手工测试

有人认为,转型后就是自动化测试了,不用手工测试了。对于任何项目,首选自动化测试,这是不可取的。在作出如何对待自动化测试的决定以前,首先要对自动化测试有一个清断的认识。自动化测试是对手工测试的一种补充。不少数据的正确性、界面美观程度和业务逻辑的知足程度等都离不开测试人员的人工判断。而仅仅依赖手工测试会让测试过于低效,尤为是回归测试的重复工做量会对测试人员形成巨大的压力。所以,人工测试与自动化测试都不可或缺,关键是在合适的地方使用合适的测试手段。


(未完待续)

相关文章
相关标签/搜索