软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
Grenford J.Myers曾对软件测试的目的提出过以下观点: (1)测试是为了发现程序中的错误而执行程序的过程; (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; (3)成功的测试是发现了至今为止尚未发现的错误的测试。
然而,这种观点指出测试是以查找错误为中心,而不是为了演示软件的正确功能.但是只从字面意思理解,可能会产生误导,认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的测试,实际上并非如此!
(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者 发现当前软件开发过程中的缺陷,以便及时改进;
(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;
(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
以上的都是官话!其实说白了,软件测试就是在开发人员做出软件投放市场前,尽可能早的找出软件当中所存在的BUG!因为任何软件在理论上来说都是存在问题的,都不是完美的!尽早的找出漏洞,公司的损失也就越低!这也就是软件测试人员越来越受重视的原因!
其实软件测试是一种相当乏味枯燥的工作,一般面公司都比较偏向稍微内向的人,另外测试人员还要具备相当的口才,方便与开发人员还有客户交流!
那前期的基础是什么 是web测试还是说都有? 哪个多?
软件测试主要做什么工作?
软件测试,在专业上区分,也是有所区分的,分黑盒和白盒测试两种,白盒测试一般在一些大的软件工程项目里面使用得到,要求的技术层次相对较高,基本上是半个以上研发人员的技术水平要求。(具体两者区分可以自行百度)这里具体说说软件测试中,两种测试工种的工作内容。
白盒测试,往往要直接接触程序的源代码,所以白盒测试人员任职的一个很重要的条件就是读懂对应开发语言,最好是半个以上的开发人员。
黑盒测试,则没有要能读懂程序源代码要求(当然有软件开发这方面知识的更佳),黑盒测试人员的要求往往更侧重测试人员对软件测试理论和对应行业了解。
现在很多的测试人员对于白盒测试这个工作近乎有一种膜拜的心态,个人觉得没有必要。做你喜欢做的,做你最擅长做的,坚持你所做的,我想最后被人膜拜的人就是你。
两者在工作的内容上存在相同之处也存在不同之处。
相同之处在于:都要进行测试用例设计,也都要执行测试用例,报告缺陷。
不同之处在于:白盒测试人员是在能看到程序内部实现、及程序需求的情况下进行的测试用例设计,而黑盒测试人员只能通过程序的需求文档进行测试用例设计;往往黑盒测试用例的量相对白盒测试而言要多一些。
软件测试是干什么的?
软件测试,在专业上区分,也是有所区分的,分黑盒和白盒测试两种,白盒测试一般在一些大的软件工程项目里面使用得到,要求的技术层次相对较高,基本上是半个以上研发人员的技术水平要求。(具体两者区分可以自行百度)这里具体说说软件测试中,两种测试工种的工作内容。
白盒测试,往往要直接接触程序的源代码,所以白盒测试人员任职的一个很重要的条件就是读懂对应开发语言,最好是半个以上的开发人员。
黑盒测试,则没有要能读懂程序源代码要求(当然有软件开发这方面知识的更佳),黑盒测试人员的要求往往更侧重测试人员对软件测试理论和对应行业了解。
现在很多的测试人员对于白盒测试这个工作近乎有一种膜拜的心态,个人觉得没有必要。做你喜欢做的,做你最擅长做的,坚持你所做的,我想最后被人膜拜的人就是你。
两者在工作的内容上存在相同之处也存在不同之处。
相同之处在于:都要进行测试用例设计,也都要执行测试用例,报告缺陷。
不同之处在于:白盒测试人员是在能看到程序内部实现、及程序需求的情况下进行的测试用例设计,而黑盒测试人员只能通过程序的需求文档进行测试用例设计;往往黑盒测试用例的量相对白盒测试而言要多一些。
软件测试具体是做什么的
1 什么是软件测试
举过一个很形象的例子,就像一些工厂的质检员。他们负责产品是否合格或者找出产品的缺陷;那我们就是软件产品的质检员,负责检查产品是否符合客户要求和功能缺陷。
2 软件测试工程师的职责是什么
我们的终极使命就是:找出bug(缺陷),如果一些bug没有被找到,导致产品上线推向市场的时候,引发一系列问题,你的饭碗也就保不住了。简单来说软件测试工程师的职责也就是软件测试的目的,分为以下几点:
1)检查软件产品是否符合用户的需求。
如果用户提出的各种功能和需求,你们产品没有满足的话,也就根本提不上交付产品了,因为根本达不到交付程度,所以我们的职能非常必要。
2)检查程序的业务逻辑和代码逻辑。
即使在同一个项目组,开过同样的需求会议,每个人对需求的理解也许是存在一点点偏差的。所以我们适当的时候也要去检查程序猿哥哥写的代码是否有业务逻辑错误和代码逻辑错误,当然小白目前是没法达到检查程序的,我们是通过手工测试去检查。
3)提高产品的易用性。
这点也很重要,如果一个软件产品不好用,用户的学习成本太高,那么产品的接受满意度就会下降,更别说产品的市场占有率了,所以你是代表广大用户来测试这个产品,易用性也非常重要。
4)一些其他的错误。
凡是导致你的软件产品不能正常使用的,功能被阻塞的,我们都要提交bug,让程序员哥哥去进行一下修改和完善,不能视而不见哟!
软件测试分为哪几个阶段,每个阶段都是干什么的??
按照开发阶段划分,软件测试可分为单元测试、集成测试,系统测试和验收测试。
单元测试:针对每个单元的测试, 以确保每个模块能正常工作为目标。
集成测试:对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题。
确认(有效性)测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。有的划分方法中,也将确认测试合并入系统测试中。
系统测试:检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。
验收(用户)测试:检验软件产品质量的最后一道工序。主要突出用户的作用,同时软件开发人员也应有一定程度的参与。
验收测试可以分成Alpha测试和Beta测试。
Alpha测试是由用户在开发环境下完成的测试,Beta测试是由用户在用户环境下完成的测试。
软件测试员主要工作是做什么?
熟悉整个软件的需求和功能实现,熟悉相关数据库表结构,一般都会有测试文档,根据测试文档来测试软件系统的实现是否满足需求。
学习软件测试要求个人必须主动积极,沟通能力强,不懂就问,问开发人员,问客户需求,问实施等。
做软件测试都要会哪些?
、 软件测试基础知识:
测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、单元测试、功能测试、集成测试、系统测试等等、CMMI
/ISO9001 2、 各种测试工具的使用:
我们在测试的工作中为了能够提高工作效率进程会用到很多工具、QTP、LR、QC、TD、Bugfree、VSS、SVN等等工具、虽然说工具不是万能的但是工具能为我们提高工作效率所以不能吧工具当神一样看待、但是必须得会熟练的使用
3、 操作系统相关知识:
Windows、linux、uinx这些都必须会使用、而且不仅仅是简单的操作、一般的服务管理、注册表编辑、命令行操作都需要会、可以想象下一个连apache服务都不会安装配置的人、谁能想象你可以做好基于apache环境的测试工作、什么?不知道怎么查看磁盘压力、IO数据。windows
linux都有提供自带的工具可用于查看这些数据、perfmon、top什么的。 4、 数据库知识:
现在Oracle的DBA待遇比一般的开发人员待遇还高就知道数据库在企业中的重要性了、作为测试人员虽然不需要有DBA的能力、但是基本的数据库操作你必须得会把、不管是Oracle、DB2、MSsql还是mysql最少都应该能熟悉使用其中的一二。
5、 计算机硬件知识:
做过性能测试的朋友都知道在性能测试过程中硬件性能也是一个非常重要的指标、CPU、内存、IO、带宽等等、如果你是做硬件测试的。那么就更不用说了。交换机、路由器、防火墙这些设备都需要有所了解。
6、 网络协议:
如果你还知道TCP和UDP有什么不一样的话请赶快去补充点知识吧、互联网时代、一切都通过网络传输、常用协议必须得了解、曾经面试了一个测试工程师做了2年的测试居然不知道自己测试软件使用什么协议、这样的人是你的话你敢招么?
7、 开发语言即代码编写能力:
虽然不会写代码也能做测试、但是如果你想做到高级测试工程师以上、那么代码编写能力就是必选项、如果不会写代码、那么你不可能成为高级测试。高级测试工程师的一部分工作就是在写测试工具。虽然测试也需要写代码但不需要和开发一样那么精通某一门语言、可是测试却需要了解很多门开发语言(举一个简单的例子:你现在所在的项目从C++语言、2年后你换工作了、新公司的开发语言是java或者是VB什么的)所以在开发语言中测试需要更广的学习。
8、 行业知识:
行业知识之所以写在最后面是因为前面的7条我们都可以通过学习来掌握、但是唯独行业知识却只能通过工作经验来积累、不要说你去看几本书就知道通信行业、医疗行业、或者是航天行业、你认为在书本上面能学到么?
由于行业知识的特殊性所以建议朋友们不要频繁的跳槽、经验的积累是需要时间来沉淀的。 9、 具有一定的美学观:
这个说起来比较拗口一点、简单来说不管是开发活动还是测试活动、最后的目标就是将产品推向市场、而且得到用户的认可。所以如果产品在需求分析阶段就出现了偏离用户航道、那么就算测试
开发做得再好这个项目也是一样会失败。所以各位如果有幸能够参加需求评审的话、请不要吝啬你的言论。 10、请不要忘记时刻学习着:
这点我相信大家应该都能理解所以不用写什么:仅此一点“不学习就会落后”
总结:说了那么多技能或者是说是需要掌握的技术、如果你没有一颗发现缺陷之美的心态、没有一颗以提高质量为前提来投入工作中、那么就算你其他做得再好也不过是万千软件测试从业人员中的一枚。测试活动大部分用于发现缺陷、而发现缺陷之后的工作尤为重要:怎么样从发现缺陷到提高质量。
软件测试主要是做什么工作,是否需要太多的编程?
一般情况下测试不需要太多的编程,入门比较简单,但是想要做精通也不是很容易的。至于工作强度.....主要是看公司老板了。一下是合格测试人员需要具备的知识:
1.操作系统:suse9、suse10、AIX、hp等主流的Linux和unix
2.loadrunner涉及的相关协议,比如http、soap、radius、wap、rtsp、smtp等(那本红宝石的书就认真读吧)
3.各个主流数据库操作、而且是非windows环境下操作,oracle、sqlservice、db2、mysql等等。
4.熟悉掌握一门开发语言,因为当你设计好自动化用例时,很多时候是要你自己实现。开发的没时间帮你写自动化用例代码。
5.测试方案,测试用例,测试报告一个也不能少,每天坚持发测试日报(邮件)。
6.做长时间性能测试时要有心里准备,因为你不能确定是哪天出了问题,搞不好又要花上一个礼拜周期重新部署环境。
7.搭建测试环境,很多时候搞不到真实环境,需要你去搭建测试桩。模拟真实环境。
8.兼职技术支持,承担用户使用出问题的风险
转载请注明出处51数据库 » 软件测试一般是做啥的 软件测试一般是做什么的