作为一名优秀的软件测试工程师,需要具备哪些能力?

一、业务流程分析能力

1.分析整体业务流程

对整个公司的业务不了解,根本无法进行测试。

2.分析被测业务数据

在这个行业中,要了解哪些数据呢?哪些是要用户提供的?哪些是自己提供的?有哪些可以是假数据?有哪些必须是真数据?添加数据的时候可以用哪个库?

了解了整个软件的数据库体系结构,才能了解哪一张数据来自哪个表,其逻辑如何,是否存在连带关系。

3.分析被测系统架构

用什么语言开发的?用的是什么服务器?要在哪种环境下测试它呢?整体的测试环境是什么样子的?

如果缺失,要建造环境和架构。一般说来,在进入一个新公司后,体系结构就已经搭建好了,了解了,熟悉了这些老员工以前所用的体系结构。

4.分析被测业务模块

完整的软件有哪些模块,比如主页、注册页、登录页、会员页、商品详情页、优惠页等。

找出有多少模块要测试,每个模块之间的连带关系,然后如何分工。

5.分析测试所需资源

我需要几台计算机,要几部手机,手机要什么样子的系统,什么样子的型号。

比如测一个网站的性能的时候,电脑的配置达不到测试高并发的5000人的标准,要不升级电脑的硬件配置,要不多机联合,多机联合时要几台电脑,都要提早筹备。

6.分析测试完成目标

我的性能目标是什么样子的?我的功能目标是什么样子的?我要上线达到的上线标准是什么样子的?

例如,当我想达到5000人的高并发性目标时,CPU的占用率不能超过70%,内存的占用率不能超过60%,响应时间不能超过5秒。

功能目标,如整体业务流程运行,所有分支流程无问题,所有接口可相互调用,整体UI界面无问题,兼容性无问题等。

弄清楚这些问题,测试的思路就会很清楚。

二、缺陷洞察能力

1.看到一般缺陷的能力。

至少你应该满足看到一般缺陷的能力,这是最基本的,如果你甚至找不到最简单的一般缺陷,更不用说优秀的测试工程师了,你说你是测试我不相信。

2.隐性问题的看到能力

软体测试过程中有些缺陷隐藏得比较深,有的是性能问题,有的是功能问题,有的则是因为设置了一些特殊的条件。

比方说买双鞋一定要选择哪个牌子,要选择红色的颜色,要选择44号,而且要选择特殊的付款方式才会有这样的bug,这一点尤其隐晦。要想看到这种问题,一定要比别人更强,找出一些别人无法看到的bug。

3.看到连带问题的能力

当看到一个缺陷时,你可以考虑通过这一个缺陷可能导致其他地方的问题,这被称为连带问题。而不是说看到这一个bug之后提了这一个就算是完了,一定要有一个察觉,可能其他地方也存在这样的问题。

4.发现问题风险的能力

有些软件可能有一些操作模块,或代码写界面,表面上没有问题,但有风险,如界面不稳定,当他传输的数据有一些问题时,最终结果可能是报告错误是报告404或报告乱码。

5.尽快发现问题的能力

假如你只能停留在界面层面,那么你就无法尽快发现问题。

你必须等到前端人员完成每个界面后才能进入测试,我可以比你早一个月进入测试,然后我比你快一个月完成测试,你比我晚一个月,因此大家的工资一下子就打开了。

6.能够查明问题的根源。

要了解这种缺陷到底是由什么原因引起的,是哪类缺陷,是ui前端的人做的问题,还是后台界面的人做的?

不但要发现这一个bug,还要了解造成bug的原因,这类测试人员是非常优秀的,受到尊重的,bug的提法也会有所不同。

需要资料q1

三、团队协作能力

1.合理分工。

合理分工是提高效率的重要保证。

2.协助小组成员解决问题。

例如,测试是为了赶上进度,或者软件项目的质量控制是由一个团队控制的,帮助团队成员解决问题尤为关键。

3.相互配合完成测试任务

每个队里的人分工不同,他们的任务不同,这就是我们所说的合作。你的事情已经完成了,轮到我了,我的性能测试应该轮到你了,因此在整个过程之后,每个人都应该履行自己的职责,非常密切地合作。

4.相互配合开发重现缺陷

我给你提bug,你改我的bug,大家的目标只有一个,便是让这一个软件变得更好,因此在这样的情况下,大家就一定要相互配合开发

5.督促项目整体进度

既然是一个团队协作的过程,就一定要互相的去督促对方,包括督促开发去改bug,因为开发人员他们有时候业务流程很忙,他们不知道要先改哪些问题,要后改哪些问题,但是往往有一些缺陷,它影响了测试的这一个时间,影响了测试的进度,那么这个时候就要测试员去督促开发人员,让他尽快的去解决你棘手的问题。这个东西能够提高大家的测试效率

6.出现问题勇于承担

愿意背锅的最后都成为了领导,不愿意背锅的最后依然是员工

四、专业技术能力

1.掌握测试基础知识

基础知识便是根基,根基打好了,你才能够更有效地往后期发展,也就是为了以后的学习做一个铺垫。如果根基都没打好,功能测试不会,就想直接学性能,那性能是做不好的

2.娴熟运用测试工具

熟悉工具和熟练使用工具完全是两个概念,熟悉工具基本上等同于不会,遇到过很多简历上写会使用什么什么工具,都没有实际能力。比如loadrunner只会一个简单的录制,增强一下脚本,觉得会用了,那知识会用了1/5,其他4/5都不会。

3.了解工具操作原理

它是怎么样给服务器发送请求的,是用什么样子的方式去发送请的,是用什么样子的方式去监控的,它的操作原理是什么样子的,大家要把这件事情搞清楚,这样的话能有助于更好的去使用这些东西。包括一些请求的协议,每个协议代表什么意思,它是用来干什么的。

4.自主完成测试任务

一定要能够自己完成一个独立的内容,独立的业务流程,这件事情领导你交给我好了,放心我能给你搞定,要的是这样的人

5.找出问题出现原因

找出缺陷的时候,不仅要看它的表面,还要看它的本质

6.提供问题解决方案

发现问题不是能力,发现问题并提出解决方案才是真的能力

7.提供完整测试报告

测试报告能够说明你表达的清不清楚?领导能不能看懂?还有便是能不能够把你整个测试的过程给它梳理得非常详细,人家能够通过你的报告,能够了解到整个的项目的情况,而不是只了解一个片面的情况

8.了解相关技术领域

触类旁通

五、逻辑思考能力

1.判断逻辑的正确性

面试官也经常会给测试人去出一些逻辑题,逻辑题能够分析出来你这个人思维有没有?活跃不活跃?还有他的维度,包括他想的问题的全面性,都能够判断得出来。

比如说去买一样商品,它的里边逻辑就会经常会出现很多问题,比如说它的会员的级别,什么样子的级别去买什么样子的商品,它的价格不一样,什么情况下会给优惠券,什么样子的情况下不给优惠券?达到多少钱的情况下才能够使用优惠券?如果说这里边的逻辑出现了问题的话,那么整个的业务流程不用再测了

2.对可行性逻辑分析

要去测一个网站的逻辑的时候,一定要先思考这一个业务流程可能会涉及到哪些逻辑,这些逻辑哪些是可行的,有些是正向逻辑,有些是逆向逻辑,都要考虑全面,而不是说只是把正向的逻辑测试全面了,逆向逻辑不考虑。其实往往更容易出错的地方便是逆向逻辑

3.思维导图梳理思路

思维导图工具能够起到什么作用,能够让你更有效的进行测试,能够让你的思路更清晰

4.站在客观角度思考

去测试的时候,不要仅仅只是站在测试人员的角度上去对整个网站进行测试,还更多的要站在用户的角度,要替用户考虑

六、问题解决能力

1.技术上的问题

把自己的个人能力提升起来,多跟别人虚心请教,多去自己想办法解决问题

2.工作中的问题

在任何的企业里边去业务流程,肯定会遇到一些业务流程当中的一些不愉快的事情,而不是什么事情都会让你很顺心。因此要去处理工作上的一些不顺心的事情,不要把它带到你的工作上,或者是你的生活上,尽可能的去跟别人沟通,去解决这一个工作上遇到的麻烦

3.同事间的问题

在业务流程当中可能会涉及到跟开发人员的沟通,跟产品人员的沟通,跟ui人员的沟通,跟这三方的人员去沟通的时候,就要用不同的沟通方式

4.领导层的问题

如果你觉得你的领导不好,或者说你觉得对你的领导一些建议,不要的去跟同事之间去说他坏话或者怎么样的,领导要的是解决问题的人,而不是制造问题的人

七、沟通表达能力

1.和技术人员的沟通

跟开发人员阐述缺陷时要简洁明了、清晰易懂。当看到严重缺陷时,也不要大惊小怪,要站在开发人员的角度思考如何解决问题。而不是踩在开发头上,炫耀自己发现问题的能力。

2.和产品人员的沟通

当对产品提出意见时,要站在用户的角度去说明自己的想法,而不要主观认为不好而要求产品进行修改。

3.和上级领导的沟通

跟领导沟通时要有大局观,不能只考虑自己部门的情况。并且与领导沟通时,尽量直奔主题,不要拐弯抹角,当与领导意见不一致时,也不要直接反驳,应该先给予认可,再阐述自己的想法。

4.在集体会议中沟通

在集体会议中不要一味的突出自己的个人能力,不要当话痨,也不要默默无闻。适当的提出一些自己的见解,有助于让大家更加重视你的存在。切记不要在多人会议中,去指责别人和推卸问题。各个部门的同事,都要面子~

5.与下级员工的沟通

与下级沟通时不要摆高姿态,不要让下级产生畏惧感,应该更多的为下级解决问题。服务好部门的同事,才能更好的产生凝聚力。

八、宏观把控能力

1.有效控制测试时间

测试周期的时间控制,应当采取多种方法去衡量,例如人员能力,人员数量,项目复杂程度,同类项目的测试经验等多方面去衡量。

2.有效控制测试成本

测试成本指的是人员成本跟时间成本,不要浪费每个人的时间跟劳动力,要让每个人充分发挥最大的价值。

3.有效制定测试计划

测试计划对于一个项目是核心关键,它的存在为了让测试进行中有依据可查。所以测试计划,一定要切合实际情况,要经过思考和衡量最后得出计划安排。

4.有效控制组员情绪

组员的情绪可以直接影响测试进度跟测试的质量,当有组员出现思想问题时,应当及时沟通,采取一些必要的措施去解决问题。而不能装看不见。

5.有效进行风险评估

任何项目在进行期间都存在许多潜在的风险,例如,人员离职,生病请假,业务变更,需求变更,服务器或其他组件故障等。应当提前做出相应的解决方案,以免到时候手忙脚乱。

6.有效控制测试方向

测试的方向是指测试的目标和测试的范围,很多项目的测试是有针对性的,例如性能测试,所以在测试中,一定要随时清楚测试的目标和目的是什么,以免把时间浪费在无关紧要的业务上。

看了这篇内容后,坚信以下两件事,也会对你的自我提升有一定的帮助:

1、点赞,让更多人能看到,同时你的认可也会鼓励我创作更多优质内容。

2、要让自己变得更强:想想,假如你是要在测试这个行业长期做下去,你的工作经验和测试技术是绝对不够的,你需要提升,你需要丰富你的技术栈!还等什么!

(q1免费领取)

这一些资料,对做【软件测试】的朋友而言应该是较为完整了,这类学习资料也陪伴我走过了最艰难的路程,希望也可以帮助到你!万事要尽早,尤其是技术行业,一定要提升技术功底。

猜你喜欢

转载自blog.csdn.net/m0_63052740/article/details/121440484