如何做好软件测试?

如题所述

开发一个好的软件,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个回答  2019-05-12
我是做软件测试工作的,仁者见仁智者见智,水平有限,就你提出的问题作一个简单的回答吧,一是期望对你的问题有所帮助,二也是对我自己的提高。
1、我对你的第一个问题表示质疑,你认为测试是保证软件质量吗?能保证吗?
测试只能提高软件质量,做不到保证,bug是永远存在的,测试工作可以让这
量减少、降低严重问题的存在;软件过程才可能保证它的质量,不是软件测
试,所以这一点我要明确出来。一个软件的质量好坏不依赖于测试者,测试
再高明,软件设计本身的水平面要品质不高,巧妇也有无米之炊的无奈。
2、测试的原本目标就是发现缺陷,挑毛病,工作性质和开发人员相反,但目标
是一致的,都是为了使软件更完美、更稳定。
3、盖房子的时候,先打地基,地基如果有毛病(如不够深、不平),那以后房
盖起来了住个几年,你会发现楼上的梁会发裂,渗水,然后越来越让人担
忧。这时你要修复怎么办,再怎么补都不放心,因为地基有缺陷啊!这个道
和第三个问题是一模一样的,修复的代价太大太大了!在测试中有一个规
则,问题越早解决代价越小,单元测试发现的问题解决只要1块钱,等到集成
测试再解决,要10块钱,你认为比例有多大?需求分析系统设计是源头,重
中之重,这个比例我认为要在上面我举例中增加80%,就是说它会导致你在编
码阶段多付出8块钱。前期可能不觉得,越到后期将发现非常头痛,这也是我
的经验之谈,没有太多的科学性哦。
4、对于测试员,首先是效率减低;对于项目而言,成本增加了。瞧病就错了
诊,影响大么?将导致后面的百分之八十的事情白做了,百分之二在长远
目标中有后期帮助,同时证明另外百分之八十步入歧途。这就要在测试设计
的时候要仔细全面,但是这种事情多少都避免不了,早一点发现并改变,也
是很重要的,另外多布置一些小结会议,有利到测试的工作方向和目标。
usfo,希望我的回答对你稍有帮助哦。
第2个回答  2019-07-31
软件测试说白找软件足软件测试黑合白盒黑盒、灰盒、白盒黑盒主要指功能测试手测试主自化测试做要测试黑盒测试技术要求相于白盒讲高白盒测试针源代码主技术及发经测试要求高灰盒测试黑盒与白盒组综合测试工作能力及经验要求高般用做系统测试提问范围太希望我答帮助建议先功能测试入手白盒灰盒测试般都要求发经验
第3个回答  2019-12-08
Symbio自动化测试相对于手工测试优点如下:
1、可以模拟人工测试,减少重复机械的测试工作量,大量用于回归测试;
2、可以提高测试精度,例如进行大数据量的正确性校验;
3、进行人工难以执行的测试,例如单元测试、统计测试覆盖率等等;
4、用于模拟多线程的并发;
5、更好地利用资源。将繁琐的任务自动化。
6、测试具有一致性和可重复性。
7、测试的复用性。由于自动测试通常采用脚本技术,领测认为这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。
8、增加软件信任度。