您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
软件测试究竟怎样才能做好?
测试,人员,工程师软件测试究竟怎样才能做好?
发布时间:2016-12-08加入收藏来源:互联网点击:
软件测试究竟怎样才能做好?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
开发一个好的软件,40%以上的时间用在测试上,所以软件测试工程师非常重要,用我们的话来说很吃香。现在从事程序员的人有很多,做测试工程师的人少点,工作压力不太大
测试工程师应该具备的三项基本素质[1] 很多年轻或者刚刚从事测试工作的工程师,经常会问:“测试工程师需要什么技能或者具有什么素质才是合格的?”与开发人员相比,测试人员不但需要一技之长,还需要掌握诸如操作系统、数据库、网络等多方面的知识。
经过这几年的发展,国内IT公司的测试水平有了很大的提高,但是与此同时,很多测试工程师也迎来了个人的发展瓶颈:很多人从测试工程师做到了测试经理的职位,不知道下一步如何发展;或者每天机械地从事着功能测试工作。
根据作者多年的经验,一个有竞争力的测试人员要具有下面三个方面的素质:
计算机专业技能
计算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间或者持久竞争力的测试工程师,则计算机专业技能是必不可少的。计算机专业技能主要包含三个方面:
测试专业技能
现在软件测试已经成为一个很有潜力的专业。要想成为一名优秀的测试工程师,首先应该具有扎实的专业基础,这也是本书的编写目的之一。因此,测试工程师应该努力学习测试专业知识,告别简单的“点击”之类的测试工作,让测试工作以自己的专业知识为依托。
测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。
软件编程技能
“测试人员是否需要编程?”可以说是测试人员最常提出的问题之一。实际上,由于在我国开发人员待遇普遍高于测试人员,因此能写代码的几乎都去做开发了,而很多人则是因为做不了开发或者不能从事其它工作才“被迫”从事测试工作。最终的结果则是很多测试人员只能从事相对简单的功能测试,能力强一点的则可以借助测试工具进行简单的自动化测试(主要录制、修改、回放测试脚本)。
软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能给编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。
此外,对软件测试人员的编程技能要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。因此测试人员要具备一定的算法设计能力。依据作者的经验,测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。
网络、操作系统、数据库、中间件等知识:
与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。
在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。
操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。
数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。因此不但要掌握基本的安装、配置,还要掌握SQL。测试人员至少应该掌握Mysql、MS Sqlserver、Oracle等常见数据库的使用。
作为一名测试人员,尽管不能精通所有的知识,但要想做好测试工作,应该尽可能地去学习更多的与测试工作相关的知识
回答于 2019-09-11 08:43:50
可以是软件开发转入测试,这个时候强的是软件开发方面的知识,但是若的是对业务和需求本身的理解,同时也容易卷入程序员的固有思维而不能从客户的角度来看待问题;也可以是先从测试和业务熟悉做起,后面逐渐需求一些开发方面的知识,包括数据库SQL和脚本语言,但是往往没有真正做过开发又很难理解结构化编程的一些基本规则。这里面都存在一个转换问题,都需要自己在这个转换的环节多去思考,转变思维,多多总结。
其次测试最核心的内容是什么?做软件测试需要时刻的提醒自己来思考这个最重要的问题。软件工程书里面我们学过来,测试最重要的就是找出至今为止别人没有发现的Bug,找出尽可能多的有价值的问题,以最大限度的降低的缺陷泄露和现场故障。这个回答本身没有问题,不过我们还需要做一些更加深测试的思考,特别是做了测试一两年后更需要不断思考,测试的核心和关键点究竟在哪里?在这里我想谈两个比较重要的核心内容,一个就是拿到一个大的系统或复杂的业务功能后,这个时候第一个核心就是根据需求规格说明书进行测试分析,而不是一下切入到了测试用例和测试设计,测试分析的目的是让测试人员真正的理解需求和业务场景本身,测试有个重要的概念是测试场景,而测试场景则来源于需求场景。做测试分析的目的就是根据需求和业务流程梳理清楚我对整个测试流程的总体规划,搞清楚对于复杂的功能如何按一定的方法系统性的开展测试,如何更加有效的设计测试用例,如果加强测试用例和测试数据的复用,测试用例对需求和业务场景的覆盖等诸多问题。如果你还不能去考试测试分析,说明还在测试的一种初级阶段,完全照搬着需求规格说明书的测试用例是无法带来很好的测试效果和效率的。第二个重要内容要谈的是测试用例的设计问题,一条测试用例涉及到编号,名称,对应的需求点和业务规则,前置条件,测试步骤和预期输出和优先级等诸多内容,那带来的一个重要问题就是测试用例本身的核心是什么?其实这里我想指出的则是通过前期的测试需求分析后所规划的测试数据的准备问题,而测试数据准备的方法则来源于我们常说的黑盒测试场景方法,如等价类划分,边界值设定,因果分析等,这些都是为测试数据准备服务的,没有准备的测试数据预期的测试输出往往是一句空话,有了预先准备的测试数据测试的过程才是有计划和有目的的,真正准备了测试数据的人才谈得上在真正系统的使用各种黑盒测试方法。系统的规划和准备测试数据是系统化的进行测试用例的灵魂,你考虑了这点才会发现到,需求里面啰嗦了半天的内容往往仅仅需要1-2条测试用例概括即可,而需求里面只有一句话的业务规则往往则需要准备上十条甚至更多的测试用例来进行测试。如果在测试用例的设计上考虑到了这些问题,基本表示对业务深入理解和对测试方法已经灵活应用了。
上一篇:总感觉老公不是真的爱我,因为他的钱从来不交给我保管,我该怎么办?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |