那么测试工程师应该学什么呢?
本人将测试工程师的学习提升路线分为四条主线:
在不同的路线上深化测试技术行业的知识职场能力管理技能,将带领您走上不同的职业发展道路。
第一:测试技术。
大致列出测试工程师需要学习的东西:
测试理论、测试基础、测试方法、测试思维、基于经验测试、静态测试、单元测试工具技术操作系统知识服务器相关技术数据库技术基础测试工具性能测试工具接口测试工具安全性测试工具编程技术、脚本编程技术、白盒技术、自动编程技术、测试开发技术首先是测试理论。有些人可能做了几年测试,积累了一些经验,对这方面的知识有些鄙视。
事实上,我个人认为理论始终是指导实践的最坚实基础。
我们可以在工具和技能上不断雕琢测试,但实际上测试的基础也需要我们不断学习。
要学会从宏观角度看待测试工作:
测试的最终目的是交付高质量的产品;
产品的质量要求由项目性质决定;
测试工作不能脱离团队而存在;
测试如何为产品质量控制和风险缓解服务;
客户想要什么样的产品特点和功能;
缺陷背后,揭示了什么样的过程问题;
学会从微观角度切入测试工作:
哪些方法可以帮助我实现复杂的测试目标;
如何挖掘模糊的质量定义的真实需求;
发现问题,我怎么分类定位呢?
如何设计测试数据以达到足够的覆盖率;
测试用例如何编排描述才能达到最佳效果;
怎样反馈才能最有效地解决发现的问题;
测试基础和理论就像侠客的内功。不管你的剑玩多少把,最后的胜负还是要靠内力。
先说测试工具。作为IT从业者,工具的使用可能是个人能力最直接的体现,也是一种非常暴露的技能。
软件测试行业涉及的领域非常广泛。从行业的角度来看,现在几乎所有的行业都要去IT系统,甚至冰箱都要联网。行业的广泛性决定了我们在工作中可能使用的工具种类繁多。
与此同时,软件产品的质量维度也很多,功能性、安全性、互操作性、负载、压力、易用性、兼容性、可维护性、可移植性…每个质量维度可能都有一些最适合应用的工具。
还有一些操作系统级别和基本应用级别的工具,比如数据库,比如Linux,比如JDK,中间件,我们也要掌握。它们是我们测试工作中必不可少的工具(你迟早会用到)。
在一定程度上,学习一个工具意味着你的测试领域有所拓宽,这自然是你升职加薪的有效砝码。
然而,在工具的学习中,仍然有一些策略可以应用。不要被所谓工具的高和酷所吸引,盲目学习那些看起来很厉害但实际应用价值和范围不大的工具。
无论是从升职加薪的角度,还是从自我提升的角度,都要优先考虑市场应用广泛、最有用、最有价值的工具。人们的精力和时间都是有限的,从最有用的学习开始,切忌好高骛远。先学好基础常用工具,再慢慢学高级工具是最好的策略。
而工具这个东西,其实是触类旁通的,等你学好了一些工具,另外那些看上去高级的那些也许对你来说已经很容易了,不过是去体验他的实际应用场景而已。
最后,学习工具不要只停留在应用层面,也就是不要只使用,要知道为什么。工具的操作过程没有他实现的原理对你更有价值。
接下来是编程技术。事实上,在许多理论中,测试编程技术也被归类为工具的使用,但我们把它拿出来。
或许有些测试工程师实际上是因为不喜欢写代码喜欢写代码,但要深化测试技术领域,编程技能是不可或缺的。
是不是很纠结?
测试工程师的编程能力有什么用?总结如下:自动化测试、脚本编程、白盒/单元测试和测试开发。
自动化测试是一个热门领域,不用说。学习自动化测试编程,我们的目标不仅要应用,还要深化框架的编写。
脚本编程是脚本语言的应用,如shell脚本和Windows批量处理等工作控制语言。很多IT项目会依靠这些脚本进行自动控制,比如CI环境部署。
掌握编程知识也有助于我们完成白盒/单元测试的任务。如果我们在编程能力和测试能力的双向深入发展,测试开发是一个很好的发展方向。
前提是测试工程师的编程技术门槛相对较低。当我们学习代码编写以应用到测试工作时,一开始其实并不需要太深入。
例如,作为一名测试工程师,我们学习自动编程。在入门级,我们只需要学习现有自动化工具和类库的使用。其实学习难度并没有想象中那么高。
随着学习的深入,当你有了更高的追求,在编程领域进一步深造是一个不错的选择。例如上面提到的去写框架,去改进框架,去引导机构自动化测试。
学好这些技术,无论是综合发展还是专业深造,我们的职业发展路线都会深入技术。例如,成为自动化测试工程师、性能测试工程师、白盒测试工程师或安全测试专家。与基础岗相比,这些岗位的工资水平明显提高。
二是行业知识。
归根结底,IT属于第三产业。什么是第三产业?一般来说就是服务业。IT行业服务于其他基础行业,我们最终要完成的是让传统事务处理IT化、自动化、网络化。
这涉及一个问题。无论我们做什么样的项目、系统或软件,他的最终应用都会在另一个与计算机系统无关的领域,比如金融、零售、医疗等等。
作为IT从业者,除了我们的计算机应用技术,这些行业的知识已经成为我们需要学习和掌握的第二学科。
透彻理解行业是IT人员必备的技能树,尤其是软件测试。因为作为项目的测试和质量控制,只有非常了解软件应用的领域,才能更好地帮助我们检查项目的质量;软件测试倾向的用户立场也要求我们能够从专业的角度来衡量我们产品在专有领域的适用性。
例如在金融领域,真的要做好这一行的测试,金融领域的知识,基金会计技能有时可能比你的测试技能更重要。说到底,如果你不精通这个领域的东西,你可能连系统到底该如何实现用户/市场需求都把握不准,更别说很好地控制产品质量了。其他领域对行业知识也有不同程度地要求。
当然,有时候测试工程师可能会有这样的经历,就像雇佣兵一样,在几个项目之间来回,根本不固定在某个行业。顾客想要什么系统,我们就去测试什么系统,在几个不同的领域徘徊,浅尝辄止,根本没有时间让我在某一领域中间沉淀。
这是一个现实。在这种情况下,你对某个行业的积累仍然可以帮助你,但你很难成为这个领域的专家。
但是,如果你有机会在某个领域的测试工作中稳定下来,我建议你深入这个领域,双向发展测试技术和行业知识。
当测试工程师在某个行业有足够深入的专业知识和技能时,我们的发展方向可以是“领域测试专家”和“领域测试咨询”。这样的人才在这个行业一定很受欢迎,高薪当然不是问题。3
三是职场能力。
职场能力可以说是个人素质和综合能力。
无论我们有多好的测试技术和行业知识,我们都需要强大的职场能力来帮助我们,这样我们才能更好地发挥我们的专业能力。否则,很难说当大牛拿高薪的时候,工作能不能保住。
职场能力是什么?我总结了一下:
沟通能力、自律能力、学习能力、思维能力、抗压能力、规划能力、时间观念、团队精神、善于思考和承担责任的沟通能力:不用说,测试工程师可能是IT团队中沟通任务最重、最需要沟通能力的。我们的测试工作强烈依赖于其他工作团队的输出,所以我们不仅要沟通,还要沟通;其次,我们的测试项目承担着项目质量反馈和过程改进的作用,这就要求我们很好地沟通测试结果和结论。测试人员必须注意沟通。沟通技巧的差异是关系到我们团队地位和个人评价的一个非常重要的因素。
自律性、时间观念和勇气放在一起说,都是一个人责任感的体现。我们不鼓吹放弃自己应有的生活和娱乐,全心全意投入到工作中,成为测试岗位的劳动模范。但在你份内的工作时间里,我们要尽心尽责地做好本职工作,做好自己该做的事,勇于承担责任,舍得付出。用自己的目标鞭策自己,无论是养家糊口还是实现自己。再者,要主动去发现工作中的乐趣,做一行爱一行,切忌眼高手低。
学习和思考能力:要求我们有良好的学习和思考意识,掌握好方法。随着IT行业的不断发展和新兴领域的不断涌入,对我们的行业产生了影响,这就要求我们愿意学习和学习,在学习和工作中勤于独立思考,善于发现问题,总结问题,提出解决方案。创新能力是学习和思考能力的高级体现。
规划能力:测试基础工作由一些复杂的事项组成。即便你的职位在测试路线上越走越远,你仍然无法摆脱某种程度的混乱。所以这就需要我们有系统的规划能力。测试新人刚入行的时候,可能会觉得细心可能是测试这样一个发现问题的工作最重要的素质。其实系统的规划能力是我们做事必备的技能。即使是天生不够细心的人,通过有效的系统规划,也可以避免我们因为粗心而犯错,帮助我们剥离复杂的工作事项和对象,把握主线,帮助我们更轻松高效地完成工作。
抗压能力:做IT测试,工作压力是必然的,无论是工作时间还是工作成果。要学会抗压,遇到挫折不要轻易气馁,结果要戒骄戒躁。还要学会判断压力是否合理,加班压力是否合理?领导质疑合理吗?要学会科学地判断和应对。其实相比之下,测试岗位的压力其实是中等水平的,不要被工作压垮,不然怎么谈升职加薪?
第四:管理能力。
对于测试工程师来说,随着经验的积累和行业的深入,转到管理岗位可能是我们每个人都会思考的一个方向。
当然,当领导者有很多好处,比如地位上升,比如工资上涨——尤其是在工资上限上,管理和纯技术有明显的区别。
做测试管理,除了有相应的机会外,当然我们个人也要做好管理能力的准备。
我将测试管理能力分为三个维度:
测试组织能力。
测试技术能力。
团队管理能力。
测试组织能力让我们学会如何组织、规划、实施、监控和报告测试项目。让我们完成测试项目,让他完成风险控制、质量反馈和过程改进。
测试技术能力使我们作为测试经理了解技术在测试活动中的应用场景和机会,并使我们能够控制测试项目的技术引入和使用。我们还需要具备相应的技术能力来指导具体技术在项目中的使用。事实上,我们仍然需要在第一点上下功夫:测试技术。
团队管理能力是与人打交道、对上沟通、对下管理、团队建设、团队提升、管理团队内各种人才的能力,让他们为你所用。这也是一门特殊的知识。
学好管理能力,再遇到合适的机会,就可以去测试lead,测试经理,测试主管。
事实上,一旦你做了管理岗位,后续的可能性就会增加很多,高管的机会大门就会向你敞开。这取决于个人的把握。事实上,有可能最终成为CTO、部门经理和VP。当然,他不属于测试职位的直接进步。
我们上面提到的四个方向大多不是独立存在的应用场景中交织在一起,形成测试人员的能力体系。他们可以专注于我们的职业方向。
比如加大对测试技术的投入,我们的方向可能是测试技术专家和技术专项领域;
测试技术和管理能力双修,那么可能的方向可以是测试架构师,测试lead;
测试技术和行业知识双修,可以成为领域测试专家。
学无止境,共勉!
看了这篇内容后,坚信以下两件事,也会对你的自我提升有一定的帮助:
1、点赞,让更多人能看到,同时你的认可也会鼓励我创作更多优质内容。
2、要让自己变得更强:想想,假如你是要在测试这个行业长期做下去,你的工作经验和测试技术是绝对不够的,你需要提升,你需要丰富你的技术栈!还等什么!
这一些资料,对做【软件测试】的朋友而言应该是较为完整了,这类学习资料也陪伴我走过了最艰难的路程,希望也可以帮助到你!万事要尽早,尤其是技术行业,一定要提升技术功底。