① 怎样做好软件测试
首先我们需要了解软件的测试要求,同时学会如何更好的学习。更为详细:
1.需要技术知识和深奥的分析能力创建极其复杂的测试。每个软件都有不同的特性。我们需要依靠专业的技术知识和深奥的分析能力去解决复杂的软件运算问题。并做好测试。
简而言之。做好软件测试并不是那么容易,需要有专业的技术,也需要足够强的分析能力,还要有强学习能力去解决问题。同时还要懂得如何打破常规。才能更好的做好软件测试。
② 软件测试人员到底该如何提高自己的能力
在软件测试中再次迷茫! 最近随着项目接近尾声,一个个CREW都陆续exit了,我们的工作量也越来越小了。以前总是抱怨工作量太大,没有时间学自己的东西,没有时间去提高自己。可如今,时间有了却不能静下心来认真地学,更痛苦的是面对如此多的测试方面的资料,却不知该从哪儿开始。再次陷入了迷茫之中。以前就听说,测试会使人懒散,没想到如今自己也变为了懒散之人。从内心里说,我很喜欢写代码,尽管写的代码质量不高,可我就是喜欢,似乎只有写代码才能让我完全集中精神,甚至可以让我忘记时间。我不知道这是否说明我真的就适合做开发而不是测试。但是考虑到做开发需要掌握很多很深层次的知识,而我掌握的都是一些很肤浅的东西,而且遇到难题解决问题的能力还不够强,所以感觉不适合干开发。最初是打算干几年开发,然后转测试,去年换工作时当有SDET的工作给我时,我考虑了一下,最终还是选择了走测试这条路,只是最初还信以为真,以为SDET真的是也会做点开发,可实际上完全就是STE。开始干这行转眼已经半年多了,一直以来都在努力让自己喜欢上测试这行,可这么长时间了,似乎学到的东西及其有限。考虑到自己还是喜欢写代码,而如今又已经步入了测试这个行业,所以想结合二者,打算往白盒测试方面发展。也不知道我的考虑是否合理。看到网站上的测试方面的东西,太泛太杂,面对如此之多的测试资料,可我不知从哪儿开始,真的很迷茫!我到底该怎么办?难道真的就这样在这里得过且过,虚度时光?时间已经不容我这么虚度了!以上是我的一个朋友发给我的一个他的个人感受,我觉得软件测试不是这样的,它应该是这样的。 为了更好地服务于客户和规避操作风险,近年来软件测试工作越来越受到重视。尽管软件测试的作用与传统工业的产品质量检验目标一致,但自上世纪60年代以来,软件测试理论在整个IT中发展相对缓慢。软件测试工具尽管在管理能力、易用性方面有了很大提高,在实际应用中仍旧不能从根本上提高软件测试生产率。 在对软件测试的要求和期望越来越高,而软件测试的方法和工具没有长足发展的情况下,全面提升测试团队和测试人员的能力,就成为了进行有效测试并尽可能提高测试效率的重要基础。 一、关于能力的浅析 测试团队的能力由个人能力和团队能力两个方面构成,两者相辅相成。为了有效提高能力,首先对个人能力和团队能力进行一些浅显的分析。 1.个人能力 (1)个人能力的概念 中国大网络全书《心理学分册》说,能力是“作为掌握和运用知识技能的条件并决定活动效率的一种个性心理特征”。通俗地说,我们可以认为个人能力是达到优异绩效所需的知识、技能和素质的组合,这里的素质包含了大网络全书所说的个性心理特征,是比较难以量化衡量的。 (2)个人能力培养现状浅析 ●对知识的培训 软件测试工作来说,所需专业知识可分为基础工作知识和专门工作知识两类。基础工作知识包括软件测试的基本技术和方法、软件测试的文档规范等在专业内通用的知识,一般可使用专门教材进行培训。这些培训可以由内部专家完成,也可以由外部专家完成。相对来说,学习的成果也比较容易客观衡量。 专门工作知识是在更小的范围、特定的时间内适用的知识。很多知识往往是处于经验的积累阶段,且具有时效性。例如对于开发中的应用系统的认识和了解,在目前业界文档编制、评审和版本管理的状况下,一般只能通过“师父带进门,修行在个人”的方法进行培训。在这样的情况下,如果测试人员有比较深厚的IT和业务经验,将缩短专门工作知识培训的周期,提高培训的效率。如果测试人员是新学生,则培训的难度较大。 ●对技能的培训 技能在很多场合也被称为“动手能力”,对于软件测试来说,技能的培训也很复杂。对于原来具有业务背景和软件开发、维护背景的人员来说,在软件测试工作中,肯定会优先使用已经掌握的技能,这样能够使得测试工作比较快地上手。了解业务、了解技术实际上是对被测对象不同角度的了解,是软件测试技能的重要组成部分,只有结合了专业的软件测试技能,才能够实现全面、协调、可持续的软件测试效果。仅仅从技术和业务角度进行测试,则往往在测试的彻底性、测试的效率和回归测试等等方面难以达到银行业软件测试发展的要求。 根据目前我国IT人员和金融财会人员学历教育情况,本科生的技能与银行业软件测试的实际需要相比显薄弱。研究生在学历教育期间会有不同程度的培训,但是由于我国银行IT系统及其使用状况的复杂与庞大,学生较少有机会在类似的环境中接受相应技能的培训。 以往对技能的培训,往往与专业工作知识培训采取相同的做法。很多情况下,专业工作知识与技能的培训是交织在一起的。实际上,很多人是通过自己的领悟了解到了工作的方法,但也形成了对于技能只能意会、不能言传的状况。 ●对素质的培训 素质可以通过多个方面展现,例如演绎思维、归纳思维、进取精神、人才培养意识和能力、灵活性、主动性、人际理解能力、人际影响能力、合作能力等。归根到底,就是一个人的世界观、价值观和处事哲学、基本习惯在各个方面的展现。实际上,素质对于高质量地完成软件测试工作,往往比知识和技能占据了更重要的位置。
③ 如何提高软件测试质量
作为评价产品性能的重要手段,性能测试在软件测试工作中占的比重一直很大,要最终提供一份准确,权威的测试报告,测试人员的努力工作自然不可或缺,但更重要的是测试人员清晰的工作思路,简洁的测试流程和良好的测
试方法。
目前性能测试存在的问题
总结以往进行的性能测试,虽然测试人员自始至终对测试工作都做到了认真负责,但测试报告出炉后,大家总觉得美中不足,对测试结果都心存疑虑,尤其在那些时间跨度较长、针对不同的测试对象的性能对比测试中,或多或少
都存在以下几个方面的问题:
1. 测试准备不充分,测试目标不明确,测试计划不详细;
2. 缺乏测试以及针对测试对象的技术储备;
3. 测试环境的稳定性及前后一致性不足;
4. 测试数据精确性和代表性不足;
5. 测试描述不精练;
下面,我们就剖析以上问题的同时,探讨一下如何解决这些问题。
性能测试准备
这是一个经常被测试人员忽略的环节,在接到测压任务后,基于种种其它因素的考虑,测试人员往往急于进度,立即投入到具体的测试工作去了,测试、记录、分析,忙的不亦乐乎,工作进行了一半才发现,或是硬件配置不符合要求,或是网络环境不理想,甚至软件版本不对,一时弄得骑虎难下,这都是没有做好测试准备惹的祸。那么我们应该如何做好性能测试的准备工作呢?
做软件项目有需求调查、需要分析,我们做测试也一样。在拿到测试任务后,我们首要的任务就是分析测试任务,在开始测试前,我们至少要弄清以下几个问题:
a) 要测试什么或测试的对象是谁?
b) 要测试什么问题或我们想要弄清楚或是论证的问题?
c) 哪些因素会影响测试结果?
d) 需要怎样的测试环境?
e) 应该怎样测试?
只有在认真调查测试需求和仔细分析测试任务后,才有可能弄清以上一系例的问题,只有对测试任务非常清楚,测试目标极其明确的前提下,我们才可能制定出切实可行的测试计划
④ 浅析如何提升软件测试质量
摘要:随着软件测试受关注程度越来越高,如何采用技术手段有效提高软件测试质量就成了软件测试领域的一个重要课题。本文从软件测试的基本概念开始,对如何以软件测试性设计为中心、合理运用软件测试技术来提升软件测试质量提出了自己的看法。 关键词:软件测试;测试设计;测试质量 软件产品的质量取决于软件开发过程,软件测试作为软件生存期中的一个重要阶段,受重视程度越来越高。软件测试是保证软件质量和可靠性的关键步骤,也是用来验证软件是否能够完成所期望功能的唯一有效的方法。测试已不仅仅局限于软件开发中的一个阶段,它已开始贯穿整个软件开发过程,进行测试的时间越早,整个软件开发成本下降就越多。大量统计表明,软件测试的工作量往往占到软件开发总量的40%以上,在极端的情况下,甚至可能高达软件工程其它步骤成本总和的三至五倍,其目的是尽可能的提高软件产品的质量和可靠性。 1、软件测试相关概念 (1)软件测试:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用这些测试用例的运行结果来发现程序错误的过程。 (2)软件测试用例:测试用例实际上是对软件运行过程中所有可能存在的目标、运动、行动、环境和结果的描述。测试用例是测试组织的最小单位,指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并最终形成文档。 软件测试的核心是设计和执行测试用例。而测试用例的选择问题可以看作是从庞大的输入状态组合中,搜寻哪些可以发现错误的状态组合。因此需要用抽象的手段来尽量使测试更加有效。 (3)测试用例库:完整的单元测试很少只执行一个测试用例,开发人员通常都需要编写多个测试用例才能对某一软件功能进行比较完整的测试,这些相关的测试用例称为一个测试用例集。将大量的测试用例收集到测试用例库中,合理的分类后供测试人员选择使用,能够极大地提高软件问题的发现率。 2、提高测试质量的方法 2.1 采用测试性设计技术 软件测试是目前用来验证软件是否能够完成所期望的功能的唯一有效的方法。但是在测试的实施过程中,由于种种原因导致测试的难度相当大,甚至出现了无法测试的情形。为了提高软件的可测试性,我们在软件设计时应当遵循测试性设计原则,通过改变设计或代码、为软件增加专门测试结构等方法来提高软件的可测试性。 (1)测试驱动设计。这种设计就是直接把软件需求变成测试代码。在确定软件测试性能要求的基础上优先编写测试代码。先写验收测试,再写单元测试,并在开发过程中不断修正。 (2)每个操作对应一个方法,使方法小型化。使用小型化方法说明和重载带缺省方法参数的方法,使得测试中调用这些方法变的很容易。 (3)显示与控制分离。把代码移到GUI视图的外面,各种GUI动作就能成了模型上的简单方法调用。这样,在修改程序功能不会影响视图,同时通过方法调用测试功能也比间接地测试功能更容易。 (4)对于可能要作为参数的类,做一个接口。用接口说明外部程序组件或在需要时改变接口形成一个空类作为参数传入。 2.2 选择合适的测试管理模型 模型是系统功能的形式化或半角式化的表示,支持输入状态组合的系统枚举。基于模型的测试主要考虑系统的功能,可以认为是功能测试的一种。测试模型体现了被测试系统的最本质的功能关系。而且要比系统本身更易于开发和分析。一个可测试的模型要能提供足够的信息用来产生测试用例。所以可测试的模型必须满足以下要求: (1)必须是某种测试实现的完全准确的反映,模型必须表示要检查的所有特征; (2)是对细节的抽象; (3)可以表示所有事件和所有的动作;⑷可以表示系统的各种状态,以便由可知的方法来确定已达到或没有达到什么状态。
⑤ 作为一名软件测试工程师需要提升哪些技能
可以再从以下几个方面做突破(这里说的是web测试):
1、数据库方面
2、网络知识:协议,安全方面
3、浏览器内核
4、系统知识,linux,unix
5、代码编写能力,主要是为测试工具的使用,脚本的维护,代码的分析,BUG的定位都有很好的帮助。
⑥ 软件测试人员如何提高自己
不断学习新的知识和新的技术。
这是软件测试人员需要掌握的知识和技术金字塔,不断去提升自身技能储备,才能时刻保持自身核心竞争力!
⑦ 如何提高软件测试水平
首当其冲要解决软件测试队伍的问题。某着名国际软件企业的软件测试人员与软件开发人员的比率达到了3:5左右,并且在实践过程已经证明了这种人员结构的合理性。但国内公司显然一时很难达到,但更重要的是重视程度,在这个基础上壮大软件测试队伍,提高测试人员的素质。
其次是要学习借鉴国外完善的测试机制,包括丰富的软件测试经验,强大的测试工具,优秀的测试管理水平。真正解决测试手段落后、测试方法单一和测试工具欠缺的问题,在企业内部形成一个严密有效的纠错系统,使国内的测试工作流程、 技术水平接近国外先进水平,这样才能提高国内软件开发与测试的整体管理水平,增加软件产品的竞争力。
此外,要重视第三方的测试力量。第三方的专业测试企业是靠技术与服务来赢得客户信任的,也因此更加注重测试方法与质量。对于软件企业来说,从无到有地去建立测试部门,并完善测试体系,需要较大投入,将研发出来的软件产品交给实力强劲的第三方专业测试公司,在提高软件产品的质量问题同时,还节约了产品测试成本。
⑧ 从事软件测试工作如何提升技术深度
我在TestBird从事自动化测试相关工作多年,可以负责任的告诉你,测试是一个技术性很强的工作。与开发工程师相比,测试工程师需要掌握的技术范畴要广阔得多,只是在技术深度方面有所不同。
一般来讲,测试工程师要掌握系统使用和系统管理方面的技术,包括以下几方面:
1)各种操作系统安装、配置和系统管理;
2)各种数据库管理系统的安装、配置和系统管理、数据库的使用(SQL);
3)各种中间件的安装、配置和管理;
4)计算机网络的配置和系统管理;
5)上述系统的综合管理和应用,其中最高级别的要算性能测试的性能调优工作,这一般是高级性能测试专家才具备的能力,一般测试工程师和开发工程师都难以企及。
所以资深的高级测试不比开发差,往往比一般开发能力更强。
除了以上一些常用要掌握的,测试工程师还需掌握这些专业的工具和技术。不仅要会使用,而且还要会脚本开发,能够独立地完成功能自动化测试或性能测试工作。
中高级测试工程师同样需要熟悉一两种编程语言和测试脚本开发。
无论开发还是测试工程师,我们都不可能精通每一项技术,但常用的我们要熟悉,至少能精通一两种。在实际测试工作中多培养解决技术问题的能力,遇到什么问题时再加强相关知识的学习,也就是什么不懂就拿起来学。多去开展一些技术攻关活动,这样做的事多了,技术能力自然就会大大提高,这也是过技术关的关键所在。
⑨ 关于如何提高自己的软件测试技能
怒答,开发转测试已5年。
已经5月底了,不知题主是否已如愿转到测试。
如果未转,劝题主再慎重考虑。
开发转测试不是问题,很多测试都是开发转过来的。事实上,我始终认为测试要做得好一定要懂开发才可以。
问题在于但题主转测试的原因竟然是开发“学得多但不深”,这恕我不能认同。就本人经验看,测试相对开发才是要求广度多于深度的。就行业现状讲,大部分测试职位是黑盒测试,绝大部分公司都是一个测试对应多个开发。一般来讲,测试对模块的了解远不如负责该模块的开发,而开发对其他模块的了解又远不如测试。
要解决“学得多但不深”的问题,窃以为正确的做法应该是自己往深里学。或许题主对Android开发已经很精通了,但对Android系统本身又有多少了解哪?能打造出自己的rom吗?能进一步提升Android系统的性能和稳定性吗?
如果题主已转,建议不要把开发能力丢下,尽量去做性能测试、自动化测试这一类工作。同时心态要保持好,国内绝大部分公司测试是要比开发弱势的,被开发拖进度陪开发加班用几个小时测完版本也不是多新鲜的事。
至于导师态度恶劣,只要不是人身攻击就不是什么事。漫漫职场路,怎能一路都是好旅伴?
转自知乎http://www.hu.com/question/23402282
⑩ 如何提高软件测试效率有技巧
先说如何衡量测试人员的效率,我还是倾向于用测试数据说话,虽然我上一次写过一篇关于测试人员考核的文章(如何有效的对测试人员进行业绩考核?),我提倡全部用数据说话,被n多网友批判,甚至卖烧烤的鱼也觉得我的考核办法太数据化了。即便如此,我还是坚持认为对于测试人员的效率还是用数据说话,当然也有其他的主观指标。
衡量一个测试人员的效率一般从如下几个方面:
第一,编写文档的速度,主要用在测试前期准备中,编写测试计划或者测试用例的速度。这个只能用页数/小时衡量了。
第二,执行用例的速度*用例执行准确率。在测试执行期间,效率体现在执行速度上,但是还要考虑一个用例执行准确率,有的公司有这项指标,就是在执行过的用例中有一个抽查,看认真执行的准确率。
第三,平均每天提交bug的数量和质量,这个指标应该是加权的,譬如(a级bug权值*数量+b级bug权值*数量+……)/总天数。
第四,被测软件的总体质量,这个意思很清楚,如果测试时间很短,但是软件发布之后客户反馈一堆bug,也不能说测试效率高。所以,软件发布之后的质量也是一个考评因素。
第五,bug发现的周期,如果测试前期发现bug很少,而大批量的bug留到项目后期才发现,说明前期的效率是有问题的。
那么如何提升测试效率呢?我按照个人的实践给出一些建议:
第一,最重要的是测试计划中任务要细化,并且每一项子任务都要有check。一个不具备执行性的计划往往是项目delay的最大原因。
第二,合理配置测试资源。在什么阶段作什么最好,哪些事情提到前面作比较好,哪些事情放到后面比较好,某某任务的前置任务是什么,都要搞清楚。规划好的计划,不至于出现任务a等任务b的窝工现象。
第三,合理使用工具。注意我说的不是自动化测试工具,而是在测试过程中合理使用可以提高效率的小工具,当然在回归测试中可以使用自动化测试工具。总之,我们的原则是机器自己能做的就让机器代劳。
第四,引入自动构建,即自动编译。个人使用心得,很不错,节省不少时间。
第五,找一款比较好的bug管理工具以及用例管理工具,古人说,公欲善其事,必先利其器,就是这个道理。
第六,提高送测质量,以免bug推来推去,非常影响效率。
其他就不再赘述,希望对大家有点帮助。