软件测试工程师的进阶路线是?
![[��ǩ:����] [��ǩ:����]](https://www.xuefen.net//file/upload/img/7/184.jpg)
软件测试人员一般有三大发展方向。一是走软件测试的技术路线,成长为高级软件测试工程师;二是向管理方向发展,从测试工程师到组长,再到测试经理,以至更高的职位;三是可以换职业,做项目管理或做开发人员。经过软件测试岗位洗礼的人才往往是行业中的多面手,在技术、管理、市场甚至其他非IT领域都能得到良好的发展。当然这首先要取决于从业者是否具备长远眼光,对自己的职业生涯进行合理规划。
软件测试攻略(十六):Jmeter进阶_if控制器&正则表达式提取器
前一课的思考解答。
场景:
用户在注册页面输入用户名时,
如果是已存在的用户名会跳转到登录页面进行登录,进入查询页面。
如果是不存在的用户名就会进行注册,再跳转到登录页面进行登录,进入查询页面。
是两个不同的流程,如何控制用户名的效验结果不同时,走不同的流程呢,这里要用到Jmeter的if控制器。
(1)抓取用户效验请求:
(2)if控制器
(3)正则表达式提取器
我们截取含有需要判断的部分 "respDesc":"成功"} 作为响应报文中需要判断的字段,把需要判断的“成功”改为(.*?),就得到我们的正则表达式。
即:把需要提取的字符串前后都复制下来,保证其他部分是不变的,然后需要提取的字符串用(.*?)代替
if控制器的条件是正则表达式中的result等于'成功'时。
正则表达式,又称规则表达式。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
3.贪婪模式
贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配。与之相反的是,非贪婪模式,非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。在匹配优先量词后加上“?”,就是非贪婪模式。
4.实例
软件测试攻略(十五):Jmeter进阶_响应断言、参数化
这个阶段,知道即可,不做深入了解。
Jmeter的断言很多,我们先说一下响应断言。
一个http请求发出去,如何判断他是否执行成功呢。我们可以通过检查服务器响应数据,是否返回预期想要的数据,如果是,判断任务成功,反之任务失败。一次测试几十,几百条的测试用例,每一条独个去看效率多么低下。所以,要用到响应断言。
使用上述配置元件进行参数化后,我们看到无论写了多少条,它只跑了第一条,所以这里要讲到循环。
使用Jmeter开发脚本时,难免需要调试,这时可以使用Jmeter的Debug Sampler。
思考:
软件测试进阶要学哪些东西?
2016软件测试final免费下载
链接:https://pan.baidu.com/s/1s7e4vRIrHpuhwYbgJNZGEQ
提取码:rtpi
软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
进阶一 | 测试小白需掌握的基础知识之测试需求分析
软件测试随着软件的产生而产生的,近年来,软件行业的迅猛发展,让软件测试停在手工测试的水平已不能满足软件项目的需要。要了解软件测试,首先要知道软件测试工作的流程是怎样的。
下面我们就来看一下,软件开发过程中,开发人员与测试人员的工作流程吧!
1、开发流程:
需求分析--需求评审(通过)--开发编写开发计划--概要设计--详细设计--编码--单元测试--转测--部署环境--修复bug等等验证(N轮)--测试通过--发布上线
2、测试流程:
需求分析--需求评审(通过)--编写测试计划--设计测试用例--用例评审(通过)--等待提测--部署测试环境--冒烟测试(通过)--系统测试--提交bug并跟踪解决(N轮)--测试通过--输出测试报告--发布上线
接下来我们就一步一步来看看测试人员的工作流程,第一步就是测试需求分析啦!这部分是关键,影响着你对项目的理解与接下来的测试过程。因为你是需要根据需求来分析测试点,再根据测试点来编写测试用例的。
确切地讲,所谓的测试需求就是在项目中要测试什么。我们在测试活动中,首先需要明确测试需求(What),才能决定怎么测(How),测试时间(When),需要多少人(Who),测试的环境是什么(Wher
e),测试中需要的技能、工具以及相应的背景知识,测试中可能遇到的风险等等,以上所有的内容结合起来就构成了测试计划的基本要素。而测试需求是测试计划的基础与重点。
测试需求分析的主要目的:依据需求文档提取测试点,根据测试点来编写测试用例。
1.需求分析的必要性
如果要成功的做一个测试项目,首先必须了解测试规模、复杂程度与可能存在的风险,这些都需要通过详细的测试需求来了解。所谓知己知彼,百战不殆。测试需求不明确,只会造成获取的信息不正确,无法对所测软件有一个清晰全面的认识,测试计划就毫无根据可言。活在自己世界里的人是可悲的,只凭感觉不做详细了解就下定论的项目是失败的。
测试需求越详细精准,表明对所测软件的了解越深,对所要进行的任务内容就越清晰,就更有把握保证测试的质量与进度。
2.不做需求分析的后果
不做需求分析或需求分析不到位,可能会产生很严重的问题,比如:
(1)浪费时间和资源实现了用户不需要的需求。
(2)遗漏了需求文档中没提到,但很重要的需求,导致客户满意度降低。
(3)需求分析不到位,错误的估计了测试的工作量,导致延误发布周期,可能会降低发布质量。
以上的几个问题,在实际开发中是比较常见的,主要的原因就是需求分析不到位,会导致影响客户的满意度。
通常是以被测产品的需求为原型进行分析转变而来,测试需求主要通过以下途径来进行收集:与待测软件相关的各种文档资料。如软件需求规格、Use case、界面设计、项目会议或与客户沟通时有关于需求信息的会议记录、其他技术文档等。
1.软件测试明确需求范围
了解该需求是为了解决用户的什么问题。功能性需求:产品必须有的功能,非功能性需求:是否美观,用户体验,稳定性,易用性等。
最容易忽略的一点:明确的需求背后所隐藏的需求(例如登录,明确的需求是,正确输入用户名,密码,才能登录。隐性需求:用户名字符类型,长度,是否可为空;密码字符类型,长度等)
2.画业务流程图
根据需求中规定的业务流程,明确各业务流程分支,以及业务原因规定不可使用的业务流程。
3.功能点整理(思维导图)
业务功能:需求中所定义的实际业务直接相关的功能
数据约束:主要是用于控制在执行功能时,数据的显示范围、数据之间的关系等。
易用性需求:便于功能操作使用的一些细节,比如快捷键就是典型的易用性需求。
编辑约束:在功能执行时,对输入数据项目的一些约束性条件,比如只能输入数字。
权限需求:不同的权限所能操作的功能点的不同
4.提取测试点(测试需求文档)
根据整理的思维导图,去提取每一个功能点中的细节需求,例如新增员工,在思维导图中,最小的颗粒度就到新增员工了,但是新增员工这个功能仍然有很多的需求点,员工姓名唯一性判定,手机号码是否必填等,这些更细的需求点组合起来就形成了测试需求文档。
5、确定测试范围
需求的确定,并不代表测试范围就是该需求的范围,很有可能一个需求分多个软件版本来实现,最后确定哪些需求是需要测试的。明确哪些测试目标优先级高,哪些目标优先级低,要完成哪些相应的测试任务才能确保目标的实现。
每天都要进步一点点,要知道学无止境哦~加油加油加油!
软件测试进阶发展趋势
性能测试的目的是度量系统相对于预定义目标的差距,同时发现软件系统中存在的性能瓶颈,优化软件。性能测试一般要有专门的工具支持,必要时还是要开发专门的接口工具。测试过程中需要收集系统资源使用情况和系统行为表现,可以采用两种方式,一是采用探针,即在系统代码中插入很多程序指令,通过这些指令记录系统状态,并最终收集数据整理成报告,二是在系统中使用性能监视器,在固定时间内收集系统状态信息。虽然工程不同,采用的评估和度量方法不同,但是还是要懂一些代码和技术,不然都不知道评估那些性能指标,怎么收集系统状态。
怎么做好软件测试?一个合格得软件测试师要具备哪些能力?
一个好的软件测试工程师,必要的条件有:
对开发技术的了解
对测试理论的熟悉
对产品、系统业务逻辑的熟悉
对客户立场、应用背景、业务需求、市场的把握
不断的学习和总结能力
良好的沟通能力
进一步的,对自动化测试工具的使用。
分步来说:
开发技术 一个测试人员在测试一个产品的时候是不能不了解开发技术的。无论是白盒还是黑盒测试,只要掌握了开发技术就能让自己在心理预期到可能出错的地方。同时增强了对产品测试的信心。否则,只知道产品的表现,只是通过外在的问题去提交测试报告,那么很显然,对产品的测试是不健全的,因为不能发现底层的根本问题。举例来说,对J2EE的产品,很多数据都是放在session中的,那么当注销之后数据就不存在了,如果不了解这一点,很可能人为本次刷新页面或者业务流程中能看到对应的数据,比如购买了某个商品。那么当退出再登录之后一看,咦,数据怎么没有了,为什么购买的产品么有记录?这是通过技术的了解去猜测可能出现问题的地方。所以对技术机制、软件架构、交互方式一定要有所把握。
2. 测试理论 很显然这是测试的基础,如果连基本的边界值、等价类划分、因果图等测试方法都不了解,那肯定是没法测试的。即使不知道这些理论,在实际工作中也会用到这些方法,但是系统的理论知识一定能让自己对测试过程、测试方法有更充分的准备和判断。
3. 产品、系统业务逻辑的熟悉 这一点很重要,是因为一个产品肯定是面向特定用户、特定商业目的的。比如社保系统,客户是社保局的工作人员,同时也暗指了普通的老百姓,因为工作人员是替老百姓办事儿的。那么办事儿的目的、使用的数据、业务流程,都要在系统中体现出来,这也是系统存在的价值。公积金转移、销户具备的条件一定要清楚,这样才能设计足够覆盖面的测试用例,从而测试系统的功能是否健壮、完善、高效。
4.客户立场、应用背景、业务需求、市场的把握 产品或系统,都是与时俱进的,每当客户提出一个需求或者我们开发一个新的产品的时候,一个出发点就是市场、业务、流程等方面发生了变化。比如电信营业厅的BSS系统,也就是营业员使用的系统,已经从第一代更新到第五代了。这期间不仅经历了从固网业务到宽带业务的变化,也融合了移动网络也就是手机的业务,最后也加入了对3G业务的支撑。显然,了解产品的变动原因,有利于把握对产品的了解和未来走势的判断,这样能帮助自己称为业务专家。当业务熟悉的时候,对测试过程也就十分熟悉了。
5. 不断的学习和总结能力 这一点是进步的基础。无论是开发还是测试,总是要面对变化,这包含业务上的也包含系统的技术方面。比如原来很多系统是采用cs架构的,但是随着互联网的普及和其他原因,现在大多数的系统都是bs架构的了。bs架构的系统结构、开发方式、技术手段、测试方法。都需要不断的积累经验。
6. 良好的沟通能力
测试人员的最终立场是客户,即代表客户去测试产品。同时也站在开发的角度去测试产品,保证产品的质量。最后也要站在管理的角度对公司的过程管理进行优化。所以说,测试人员的角色是很复杂的,正式因为很多问题都是测试人员发现的,他们让企业更了解自己的缺陷。所以测试人员实在是太重要了,尤其是在竞争激烈的今天。那么对于测试人员来说,良好的沟通能力就非常重要,因为测试人员要打交道的有:客户、开发人员、项目经理或测试经理。每一个缺陷的发现都会让上述人员有所了解,最困难的是和开发人员的沟通。因为很多开发人员人为一些小事情根本就不是问题,但是这些问题却影响了客户在使用系统时候所体会到的可用性、健壮性。开发人员的立场是做出来产品,测试人员的立场是使用产品及检验产品。双方是一个对立的角色,但是最终目标是相同的。所以沟通的时候需要把握的原则是共同目标,不要产生对立。沟通的技巧需要逐步积累,不是一蹴而就的。
7. 进一步的,对自动化测试工具的使用。现在系统越来越复杂,开发周期越来越长。所以对测试工具的掌握能够减轻测试人员的工作压力。尤其是回归测试这个比较让人头疼的事情。有耐心的人还好,没有耐性的人对于那种总是经常重复的工作会非常厌烦,导致情绪糟糕。另一方面,测试是需要充足覆盖的,不能相信人脑的测试流程、数据的记忆,一定要形成脚本,程序是不会以往流程或者数据的,人脑却会。所以使用自动化测试工具的好处就显而易见了。
其他方面也有很多比如责任心什么的,不过个人认为任何工作都需要责任心,不用多强调。不过上面几点是我人为比较重要的,希望能够帮到你。
不知道这个软件测试能不能自学啊,难不难啊?
软件测试可以自学的。
一、软件测试基础知识
要想进入测试这个行业,就必须要了解什么是软件测试,该如何测试?
这部分的学习目标:掌握软件测试的基本概念、软件测试的流程,并能熟练的应用常见的用例设计方法来设计测试用例。掌握常见的测试方法和类型,并知道如何进行每个阶段的测试。
下面是推荐的参考书:
1、软件测试(原书第2版) (美)佩腾(Patton,R.) 著,张小松 等译
这本书可以用来作为进入行业的第一本书,本书讲解的都是实用的技术,通过阅读本书可以快速的去学会如何测试软件。个人建议,这本书至少要读3遍以上。
看完这本书,自己可以去找一个项目(可以到开源中国上查找)来测一测,应用一下学的知识,找一找缺陷。在测试这个项目中要体会一下测试的流程,学习如何搭建测试环境。
2、软件测试的艺术(原书第3版) (美)梅耶 等
第二本就是这本软件测试的“圣经”,这本书据说是硅谷测试人员必备的书。这本书最值得看的地方就是测试的思想。阅读这本书可以让你有豁然开朗的感觉。
3、计算机软件测试(原书第2版) (美)卡尼尔
这本书也是值得一读的,同样也是非常适合初学者阅读的。
4、全程软件测试 朱少民
上面的都是外国人写的,来本国产的。
还有很多经典的测试书,例如:Paul C.Jorgensen的软件测试(第2版)这本书,但是笔者认为他不是很适合初学者,这本书都是用来做研究生教材的,做过一段测试的可以来看看。
二、软件测试进阶书籍
这部分主要是针对有过一年左右测试经验的,真正测试过几个项目的。推荐的参考书主要是提高测试效率的,一些测试的经验。
1、有效软件测试
这本书主要是给软件测试的各个阶段提出了一些建议,一共50条。这些建议都十分中肯,值得一读。
2、软件测试经验与教训
听书名也应该了解了一大半了吧,这本书一共给出了293条经验,阅读它吧。它会让你重新思考关于测试的基本理论。
还有一些很好的书籍了,但是没有读过的就不做推荐了。
三、自动化测试
我们都知道,目前自动化测试是软件测试的趋势,而且目前公司在招聘的过程中都会考察自动化相关的知识。这里我们介绍一下QTP和Loadrunner等测试工具。
目标:掌握自动化测试的概念、流程和方法。能够使用相关的工具进行自动化的测试。
QTP部分:
目标:掌握QTP的测试流程、工作原理和基本使用。能够使用QTP进行自动化测试。进阶需要掌握自动化框架设计的原理,并能独立设计自动化框架。
目前网络资源很丰富,有很多前辈录制了很多视频,大家可以先来看看。
1、IT播吧 - 小强老师零基础学习软件测试系列视频教程之QTP学习指南
首先可以先看这套视频,这里主要讲的是QTP的基本使用。学习视频的过程中,最好能够独立的测试QTP自带的飞机订票的例子。这个最好了,QTP的基本使用就没问题了。
2、精通QTP——自动化测试技术领航 余杰 赵旭斌 编著
第一个视频还是讲的录制和回放,并且也是以飞机订票作为的例子,但是实际工作中,很少有录制的项目,基本上都是需要自己开发脚本的。所以这本书会给你很大帮助的。
3、QTP自动化测试权威指南(第二版)
这本是QTP的大牛TarunLalwani的经典力作,公认的QTP测试的“圣经”。无论是初学者还是使用过QTP的都应该好好的读一读。
LoadRunner部分:
目标:掌握性能测试的常见术语,性能测试的方法和流程。能够熟练使用Loadrunner。进阶的话需要学会分析性能报表,找到性能瓶颈,进行性能调优。但是这个过程并不是看基本书就可以达到的,需要不断的积累测试经验才能做到的。(努力吧)
1、IT播吧 - 小强老师零基础学习软件测试系列视频教程之Loadrunner学习指南
还是这个视频,学过这个视频基本上可以独立的使用Loadrunner执行性能测试用例了。
2、精通软件性能测试与LoadRunner最佳实战
在来一本入门的书,这本书基本上算是Loadrunner的百科全书了吧,各个方面都有所涉及。
3、捉虫记——大容量Web应用性能测试与LoadRunner实战
这部分还需要掌握,类似QC这样的测试管理工具和Mantis等缺陷管理工具。
自动化理论部分:
1、软件测试自动化 (美)Daniel J.Mosley 等著
2、软件自动化测试技术与实例详解(一本很老的书)
3、自动化测试最佳实践
四、其他技术
上面的是和软件测试理论相关的知识,但是真正的想做好测试这些还是不够,还有一些必须要掌握的知识,下面一一列举一下。
1、数据的技术
目标:掌握SQL语句,重点在增删改查上。可以参考:测试人员的SQL语言 系列
2、编程语言
这里推荐的是Java,毕竟现在Java用的比较多。而且学会一门语言,在学习其他语言也是很容易的。
目标:掌握程序设计的逻辑和面向对象的思想。掌握一门语言。
目前这方面的视频非常多,大家可以找来自己看看。
3、UML
UML还是必须要会的,至少应该能看懂。毕竟大部分需求都是用它画的啊。
4、操作系统
这里说的服务器的系统,以Linux为例。
目标:能够搭建常见的服务,解决相关故障。
推荐大家看《鸟哥的私房菜这个系列》,除此之外,还有学会Shell编程。
5、Web技术
如果测试Web,对Web还是需要了解的啊。主要是Html+Css+Javas
cript。
以上是小编通过网络搜集整理关于软件测试工程师的进阶路线是?的全部内容了,希望可以帮助大家。更多相关内容请关注xuefen.net网站