软件测试工程师需要掌握什么(软件测试工程师需要具备什么能力)
软件测试工程师要具备哪些能力?
最简单的概括为:
技能方面:测试用例、测试常用的文档撰写、开发语言熟悉两种及以上、常用测试工具、数据库、linux、自动化脚本、性能测试等
交际方面:沟通能力、协调能力、执行力、抗压力
软件测试需要学什么
软件测试需要学习测试基础和理论知识。
其中需要学习的包括测试计划编写、设计测试用例、编写BUG报告单;需要学习python语言以及计算机的硬件知识;需要学习数据库知识,包括MySQL数据库、Redis数据库等;需要学习自动化测试工具、性能测试工具、接口测试工具的使用。比如在性能测试则会用到Loadrunner软件,它包含Controller、VuGen、Analysis。
一、软件的结构和组成
既然是做软件测试,势必要对测试对象有充分的了解。大体方向如下:
1、 前端和后端
前端:用户直接使用的地方我们称之为前端,前端处于用户直接能用的东西,对于用户而言是最靠“前”的。
后端:用户看不见的东西,用于做数据处理和交换。举个例子,知乎的登录,我们在网页(前端)上输入用户名和密码,那知乎咋个晓得我们是不是当前这个用户登录成功的?这个判断操作就是由后端来完成的。
接口:前端和后端进行数据传输的通道,同样的例子,知乎登录,用户在前端输入了账号密码,点击登录后,我们输入的账号和密码就通过登录接口传给后端,后端拿到账号和密码后,再进行判断。
如果判断通过,则通过登录接口把登录成功的信息返回给前端,前端再让我们去访问有权限的功能,反之,就提示登录失败。
2 、数据库SQL
数据库是整个软件必备的知识点,主要是关于sql语句的应用,尤其是多表联查。在面试中,通常出现的笔试环节,这部分要不就是很简单的sql查询,要不就是很复杂的多表查询,零基础的小伙伴推荐大家从这里开始。
3、 Linux学习
Linux是测试也要掌握的技能之一。
二、功能测试用例设计(重中之重)
功能测试用例太重要了,软件测试工程师80%的工作都跟这个相关,而且面试100%必出的问题。搭建测试环境,查看日志,定位BUG,所以需要掌握其中的一些基础用法。
三、 实战练习项目(重点)
说实话,这块自学真的有点难受,实际的项目怎么可能这么容易就找到了。自学的小伙伴可以去找一些开源项目来练习。
四、 接口测试和接口用例设计
接口测试是对系统接口级别的测试。
1、抓包工具和前后端Bug定位。
2、Postman。
3、Jmeter。
以上,应该是最最最精简的学习路线了。
作为一名软件测试工程师,需要具备哪些能力
1、首先必须一定要具备的就是认真、负责、严谨、耐心的态度,因为软件测试工程师吃的就是这口饭,所以必须对你所测试的产品负责。宁可错杀一千,也不可放过一个,虽然不能做到完全没有Bug,但一定要尽自己最大的努力保证产品质量。
2、要有过硬的技术本领,技术是为测试服务的,无论是测试理论、测试工具、开发知识、数据库、操作系统、网络知识、你都必须精通一门,知晓其它。当然这个做到比较难,什么都会很难,再者多了之后就不会精,什么都会也等于什么都不会,至于最后你选择深度还是广度,都由你自己把控。
3、光有技术,没有业务,再好的技术也很难使上劲,熟练的业务知识会帮助你发现更多的缺陷,进而更好的保证好产品的质量。不懂产品的工程师不是好工程师。测试工程师需要训练自己的用户思维、用户视角,把自己当作真正的用户去感受产品。同时你还可以收集产品数据来做分析,通过数据再量化产品。甚至你还要去研究竞品的相关情况,知己知彼方能百战不殆。
4、沟通能力超级重要。一个优秀的软件测试人员除了经常要与开发打交道外,还需要与产品、运维、售前、售后、客服等不同的人打交道。所以如何更准确、更简洁、更严谨的描述Bug,如何让开发人员接受你发现的Bug,如何让其他人员理解你的想法等都需要沟通,所以良好的沟通能力显的尤为重要。
5、缜密的逻辑思维能力。测试人员不仅仅只是发现问题,找出Bug。更重要的是要去寻找Bug产生的真正原因,精准的找到问题发生的源头,以便协助开发人员更好更快的彻底解决Bug。这个比较考验你思维的灵敏度和推理能能力。其实测试人员和刑侦有一些点类似,除了要求有缜密的逻辑思维能力,有时候还需要具备逆向反推能力。
6、测试虽然不像开发那样创造产品,但测试需要保证产品各方面的质量,让用户使用产品时觉得舒服、方便,所以大多数测试工程师都需要有一颗追求完美的心。
未来软件测试将从繁复的手工操作中解放出来,在敏捷开发的基础上,一个测试能够做好的真正价将不在是测试执行,而在于测试分析和设计,比如自动化测试工具的使用,uiautomatorviewer、TestBird等,将手工操作逐渐淘汰,提高测试效率,这才是测试行业未来发展的趋势和净化的方向。