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

2024-12-23 14:11:53
推荐回答(4个)
回答1:

1、首先必须一定要具备的就是认真、负责、严谨、耐心的态度,因为软件测试工程师吃的就是这口饭,所以必须对你所测试的产品负责。宁可错杀一千,也不可放过一个,虽然不能做到完全没有Bug,但一定要尽自己最大的努力保证产品质量。
2、要有过硬的技术本领,技术是为测试服务的,无论是测试理论、测试工具、开发知识、数据库、操作系统、网络知识、你都必须精通一门,知晓其它。当然这个做到比较难,什么都会很难,再者多了之后就不会精,什么都会也等于什么都不会,至于最后你选择深度还是广度,都由你自己把控。
3、光有技术,没有业务,再好的技术也很难使上劲,熟练的业务知识会帮助你发现更多的缺陷,进而更好的保证好产品的质量。不懂产品的工程师不是好工程师。测试工程师需要训练自己的用户思维、用户视角,把自己当作真正的用户去感受产品。同时你还可以收集产品数据来做分析,通过数据再量化产品。甚至你还要去研究竞品的相关情况,知己知彼方能百战不殆。
4、沟通能力超级重要。一个优秀的软件测试人员除了经常要与开发打交道外,还需要与产品、运维、售前、售后、客服等不同的人打交道。所以如何更准确、更简洁、更严谨的描述Bug,如何让开发人员接受你发现的Bug,如何让其他人员理解你的想法等都需要沟通,所以良好的沟通能力显的尤为重要。
5、缜密的逻辑思维能力。测试人员不仅仅只是发现问题,找出Bug。更重要的是要去寻找Bug产生的真正原因,精准的找到问题发生的源头,以便协助开发人员更好更快的彻底解决Bug。这个比较考验你思维的灵敏度和推理能能力。其实测试人员和刑侦有一些点类似,除了要求有缜密的逻辑思维能力,有时候还需要具备逆向反推能力。
6、测试虽然不像开发那样创造产品,但测试需要保证产品各方面的质量,让用户使用产品时觉得舒服、方便,所以大多数测试工程师都需要有一颗追求完美的心。
未来软件测试将从繁复的手工操作中解放出来,在敏捷开发的基础上,一个测试能够做好的真正价将不在是测试执行,而在于测试分析和设计,比如自动化测试工具的使用,uiautomatorviewer、TestBird等,将手工操作逐渐淘汰,提高测试效率,这才是测试行业未来发展的趋势和净化的方向。

回答2:

一、业务分析能力
1.分析整体业务流程
不了解整个公司的业务,根本就没办法进行测试
2.分析被测业务数据
3.分析被测系统架构
4.分析被测业务模块
5.分析测试所需资源
6.分析测试完成目标
二、缺陷洞察能力
1.一般缺陷的发现能力
2.隐性问题的发现能力
3.发现连带问题的能力
4.发现问题隐患的能力
5.尽早发现问题的能力
6.发现问题根源的能力
三、团队协作能力
1.合理进行人员分工
合理的进行人员分工是提高效率的重要保证
2.协助组员解决问题
3.配合完成测试任务
4.配合开发重现缺陷
5.督促项目整体进度
6.出现问题勇于承担
四、专业技术能力
1.掌握测试基础知识
2.娴熟运用测试工具
3.了解工具操作原理
4.自主完成测试任务
5.找出问题出现原因
找出缺陷的时候,不仅要看它的表面,还要看它的本质
6.提供问题解决方案
发现问题不是能力,发现问题并提出解决方案才是真的能力
7.提供完整测试报告
8.了解相关技术领域
触类旁通
五、逻辑思考能力
1.判断逻辑的正确性
2.对可行性逻辑分析
3.思维导图梳理思路
4.站在客观角度思考
六、问题解决能力
1.技术上的问题
2.工作中的问题
3.同事间的问题
4.领导层的问题

回答3:

作为一个软件测试工程师,首先,你要建立自己的测试思维,这个很重要,因为测试思维相当于你的软件的世界观,这也就是为什么,个人不支持从 开发转测试的原因,因为对于开发而言,他们是目标型的世界观,即需求要完成什么我去完成,如果你在开发中待的时间太长,容易习惯这样目标型世界观,而测试更多关注的是多方面的,有时候,就是一些在开发所谓的不可能、无所谓的东西最后造成软件的失败,而如何建立自己的软件世界观,那就要去通过测试的方法论的理解,很多人喜欢把黑盒测试方法论、白盒测试方法论,分得很清楚,其实两者是相通的,看懂这些东西很快的,但是悟透,这个过程会漫长。
接下来 我们讲讲你需要作为一个初级功能工程师所需要基本素质吧
1、软件测试的基本方法(边界值、等价类、错误分类、流程分析等等黑盒、白盒测试方法要有了解,并且掌握)这个不难,但请务必牢记在心中,它是你去建立自己世界观的基础,所有的测试逃不出这些方法
2、会写的基础的测试文档(测试用例、缺陷报告等)
3、会看开发文档(需求说明书、操作手册)
4、知道软件工程中,测试所需要做的事情,了解性能测试、安全测试等
当你有了基础,同时也有了自己的世界观,祝贺你已经入门了,这个时候,我建议你可以去了解不同软件开发不同环节人所作的事情,不单单是开发,需求、设计、运维等等,因为这样你会知道什么是体系、规范,为你以后的发展有着很好的帮助,这也是测试相对于开发优势的地方,开发更关注的是点,而测试要关注的是面,所以对于测试而言,除了准确的抓住细节的同时,大局观要好,否则做不好测试。

最后才是细节技术就是所谓的白盒测试、性能测试、自动化、安全等等,这些其实对测试而言反而是小节,技术永远不会阻碍你前行的脚步,反而思维,这个你可以根据自己喜好去发展,没有固定模式
顺便说一句,别看不起基础的功能测试,它没外人看得那么简单,因为如果你连测试用例都不会设计就别去说做性能测试、自动化测试、安全测试等等,要做一好的功能测试工程师,写的一手好用例(你的用例是个识字人都能执行、并且用例有效的系统覆盖率也是很高的)、好缺陷(是个识字的人都能理解你说的是问题,并且抓住重点),很难的,真心不是普通人能做好的,要去花心思琢磨的

回答4:

要成为软件测试工程师,我们应该掌握哪些技能。
1.描述问题的能力
程序是人写的难免会出Bug,但是也是因为是某个程序员写的,他对于内在的逻辑、可能发生问题的地方会有一个大致的判断。测试工程师的工作就是,告诉他发生问题数据的ID、发生问题的场景、当时的测试数据是怎样的等等。而不是,把一个截图甩给程序员,说:“这地方出错了啊。”
2.基础代码能力
如何增强对逻辑思维的锻炼?写代码啊,又学一门手艺又得到了大脑的锻炼,岂不是美滋滋?
貌似很多测试工程师都喜欢去学Python这门语言,确实这是一门对于代码入门者非常友好的语言,但是测试小哥都有一个困惑:学了Python能干嘛?我的建议是从写爬虫开始,学习爬虫的编写可以接触到网络请求的基本知识、可以学习到正则表达式,需要爬取大量数据时,还可以顺便学习一下数据库的使用。当然了,对于爬虫来说,学习一下非关系型数据库就可以了。这一方面是为自己学习自动化测试铺路,一方面也可以为以后转岗提供换一个后路:不做测试了我干脆去写代码好了。
3.乐观的心态
测试工程师每天面对的是程序中的“错误”,而程序员每天都在创造代码。起码我作为一个垃圾代码的创造者,是很讨厌去排错的。因此就我而言,测试时你很难保证心态的平和,因为你不知道什么时候会出一个莫名奇妙的错误。
假设这么一个场景,你测试出了一个bug,但是程序员自测之后发现无法复现,你的第一反应不应该是脱口而出:“不可能!”而应该是比对两个人的测试用例,发现可能存在的问题。