开发一个好的软件,40%以上的时间用在测试上,所以软件测试工程师非常重要,用我们的话来说很吃香。现在从事程序员的人有很多,做测试工程师的人少点,工作压力不太大
测试工程师应该具备的三项基本素质[1] 很多年轻或者刚刚从事测试工作的工程师,经常会问:“测试工程师需要什么技能或者具有什么素质才是合格的?”与开发人员相比,测试人员不但需要一技之长,还需要掌握诸如操作系统、数据库、网络等多方面的知识。
经过这几年的发展,国内IT公司的测试水平有了很大的提高,但是与此同时,很多测试工程师也迎来了个人的发展瓶颈:很多人从测试工程师做到了测试经理的职位,不知道下一步如何发展;或者每天机械地从事着功能测试工作。
根据作者多年的经验,一个有竞争力的测试人员要具有下面三个方面的素质:
计算机专业技能
计算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间或者持久竞争力的测试工程师,则计算机专业技能是必不可少的。计算机专业技能主要包含三个方面:
测试专业技能
现在软件测试已经成为一个很有潜力的专业。要想成为一名优秀的测试工程师,首先应该具有扎实的专业基础,这也是本书的编写目的之一。因此,测试工程师应该努力学习测试专业知识,告别简单的“点击”之类的测试工作,让测试工作以自己的专业知识为依托。
测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。
软件编程技能
“测试人员是否需要编程?”可以说是测试人员最常提出的问题之一。实际上,由于在我国开发人员待遇普遍高于测试人员,因此能写代码的几乎都去做开发了,而很多人则是因为做不了开发或者不能从事其它工作才“被迫”从事测试工作。最终的结果则是很多测试人员只能从事相对简单的功能测试,能力强一点的则可以借助测试工具进行简单的自动化测试(主要录制、修改、回放测试脚本)。
软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能给编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。
此外,对软件测试人员的编程技能要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。因此测试人员要具备一定的算法设计能力。依据作者的经验,测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。
网络、操作系统、数据库、中间件等知识:
与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。
在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。
操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。
数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。因此不但要掌握基本的安装、配置,还要掌握SQL。测试人员至少应该掌握Mysql、MS Sqlserver、Oracle等常见数据库的使用。
作为一名测试人员,尽管不能精通所有的知识,但要想做好测试工作,应该尽可能地去学习更多的与测试工作相关的知识
软件测试工程师-IT就业新亮点,
根据有关职位统计资料显示,在国外大多数软件公司,1个软件开发工程师就需要辅有2个软件测试工程师。目前,软件测试自动化技术在我国则刚刚被少数业内专家所认知,而这方面的专业技术人员在国内更是凤毛麟角。根据对近期网络招聘IT人才情况的了解,许多正在招聘软件测试工程师的企业很少能够在招聘会上顺利招到合适的人才。
随着中国IT行业的发展,产品的质量控制与质量管理正逐渐成为企业生存与发展的核心。从软件、硬件到系统集成,几乎每个中大型IT企业的产品在发布前都需要大量的质量控制、测试和文档工作,而这些工作必须依靠拥有娴熟技术的专业软件人才来完成。而软件测试工程师就是其中之一。
据了解,由于软件测试工程师处于重要岗位,所以必须具有电子、电机类相关专业知识背景,并且还应有两年以上的实际操作经验。他们应熟悉中国和国际软件测试标准,熟练掌握和操作国际流行的系列软件测试工具,能够承担比较复杂的软件分析、测试、品质管理等任务,并能独立担任测试、品质管理部门的负责人。一般情况,软件测试工程师可分为测试工程师、高级测试工程师和资深测试工程师三个等级。
在具体工作过程中,测试工程师的工作是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。对软件测试工程师而言,必须具有高度的工作责任心和自信心。任何严格的测试必须是一种实事求是的测试,因为它关系到一个产品的质量问题,而测试工程师则是产品出货前的把关人,所以,没有专业的技术水准是无法胜任这项工作的。同时,由于测试工作一般由多个测试工程师共同完成,并且测试部门一般要与其他部门的人员进行较多的沟通,所以要求测试工程师不但要有较强的技术能力而且要有较强的沟通能力。
因此,在企业内部,软件测试工程师基本处于“双高”地位,即地位高、待遇高,有的人月薪可高达8000元。可以说他们的职业前景非常广阔,从近期的企业人才需求和薪金水平来看,软件测试工程师的年工资有逐年上升的明显迹象。测试工程师这个职位必将成为IT就业的新亮点。
‘贰’ 做软件测试需要具备哪些技能
1、 软件测试基础知识:
测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、单元测试、功能测试、集成测试、系统测试等等、CMMI /ISO9001
2、 各种测试工具的使用:
我们在测试的工作中为了能够提高工作效率进程会用到很多工具、QTP、LR、QC、TD、Bugfree、VSS、SVN等等工具、虽然说工具不是万能的但是工具能为我们提高工作效率所以不能吧工具当神一样看待、但是必须得会熟练的使用
3、 操作系统相关知识:
Windows、linux、uinx这些都必须会使用、而且不仅仅是简单的操作、一般的服务管理、注册表编辑、命令行操作都需要会、可以想象下一个连apache服务都不会安装配置的人、谁能想象你可以做好基于apache环境的测试工作、什么?不知道怎么查看磁盘压力、IO数据。windows linux都有提供自带的工具可用于查看这些数据、perfmon、top什么的。
4、 数据库知识:
现在Oracle的DBA待遇比一般的开发人员待遇还高就知道数据库在企业中的重要性了、作为测试人员虽然不需要有DBA的能力、但是基本的数据库操作你必须得会把、不管是Oracle、DB2、MSsql还是mysql最少都应该能熟悉使用其中的一二。
5、 计算机硬件知识:
做过性能测试的朋友都知道在性能测试过程中硬件性能也是一个非常重要的指标、CPU、内存、IO、带宽等等、如果你是做硬件测试的。那么就更不用说了。交换机、路由器、防火墙这些设备都需要有所了解。
6、 网络协议:
如果你还知道TCP和UDP有什么不一样的话请赶快去补充点知识吧、互联网时代、一切都通过网络传输、常用协议必须得了解、曾经面试了一个测试工程师做了2年的测试居然不知道自己测试软件使用什么协议、这样的人是你的话你敢招么?
7、 开发语言即代码编写能力:
虽然不会写代码也能做测试、但是如果你想做到高级测试工程师以上、那么代码编写能力就是必选项、如果不会写代码、那么你不可能成为高级测试。高级测试工程师的一部分工作就是在写测试工具。虽然测试也需要写代码但不需要和开发一样那么精通某一门语言、可是测试却需要了解很多门开发语言(举一个简单的例子:你现在所在的项目从C++语言、2年后你换工作了、新公司的开发语言是java或者是VB什么的)所以在开发语言中测试需要更广的学习。
8、 行业知识:
行业知识之所以写在最后面是因为前面的7条我们都可以通过学习来掌握、但是唯独行业知识却只能通过工作经验来积累、不要说你去看几本书就知道通信行业、医疗行业、或者是航天行业、你认为在书本上面能学到么?
由于行业知识的特殊性所以建议朋友们不要频繁的跳槽、经验的积累是需要时间来沉淀的。
9、 具有一定的美学观:
这个说起来比较拗口一点、简单来说不管是开发活动还是测试活动、最后的目标就是将产品推向市场、而且得到用户的认可。所以如果产品在需求分析阶段就出现了偏离用户航道、那么就算测试 开发做得再好这个项目也是一样会失败。所以各位如果有幸能够参加需求评审的话、请不要吝啬你的言论。
10、请不要忘记时刻学习着:
这点我相信大家应该都能理解所以不用写什么:仅此一点“不学习就会落后”
总结:说了那么多技能或者是说是需要掌握的技术、如果你没有一颗发现缺陷之美的心态、没有一颗以提高质量为前提来投入工作中、那么就算你其他做得再好也不过是万千软件测试从业人员中的一枚。测试活动大部分用于发现缺陷、而发现缺陷之后的工作尤为重要:怎么样从发现缺陷到提高质量。
‘叁’ 软件测试需要哪些技能
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协议,还有可能需要熟悉交换机和路由器的原理。
从事金融行业的测试人员需要熟悉各种会计知识。
如果是测试嵌入系统的测试人员还需要了解硬件知识。
软件测试人员需要非常熟悉所测软件的业务,比谁都要熟悉。
‘肆’ 怎样做好软件测试
首先我们需要了解软件的测试要求,同时学会如何更好的学习。更为详细:
1.需要技术知识和深奥的分析能力创建极其复杂的测试。每个软件都有不同的特性。我们需要依靠专业的技术知识和深奥的分析能力去解决复杂的软件运算问题。并做好测试。
简而言之。做好软件测试并不是那么容易,需要有专业的技术,也需要足够强的分析能力,还要有强学习能力去解决问题。同时还要懂得如何打破常规。才能更好的做好软件测试。
‘伍’ 软件测试中用到的网络相关基础知识细细地总结下
我学网络的 用到的知识就只有一个 TCP/IP协议 但里面有包含很多的知识 有数据包的封装 帧格式(可以做冒充数据包软件) 3次握手 4次挥手(在这里面可以做很多关于建立连接的软件哦 比如 迅雷) ARP(在ARP中可以做个ARP攻击软件 或P2P终结者 ARP防火墙 等等) IP(可做IP欺骗软件) UDP/TCP(可做端口扫描软件 端口攻击软件 比如攻击端口80的WEB软件) 在应用层来说 有 公钥私钥密钥软件 加密软件 认证软件 传输层 可做SSL软件 比如你细心的话你会发现访问银行的时候浏览器会变成HTTPS 而不是HTTP了 还有很多 KERBEROS身法认证 PGP 都涉及到网络知识的 还有IP层的 IPSEC 现在很红的技术 还有链路层的 L2TP 我也没好好终结下 反正大体就这些了 哦 对了 还有流量控制 帧编号 我是学网络的 所以谈到的都是关于网络安全的软件和攻击方法
‘陆’ 如何使用speedtest测速软件测试网络质量
使用speedtest测速软件测试网络质量的步骤:
下载speedtest软件,打开该软件,就会看到测试界面,点击“开始测试”;
在准备好测试后就会开始一轮新的测试,首先测试的是网络的ping值。ping值反应的是接入网络的时延情况;
然后开始测试的是下载速率,反映了你使用下载业务时的网络速度;
然后自动测试上传速率,反映了你使用上传业务的平均速率;
点击“结果”就是你历次测试的结果;
点击“工具”就是你使用的服务器,及内部外部的IP。
‘柒’ 软件测试的方法一共有几种
1、从是否关心内部结构来看
(1)白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
(3)灰盒测试:是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
2、从是否执行代码看
(1)静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
(2)动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
3、从开发过程级别看
(1)单元测试:又称模块测试,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。
(2)集成测试:又叫组装测试或联合,是单元测试的多级扩展,是在单元测试的基础上进行的一种有序测试。旨在检验软件单元之间的接口关系,以期望通过测试发现各软件单元接口之间存在的问题,最终把经过测试的单元组成符合设计要求的软件。
(3)系统测试:是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
在系统测试中,对于具体的测试类型有:
(1)功能测试:对软件需求规格说明书中的功能需求逐项进行的测试,以验证功能是否满足要求。
(2)性能测试:对软件需求规格说明书的功能需求逐项进行的测试,以验证功能是否满足要求。
(3)接口测试:对软件需求规格说明中的接口需求逐项进行的测试。
(4)人机交互界面测试:对所有人机交互界面提供的操作和显示界面进行的测试,以检验是否满足用户的需求。
(5)强度测试:强制软件运行在异常乃至发生故障的情况下(设计的极限状态到超出极限),验证软件可以运行到何种程序的测试。
(6)余量测试:对软件是否达到规格说明中要求的余量的测试。
(7)安全性测试:检验软件中已存在的安全性、安全保密性措施是否有效的测试,
(8)可靠性测试:在真实的或仿真的环境中,为做出软件可靠性估计而对软件进行的功能(其输入覆盖和环境覆盖一般大于普通的功能测试)
(9)恢复性测试:对有恢复或重置功能的软件的每一类导致恢复或重置的情况,逐一进行的测试。
(10)边界测试:对软件处在边界或端点情况下运行状态的测试。
(11)数据处理测试:对完成专门数据处理功能所进行的测试。
(12)安装性测试:对安装过程是否符合安装规程的测试,以发现安装过程中的错误。
(13)容量测试:检验软件的能力最高能达到什么程度的测试。
(14)互操作性测试:为验证不同软件之间的互操作能力而进行的测试。
(15)敏感性测试:为发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的测试。
(16)标准符合性测试:验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的测试。
(17)兼容性测试:验证软件在规定条件下与若干个实体共同使用或实现数据格式转换时能满足有关要求能力的测试。
(18)中文本地化测试:验证软件在不降低原有能力的条件下,处理中文能力的测试。
4、从执行过程是否需要人工干预来看
(1)手工测试:就是测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输 入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有一场发生,属于比较原始但是必须执行的一个步骤。
(2)自动化测试:实际上是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)
5、从测试实施组织看
(1)开发测试:开发人员进行的测试
(2)用户测试:用户方进行的测试
(3)第三方测试:有别于开发人员或用户进行的测试,由专业的第三方承担的测试,目的是为了保证测试工作的客观性
6、从测试所处的环境看
(1)阿尔法测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试
(2)贝塔测试:是用户公司组织各方面的典型终端用户在日常工作中实际使用贝塔版本,并要求用户报告
软件测试的内容:
1 得到需求、功能设计、内部设计说书和其他必要的文档
2 得到预算和进度要求
3 确定与项目有关的人员和他们的责任、对报告的要求、所需的标准和过程 ( 例如发行过程、变更过程、等等 )
4 确定应用软件的高风险范围,建立优先级、确定测试所涉及的范围和限制
5 确定测试的步骤和方法 ── 部件、集成、功能、系统、负载、可用性等各种测试
6 确定对测试环境的要求 ( 硬件、软件、通信等 )
7 确定所需的测试用具 (testware) ,包括记录 / 回放工具、覆盖分析、测试跟踪、问题 / 错误跟踪、等等
8 确定对测试的输入数据的要求
9 分配任务和任务负责人,以及所需的劳动力
10 设立大致的时间表、期限、和里程碑
11 确定输入环境的类别、边界值分析、错误类别
12 准备测试计划文件和对计划进行必要的回顾
13 准备白盒测试案例
14 对测试案例进行必要的回顾 / 调查 / 计划
15 准备测试环境和测试用具,得到必需的用户手册 / 参考文件 / 结构指南 / 安装指南,建立测试跟踪过程,建立日志和档案、建立或得到测试输入数据
16 得到并安装软件版本
17 进行测试
18 评估和报告结果
19 跟踪问题 / 错误,并解决它
20 如果有必要,重新进行测试
21 在整个生命周期里维护和修改测试计划、测试案例、测试环境、和测试用具
‘捌’ 软件测试需要学习些什么技能
软件测试需要学习测试用例、测试用例的方法、缺陷管理工具、掌握数据库、App测试、python语言、Linux系统、前端语言等技能。
1、测试用例
这是每一个工程师必备技能,也是标志你进入测试行业最低的门槛,关于测试用例可以参考我以前写的文章。
7、python语言
python语言是现在最流行的语言,这是测试人员技能升级最好的方式之一,测试人员可以利用他做非常多的事情。
8、Linux系统
Linux系统,测试人员利用它最多的是看日志,更好地为开发定位bug,这也是提升技能之一。
9、前端语言
前端语言,可以让自己更好的判断bug是前端还是后端造成的,多学一点技能对于测试人员非常好的。
‘玖’ 软件测试工作内容是什么
软件测试的工作内容很多,山东省软件评测中心从4各方面阐述
1) 信息系统规划与选型
u系统规划咨询:协助进行系统的规划设计、系统实施方案编写咨询、系统可行性报告编写咨询、系统可行性评估等;
u应用系统方案评估:在应用系统建设方案论证时,对方案中的系统架构、可靠性、可扩展性、兼容性、风险、投资成本等内容进行评估,以明确系统建设的风险和可行性,为领导决策提供支持。同时,针对方案中的不足给出改进建议。
u应用系统成本估算:对系统中的应用软件根据其规模、结构、技术含量等估算其成本,为项目投资预算或决算提供参考。
u比对测试:结合客户的系统应用规划,建立统一的测试基准,对备选产品进行基准测试,出具权威测试报告,为应用系统选型提供量化判定依据。
2)信息系统建设与开发
在信息系统建设与开发过程中进行质量控制,具体可分解为以下方面:
u需求工程咨询与阶段评审:参与系统需求调研与分析、协助构建需求管理与开发规范、需求分析技术与工具的指导等;对阶段性需求分析成果进行评审与验证。
u设计与开发技术咨询与技术评审:协助建立编码规范、系统分析设计方法与工具的指导等;对系统设计的阶段性成果进行技术评审和验证,并对规范落实情况进行跟踪,对发现的问题提出可行性意见并提出改进措施。
u软件测试咨询与过程测试:改进及构建软件测试体系、协助建立缺陷管理规范;对软件开发与实施过程中的各个阶段性的开发产品进行测试和确认。根据软件开发合同或计划,针对各个阶段的产品进行严格的测试,包括单元测试、集成测试、系统测试。
u技术评审与质量保证:对工作成果进行技术评审、定期对工作成果进行质量检查并提供质量保证报告;
u项目管理咨询:协助构建项目管理规范、项目管理工具应用指导等;
u配置管理咨询:协助构建配置管理规范、配置管理工具应用指导等;
u质量管理咨询:协助构建质量保证规范、质量管理工具应用指导等;
u软件过程改进咨询:构建软件过程规范、协助实施软件过程改进。
u文档体系咨询:结合项目实际情况协助构建各类项目文档的结构体系,提供可行性文档撰写模板及案例。
3)信息系统交付与验收
在软件项目的后期,软件项目经过试运行等工作,表明软件的开发等工作已基本完成,此时,可以着手准备软件项目的验收。软件开发项目验收是对整个开发项目的结果的评价,是软件交付使用前对项目进行评估、认定和总结的过程,包括费用、质量、服务等多个方面。通过验收工作,来找出项目中可能存在的问题和不足,并进行最后的修正,以使项目成果完美的交付到最终使用人员手中。
u验收测试:依据软件开发商和用户之间的合同、软件需求说明书以及相关行业标准、国家标准、法律法规等对软件的功能、性能、可靠性、易用性、可维护性、可移植性等特性进行严格的测试,以找出软件的缺陷和不足,并提成修改意见,完善项目成果。
u项目成本评估:为需要对项目成本进行审计、核算的用户提供项目成本评估,对软件的成本给出参考性意见。
u文档测试:对软件开发商提供的相关文档进行审核,并提出修改意见,以便于软件或系统的使用、维护和移植。
u履约情况检查:对合同中规定的进度、服务等项目执行情况进行检查,以保障双方的利益。
4)信息系统运行与维护
u应用系统风险评估:对应用系统的整体情况进行综合的评价,包括系统的功能、可靠性、性能、安全性、风险、需投入成本等项目的测试、评价与估算,并给出有针对性改进建议。
u信息系统性能测试与故障诊断:我们采用应用系统性能、服务器监测、网络分析等工具实现网络应用系统故障定位和管理,分析关键应用的响应时间在客户端、网络、服务器的分布,汇总关键应用的吞吐量和网络带宽占用率,揭示引起应用系统故障的真正原因。