软件测试就是模仿真实用户使用场景对软件的各个方面进行测试,软件测试工程师需要学习一下项技能
1.专业技能:专业技能是必须要掌握的知识,包括黑白盒的测试,还要学习系统测试和功能测试相关内容,系统测试是在应用层面上进行测试,最基础的测试流程管理也是要学习的专业技能。
2.软件编程的技能:编程程序过关,才能往单元测试和性能测试等难度比较大的工作方向发展
3.数据库和操作系统:在测试中要配置各种测试环境,需要对系统平台进行分析,所以要掌握这些基础知识,数据库是应用系统所离不开的
做为从事测试工作十几年的一个老测试,看了好几天这个问题,但却一直没点进来这个问题!原因很复杂,但今天最终还是想给希望踏入这个领域的有心人分享一些个人经验!
一、测试是一个入门相对容易的职业。可以这么说,只要对电脑操作有一定了解的人,原则上都可以去做软件测试,只是刚开始能做的测试任务比较简单罢了!
二、测试又是一个精通比较困难的职业。很多非常牛的计算机系学校开设有专门的软件测试硕士专业,用来专门培养高水平的测试人员。
从以上两个极端的测试从业者水平之间的知识差距可以分析软件测试大概需要学习的内容。
- 如果只希望做基本的UI测试或简单重复测试,只需要了解电脑基本操作、被测程序的基本业务操作、知道碰到问题报告一下就够了。这时候可能自学基本软件测试和电脑入门的书就可以完成测试操作了。
- 如果更进一步水平的测试业者,就需要了解问题的为什么发生?验证问题是否解决?下次测试该怎么发现类似问题?这时候需要的知识可能就需要专业的培训机构经过1、2个月的培训才能达到这种境界。但一般培训机构除了测试的专业知识课程和一些典型项目测试实际操练外,同时会讲一些计算机相关的一些知识,比如:软件工程、操作系统、数据库、网络等,但这些都是皮毛。
- 更进一步软件测试工程师是一些计算机系科班出身的从业者,本身除了在学校深入地学习过计算机系列课程外,开始在测试的细分方向上下功夫,比如:自动化测试、性能测试、安全测试。这时候测试的功力和专业度就非常高了,除了有学校的课程基础知识外,还需要在实际工作中熟悉不同类别的专业软件工具:商业的、开源的、自研的等等。
- 最牛级别的测试就是那些专家级和领域翘楚级测试业者。他们引领着业界测试的方向:最新的测试技术、最新的测试理念、最新的测试方法等等。
基于以上,可以说软件测试是一个需要活到老学到老的职业,你愿意学的内容根据你希望达到的职业目标紧密联系在一起的!
希望以上对您有一定参考和借鉴!
一枚IT兵哥
庚子年春于北京
1/6 分步阅读
会一门编程语言,会到什么程度,能写自动化脚本;但是能不能做好测试不仅仅是会编程而已。
2/6
会SQL,除非那种报表类型的测试,会普通增删改查,知道4种join的区别就可以了(如果你想成为DBA,那么建议你还是深入研究更为妥当)。
3/6
测试用例、测试方案要会写,常用的测试设计方法要知道。
4/6
会通信协议,HTTP是必须的,看行业脑补,做电信的SMPP/MM7/MDSP,做即时通信的SIP/XMPP,会到什么程度,有个RFC在手边能够读懂报文。
5/6
会性能,这个比较宽泛,要学的太多,前端调优,中间件调优,函数调优,数据库调优。
6/6
Windows、Linux系统命令要会敲,安全性和易用性要了解。
首先很荣幸能够这个问题,以下是软件测试需要的技能,你先看看
(1)熟悉计算机基础知识;
(2)熟悉操作系统、数据库、中间件、程序设计语言基础知识;
(3)熟悉计算机网络基础知识;
(4)熟悉软件工程知识,理解软件开发方法及过程;
(5)熟悉软件质量及软件质量管理基础知识;
(6)熟悉软件测试标准;
(7)掌握软件测试技术及方法;
(8)掌握软件测试项目管理知识;
(9)掌握语言程序设计技术;
(10)了解信息化及信息安全基础知识;
软件测试具体需要几个阶段去学习
第一阶段 基础
测试的基础理论知识必须学的,最好能理解,并能够复述。 因为面试初级测试的问题都是基础理论的考核,如定义、分类、方法、生命周期。 计划、方案、用例编写、 BUG定义、BUG分类、BUG六要素、BUG生命周期、测试和开发流程的关系、瀑布流、V字形、螺旋型、敏捷开发等等, 质量管理体系CMMI……
第二阶段 工具
不用纠结工具选择,学习基础的几个工具,就行了,以后用到那个再去学也行。
性能测试工具:loadrunner、jmeter。
接口测试工具:postman
抓包工具:fiddle
数据库管理工具:Navicat、ms-sql server
项目/BUG管理工具:QC
网页监测工具:HTTPwatch,键盘的F12
APP元素查看工具:uiautomator
第三阶段 代码
学习代码,关于编程语言的选择,看你的兴趣了,目前推荐python,胶水语言对测试应该更合适学习吧,当然学学c#和java方便以后考职业资格,数据库也必须掌握!在这个阶段学更复杂的SQL编写。
第四阶段 思考方向
1、管理型:
不限于项目管理,流程管理,QA,CMMI等等。更多的是看个人机遇了。
2、技术型:
最靠谱、最需要个人奋斗就能实现的路线,大致分为以下几种。
自动化测试工程:
又可以划分为UI自动化测试工程师,APP自动化测试工程师、接口自动化测试工程师等,编程是自动化的核心,要会主流的测试框架和辅助工具。主流的框架,如selenium,appium,monkey,monkeyrunner之类的,掌握了APP和UI自动化都可以了。辅助工具前面说过了。
性能测试工程:
只要会工具就能成为一个性能测试工程师,性能测试好做也好学,但是性能调优是的核心技术,学习成本挺高的,这个需要好的开发能力,C、Java要会。各种协议要掌握,TCP/UDP/HTTP/SOCKET等等。还要会Linux。
持续集成工程师:
现今这是一个偏向于云相关的方向,DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
是不是有点晕,大致描述就是开发提交代码后,首次做好各种配置,以后自动触发任务,开始编译部署到测试环境,然后自动进行自动化测试,自动推到生产环境,如果测试没通过,自动回滚,然后开发修改。
没有正版图,懒得画了,百度devops,有图片便于你理解。
还是需要懂代码,服务器运维,CI/CD持续集成持续发布,如Jenkins。至少我认为devops全面成熟实行后,初级测试工程师的就业机会会减少。
测试开发工程师:
双枪老太婆,一看名字就能才出来了,双料能人。和问题不太相关,不多说了(其实是没什么快说的了,哈哈)
安全测试工程师:
SQL注入、渗透测试、暴力破解、脱库等等,基本上偏向于黑客了,发展方向就是白帽子。
最后难不难的问题,这个真是因人而异,看你学不学了。希望我的能够帮助你