软件测试相关的定义就不再详细的介绍,这个可以去百度一下,有很详细的说明。
目前比较通用的叫法及划分,主要是以下几种类型: 功能测试,性能测试,自动化测试,安全测试,接口测试,单元测试,额外专项测试(性能/安全测试本身也属于专项测试,只是经常会单独拿出来说)。可能不同的细分领域或公司有不同的叫法,但基本都涵盖在这里面。
功能测试是最基本的,一般普通的测试人员都是从功能测试入门,一句话来讲就是对研发出来的软件进行功能点的验证(包括正常/异常的情况),判断它是否符合产品的预期,这个最重要的是要求对待测项目有足够的了解。
当然,这只是一个概括的说法,实际工作中根据公司流程规范的不同,操作起来会有较大的差异(有的公司流程完善,要求各阶段的测试交付件;有的公司没有流程,测试人员也不会写用例,直接测。当然各个公司有各自的做法,无需评论优略,适合就好)。
里面会涉及到软件测试的整个生命周期:需求了解–测试计划制定–测试设计–用例编写–执行测试(环境搭建)–问题跟踪–回归测试。
其中对于测试设计,里面有许多方法论,比如:等价类划分,因果图,边界值等等。这些是测试设计的理论知识,市面上有专门的书籍介绍,或者网上搜索一下也挺多,可以看一下。
除了测试设计理论,还应该掌握一些linux系统的基本操作,这个可能会在执行测试的时候进行环境搭建;另外像一些常用的请求工具(例如postman),抓包工具(例如fiddler)等都可以适当的了解一下。
工具技术是说不完的,最好是了解的越多越好,这个就是个经验问题。有很多东西可能一辈子都用不上,但是当要使用的时候,能马上想起来,可以使用这个技术或工具来帮忙达到目的。
性能测试,故名思意就是验证软件的性能是否达标预期。一般是基本功能测试完成之后才进行的,当然不是每个项目都必须要做,根据项目真实情况来决定。
目前网上提到性能测试,就直接是loadRunner,Jmeter等工具的介绍和使用,容易给人造成一种错觉,以为性能测试就是工具的使用,这是比较片面的观点。测试是通过各种技术手段,进行的一项有计划有目的的活动,并不是某个工具的使用。
前面列举的这2个性能测试工具,他们的名声很大,通过使用他们,能快速的帮助进行性能测试,因此才形成了这样的情况。
性能测试一般涉及到几个方面:施压工具,测试脚本,数据采集分析,问题定位。
施压工具可以选用上面提到的2个工具;在某些特殊的项目,可能无法找到合适的施压工具,这个时候可能就需要测试人员(或项目组出方案),自己写对应的施压代码。
测试脚本用上面的2个工具可以录制,但是录制的东西不够灵活,大多数情况下还是需要测试人员自己写代码的。
数据采集,主要是在性能测试过程中收集服务器,应用响应时间等相关的数据,便于对整个压测过程进行评估分析,判断是否有问题。大一些的公司可能一般都有类似的监控系统,可以直接查看。没有的就可能需要测试人员去使用一些第三方软件,安装到服务器。
从上面的介绍可以看出,做性能测试比单纯的功能测试涉及到的东西要复杂很多,他更考验一个测试人员的综合能力。不仅要分析待测场景(测试设计),还要自己准备测试脚本(工具使用,甚至具备研发能力),搭建环境,问题分析。
自动化测试,可以简单的理解为将人工手动测试的工作,通过工具或代码的方式转化为计算机自动运行的用例,帮助测试人员进行回归测试,从而提升测试效率。自动化测试的价值更多在于回归测试和系统监控。
自动化测试可以运用在不同的层次,例如基于UI的自动化,基于接口的自动化,再底层可以涵盖单元测试。
自动化工具非常多,常见的webdriver,selenium,qtp等等,可以根据自己的需求适当的了解。这些框架仅仅只是工具而已,它不代表自动化测试。
自动化测试要求可高可低,简单的运用工具做做参数化就行,基本不涉及代码;复杂的项目中,往往测试人员都会自己写一套自动化测试框架,更适合自己的项目。
接口测试一般也是运用自动化测试工具,或者自己写代码的方式来测试,不再描述。
单元测试,普遍都是开发来完成,当然也有公司存在专职的白盒测试人员,这个要求就比较高,完全是写代码来测试。
另外,近几年许多公司都设置了测试开发的岗位,他不仅需要了解基本的测试技能,还得有一定的开发能力,除了完成日常的测试工作外,还需要关注测试工具等偏开发的内容,上面的性能测试和自动化测试中也提到了,复杂项目的情况也需要测试人员进行一些工具开发,以满足测试需求,这种测试人员就和开发测试很类似。
测试职位入门相对容易,但要做的好,还是需要下很多功夫的。对于专项测试,一定不要拘泥于某个工具的使用。
说一点现状,国内测试人员水平层次不齐,从业人员可能会很多,但优秀的测试人员很少,感觉水军比较多。
对于流程方面而言,很多公司都不具备较完善的流程,测试人员夹在其中,会感觉很难受,努力适应并尽力规范搞定它。
最后,如果有其他选择,试试其他行业。
软件测试员的主要工作内容是根据测试计划和测试方案进行软件测试;能够针对软件需求开发测试模型,制定测试方案,安排测试计划,并对测试项目进行管理。 软件测试主要工作内容是验证(verification)和确认(validation)。 验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件以正确的方式来做了这个事件。 确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。
1、如果你的亲人在做软件测试,这是个特别好的资源,买本软件测试的书籍,让他教你;他个人电脑里会有他公司的资料需求、设计文档、测试案例、被测系统、数据库等,利用周末时间在家教,先看需求了解业务–找出测试点-写案例,然后自己跑系统。之后教数据库的增删改查语句以及一些简单的linux操作命令。 我同事利用周末时间已经把他弟弟、他女朋友都培训成了软件测试人员,现在工资相当不菲。
2、培训班 众所周知,培训班费用很高,如果你学过c语言,了解软件开发与测试流程,就自己买本书多看,网上关于软件测试的资源很多,多看,多投简历,必定会找到份工作。 如果你是其他专业毕业,对计算机软件一点都不了解,那就可以考虑报培训班学习,至于报哪个班,大家上网自行搜索,最好去知乎找答案,满满的都是干货。
3、工作态度: 跨行业进入软件测试,隔行如隔山,想必大家都会珍惜这份来之不易的工作,首先端正态度入职新人都会有老员工带着,一般公司都有配置库,里面有各种文档,测试案例、测试bug文档等;
原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/1997.html