想做一名软件测试工程师应该掌握哪些技能?

 我来答
喵喵喵喵喵咪c7
2019-11-14 · TA获得超过4024个赞
知道小有建树答主
回答量:2277
采纳率:100%
帮助的人:75万
展开全部
01 软件测试理论
作为一个软件测试人员,总不能不知道软件测试本身的东西吧。
你总要知道软件测试是什么?什么是测试用例?什么是缺陷?软件测试有些什么特点?这些仅仅是理论,还不关心会不会做。
再比如软件测试的定义,软件测试是测试程序?还是测试文档?还是测试软件等?
02 软件测试流程
如果要清楚软件测试流程,那就一定要知道软件工程、软件生命周期、研发模型、测试模型。
模型又有经典的瀑布模型、目前最流行的敏捷开发流程、V模型、W模型、X模型、H模型等,这些模型至少要随便知道三四种吧
除了这些,还需要知道在测试流程每个阶段都要相应地做些什么事吧。
03 测试文档
软件测试是技能型工作,不是研究型工作,了解了软件测试理论之后,你总会要做点东西吧,比如写写文档。
软件测试人员必备技能之一就是写文档,会总结。
软件测试有很多文档要写,比如测试计划、测试方案、测试用例、提交bug单、测试报告,有时每个迭代完全后,老大还会要求你输出几份经验文档出来,可见会写文档的测试人员是多么的必要。
04 计算机基础
软件测试工程师怎么说也算是IT人员,计算机基础总要会吧。
不然让你关个服务,你迷茫……
让你配置个环境变量,你再迷茫……
让你安装软件,卸载个软件,你搞半天,安装的软件全在C盘,卸载软件完全没卸干净,重装不成功,然后你再再迷茫……
让你在DOS命令窗口查个IP,然后再配个静态IP,你再再再迷茫
………………
计算机基础是软件测试人员必备的技能之一。
05 软件、工具
作为一个IT人员,你好意思说自己不会几个软件么?
那我们就一起盘点盘点,软件测试人员必须要会的软件:
office办公软件就不说了,软件测试要写这么多文档,office办公软件一定要会。
需求分析时,拆会测试点时,总要画一下思维导图,所以XMIND或其它思维导图软件总要会一个吧。
配置管理工具,不管是以前的SVN还是现在流行的git总要会一个。
远程连接工具,数据库和服务器基本都是配置机房,所以数据库和服务器的远程连接工具都要会,你总不能跑到机房去操作吧,如果你跑到机房去操作,那一定记得带台显示器去。
碰到不会的,总要查一下度娘和谷叔吧,你不会说这个人人都会,千万别这样!要不然怎么会有相同的问题,别人就能快速找到解决方法,而你搜索出来的网页总是找不到呢?
06 数据库
不管是MySQL,还是Oracle,还是SQLServere,还是DB2等等,数据库的特性、性能和优化可能不用知道,但是SQL语言总要会吧,谁让它们都认识SQL语言呢。
SQL语言又会为DDL、DML、DQL、DCL。
数据定义语言(DDL):
用于下定义和管理数据对象(库,表,索引,视图),包括数据库,数据表等,例如:CREATE DROP ALTER等语句。
数据操作语言(DML):
用于操作数据库对象中包含的数据,例如:INSERT UPDATE DELETE语句。
数据查询语言(DQL):
用于查询数据库对象中包含的数据,能够进行单表查询,连接查询,嵌套查询,以及集合查询等各种复杂不同的数据库查询,并将数据返回到客户机中显示,例如:SELECT语句。
数据控制语言(DCL):
用于管理数据库的语言,包含管理权限及数据更改,例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
就算软件测试人员不需要关心数据库结构,可以不用DDL、DCL,但是针对数据(增、删、改、查)的DML、DQL语言一定要会吧。
就算你说INSERT、UPDATE、DELETE语句都很简单,照着格式直接使用就行,那SELECT呢。
SELECT语句不仅有简单查询,还有复杂查询。
复杂查询中包含多表查询、连接查询、子查询,以及包含各种函数进行的查询。
这些语句软件测试人员都要掌握吧。
07 LINUX
Linux做为做为服务器的操作系统,软件测试人员需要经常在LINUX上进行搭建测试环境。
如果你说公司的测试环境都是开发搭的,系统和软件是运维装的,不用了解Linux系统。
那你就大错特错了。
如果测试过程中,运行报错了,总需要在后台去看看日志吧,分析下是不是BUG,如果是BUG,总还需要定位一下吧。
如果Linux系统很卡时,你总要去查下进程,查下系统资源管理,或者杀死几个进程,重启下服务什么的。
那这些命令软件测试人员总都要会吧。
如果你说这些还都可以依靠开发和运维,那你就当我没说。
08 编程语言
既然是IT人士,如果出去说自己不会一门编程语言,好像很没面子一样的。
目前世面上编程语言有C、C++、C#、世界上最好的语言(PHP)、JAVA、Perl、Python等等上百种,那你总要选一门语言学会使用。
一般情况下都是选公司系统目前所用的语言。
但如果不知道怎么选,那我建议软件测试人员可以选JAVA和Python,JAVA经久不衰定有它过人之处,Python能在这么短的时间内火起来,也一定是有原因的。
如果没有任何编程基础,建议先学Python,Python更加贴近自然语言,学起来更顺手,更快。
09 行业
软件测试有一条原则是:测试活动依赖于测试内容。
那这个测试内容就是公司业务,在成为业务之前,俗称需求。
经常在JD中看到有支付行业经验优先,有金融行业经验优先,有电信行业经验优先,有电商行业经验优化……
为什么会这样呢?
那是因为测试人员一定需要了解业务,熟悉业务。
从事电信行业的测试人员需要掌握各类协议,比如HTTP协议、TCP/IP协议,还有可能需要熟悉交换机和路由器的原理。
从事金融行业的测试人员需要熟悉各种会计知识。
如果是测试嵌入系统的测试人员还需要了解硬件知识。
软件测试人员需要非常熟悉所测软件的业务,比谁都要熟悉。
IT科技青年
2019-09-10 · TA获得超过1032个赞
知道小有建树答主
回答量:1033
采纳率:0%
帮助的人:109万
展开全部

第一阶段 测试基础

测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。最好学到什么程度呢,最好是能够理解,并能够用自己的话给复述出来。毕竟面试初级测试的时候,问的问题都是从基础理论上进行考核的。

第二阶段 工具学习

软件测试的基础学完了过后,应该学习工具了。其实学工具真的很容易,所以大家不用去纠结工具的选择。把最基础的几个工具学习了就行了,以后用到什么工具就去学什么。下面我会列几个必学的工具,不用太精通,会用就行了。

  • 性能测试工具:loadrunner、jmeter。

  • 接口测试工具:postman

  • 抓包工具:fiddle

  • 数据库管理工具:Navicat

  • 项目/BUG管理工具:禅道、QC

  • 搜索工具: 百度、谷歌

  • 以上的这些工具都是纯图形化的,很好掌握,估计就性能测试工具稍微会费点时间。


    好了,学完了以上两个部分,恭喜你,你已经是一个出色的初级测试工程师了。接下来,你要考虑你的发展方向了。是成为一个自动化测试工程师呢?还是性能测试工程师呢?

    这个阶段,我们应该学习代码了,关于编程语言的选择,一般会选择Java或者python。还有数据库也是必须掌握的!不过不用像开发那样,学的那么深入,把基础的部分学完就行了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清晰且柔滑丶赤子o
2019-09-06 · TA获得超过3017个赞
知道大有可为答主
回答量:5222
采纳率:80%
帮助的人:274万
展开全部
⒈ 测试专业技能
测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。
⒉ 软件编程技能
软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能够编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。
此外,对软件测试人员的编程技能要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。因此测试人员要具备一定的算法设计能力。依据资深测试工程师的经验,测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。
⒊ 网络、操作系统、数据库、中间件等知识
与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。
在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。
操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。
数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。因此不但要掌握基本的安装、配置,还要掌握SQL。测试人员至少应该掌握Mysql、MSSqlserver、Oracle等常见数据库的使用。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自雁荡山壮志凌云的佛手柑
2019-09-06 · TA获得超过639个赞
知道小有建树答主
回答量:199
采纳率:91%
帮助的人:47.4万
展开全部
1、要有宽泛的计算机知识,掌握测试专业技能
2、思维要敏捷;
3、语言表述要清晰;
4、你要有较好的编写代码的水平,最好是自己亲自独立完成过某软件的开发工作
5、需要对数据库有较为清楚的认识,以及会编写数据库脚本
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
别给我带符号
2019-09-06
知道答主
回答量:9
采纳率:25%
帮助的人:6034
展开全部
软件测试工程师应该掌握库知识:
你知道现在Oracle的DBA待遇比一般的开发人员待遇还高,就知道数据库在企业中的重要性了。作为测试人员虽然不需要有DBA的能力,但是基本的数据库操作你必须得会吧?不管是Oracle、DB2、MSsql,还是mysql最少都应该能熟悉使用其中的一二。
软件测试工程师还应该掌握计算机硬件知识:
做过性能测试的朋友都知道在性能测试过程中,硬件性能也是一个非常重要的指标:CPU、内存、IO、带宽等等。如果你是做硬件测试的,那就更不用说了。交换机、路由器、防火墙这些设备,都需要有所了解。
而且你要掌握行业知识,这种知识只能通过工作经验来积累。不要说你去看几本书就知道通信行业、医疗行业、或者是航天行业。你认为在书本上面能学到么?由于行业知识的特殊性,建议朋友们不要频繁跳槽、经验的积累是需要时间来沉淀的。
你还要掌握开发语言,即代码编写能力:虽然不会写代码也能做测试、但是如果你想做到高级测试工程师以上、那么代码编写能力就是必选项、如果不会写代码、那么你不可能成为高级测试。
高级测试工程师的一部分工作,就是在写测试工具。虽然测试也需要写代码,但不需要和开发一样。那么精通某一门语言、可是测试却需要了解很多门开发语言(举个简单的例子:你现在所在的项目用C++语言,2年后你换工作了、新公司的开发语言是java或者是VB什么的)所以在开发语言中测试需要更广的学习。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式