什么是软件测试?
软件测试定义是:为了发现程序中的错误而执行程序的过程它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
软件测试的目标:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。
软件测试的内容:软件测试主要工作内容是验证(verification)和确认( validation ),下面分别给出其概念:验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。
(Do the right thing) 1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;2.程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。
即保证软件以正确的方式来做了这个事件(Do it right)1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
从不同的角度出发,软件测试可以划分为不同的分类:从是否关心软件内部结构和具体实现的角度划分A.白盒测试B.黑盒测试C.灰盒测试从是否执行程序的角度A.静态测试B.动态测试。
从软件开发的过程按阶段划分有A.单元测试B.集成测试C.确认测试D.验收测试E.系统测试
为什么要进行软件测试?
软件测试是保证软件质量和软件用户避免遭受损失的最重要手段。
低质量软件在运行过程中往往导致工作延误,甚至造成生命财产损失。
现代软件开发工程将整个软件开发过程明确划分为几个阶段,从而将复杂问题按阶段加以解决。
这样,在软件整体开发过程中,可以对每个阶段提出若干明确的监控点,作为各阶段目标实现的检验标准,以提高开发过程的可见度并保证开发过程的正确性。
软件质量不仅体现在开发程序的正确性,而且与开始编码前的系统需求分析和软件设计密切相关。
许多软件使用中出现的错误未必是编程人员在编码阶段造成的,反而是在程序设计甚至是在需求分析阶段就埋下了祸因。
因此,为保证软件质量,专案管理必须着眼于整个软件开发流程,特别是开发阶段的系统分析环节。
经济的全球化促进了软件产业的国际化,软件国际化生产和全球 服务成为更多国际软件公司的发展策略。
软件产品为了获得更大的国际市场份额,不仅要进行软件国际化设计与开发,还要进行严密的测试。
请问想从事软件测试,软件测试学习哪些内容??
接着,要学习软件测试的话:首先你要明白什么是软件测试以及软件测试的相关理念,建议下载一点或者软件测试基础看看;然后就要理解一些实际工作中的软件测试岗位的相关流程,也是一些技术 针对被测软件的测试计划> 针对被测对象的测试用例 > 利用正确的功能测试方法进行软件测试活动。
上面是一个软件测试工作者最先需要掌握的。
随后,当你工作1-2年后,能胜任一切基本的工作后,想发展得更好,就要深入的开展软测工作了,这个时候你就要深入的学习一些自动化测试工具的使用,一般是性能测试工具(loadrunner),功能测试工具(QTP) 和 测试管理工具(TD). 同时要学习数据库和软件的源代码相关知识,以备以后可以有能力做数据库测试,软件源代码的白盒测试等等,这些是工作3-4年后可以精通的。
软件测试分为哪几个阶段,每个阶段都是干什么的??
按照开发阶段划分,软件测试可分为单元测试、集成测试,系统测试和验收测试。
单元测试:针对每个单元的测试, 以确保每个模块能正常工作为目标。
集成测试:对已测试过的模块进行组装,进行集成测试。
目的在于检验与软件设计相关的程序结构问题。
确认(有效性)测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。
有的划分方法中,也将确认测试合并入系统测试中。
系统测试:检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。
验收(用户)测试:检验软件产品质量的最后一道工序。
主要突出用户的作用,同时软件开发人员也应有一定程度的参与。
验收测试可以分成Alpha测试和Beta测试。
Alpha测试是由用户在开发环境下完成的测试,Beta测试是由用户在用户环境下完成的测试。
【软件测试工具】常用的软件测试工具有哪些?
常用的测试工具有: 性能测试:Rational系列(除了Rational Rose,那是做UML建模的) 单元测试:CUnit(C/C++/C#)、JUnit(JAVA) 功能测试:WinRunner 压力测试:LoadRunner 推荐你一个测试的网站: 你去那看看,应该能找到你所需要的知识! 一楼的,你是真不懂还是装不懂,人家说明了是软件测试,你弄个什么鸟windows优化大师算咋回事?
软件测试这个行业?
在许多IT企业中,软件测试并非只担当“挑错”的角色,其重要性不亚于软件的开发环节。
据资料显示,在国外大多数软件公司,1个软件开发工程师便需要辅有1个软件测试工程师。
前微软亚洲研究院博士、软件测试专家陈宏刚表示,在很多大型的软件开发项目中,软件测试绝对不是开发活动完成后的“收尾”工作,甚至会占据整个项目周期一半以上的时间。
以IE4.0为例,代码开发时间为6个月,而稳定程序花去了8个月的时间。
从投入的资金和人力物力来看,测试、使产品稳定和修改花去的时间占到整个项目时长的80%。
而微软开发Windows2000操作系统的过程更历时3年,投入50亿美元,使用了250名项目经理、1700名软件开发工程师、3200名软件测试工程师。
作为软件质量控制中的重要一环,软件测试工程师基本处于“双高”地位,即地位高、待遇高。
同时,软件测试的人才需求缺口超过30万人。
据中国软件行业协会公布的调查数据显示,一些高级测试工程师年薪普遍超过10万元。
据悉,接受过nj-test软件测试就业培训的学员一般毕业后便可以拿到2500元至5000元的薪资待遇。
而从近期的企业人才需求和薪金水平来看,软件测试工程师的年工资还有逐年上升的明显趋势。
软件测试主要能包括哪些内容?
基于不同的立场,存在着两种完全不同的测试目的。
从用户的角度出发,普遍希望通过软件测试暴露出软件中陷藏的错误和缺陷,以考虑是否可以接受该产品。
而从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立用户对软件质量的信心。
因为在程序中往往存在着许多预料不到的问题,可能会被疏漏,许多隐藏的错误只有在特定的环境下才可能暴露出来。
如果不把着眼点放在尽可能查找错误这样一个基础上,这些隐藏的错误和缺陷就查不出来,会遗留到运行阶段中去。
如果站在用户的角度替他们设想,就应当把测试活动的目标对准揭露程序中存在的错误。
在选取测试用例时,考虑那些易于发现程序错误的数据。
下面这些规则也可以看作是测试的目的或定义: 是为了发现程序中的错误而执行程序的过程; 2. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; 3. 成功的测试是发现了至今为止尚未发现的错误的测试。
从上述规则可以看出,测试的正确定义是“为了发现程序中的错误而执行程序的过程”。
这和某些人通常想象的“测试是为了表明程序是正确的”,“成功的测试是没有发现错误的测试”等等是完全相反的。
正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计。
如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。
由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。
因此,在综合测试阶段通常由其他人员组成测试小组来完成测试工作。
此外,应该认识到测试决不能证明程序是正确的。
即使经过了最严格的测试之后,仍然可能还有没被发现的错误潜藏在程序中。
测试只能查找出程序中的错误,不能证明程序中没有错误。
软件测试做哪一方面的测试较好,要求是什么?大神们帮帮忙
楼上的答案不知道是从哪里copy过来的,文不对题,实在是误人子弟。
楼主想要学习软件测试的话,个人建议首先应该从了解软件测试相关的一些基础概念、软件测试的流程、常用测试用例设计方法、常用测试工具开始,了解了这些基本概念、流程和方法后,去应聘一些初级软件测试的岗位应该没有问题。
然后,再结合具体的软件测试项目积累更多的实践项目经验,此时你应该就可以对基本的软件测试驾轻就熟了。
进一步的发展应该是软件测试自动化方面,包括白、黑盒自动化单元、系统测试,性能测试等,最后你可能会了解到整个质量保证方面的内容,从过程、制度方面去预防和控制整个软件质量,此时你所站的角度就会更高了,你可以选择SQA,项目管理方面的职位来发展。
软件测试初级阶段的概念和流程、方法方面的学习可以主要采取书本学习的方式,主要对概念、流程和方法要有所记忆和认识,面试时对基本的软件测试问题要能够解答。
我可以推荐几本书,比如《软件测试的艺术(第二版)》、《有效软件测试》等等,这些网上都可以搜到电子版的,都对软件测试有深入浅出的介绍,学起来很方便。
至于上海的比较好的公司,我想我帮不到你,因为我没在上海。
但关于选择公司的话,你最好选择规模较大,确实有软件测试部门,较为重视软件测试的公司,进去后才能够有比较好的积累和发展。
软件测试是一门实践性很强的学科,一定要先了解好软件测试的基本知识(流程、方法和工具),并结合具体的测试项目,你的测试技术才会越来越高。
祝楼主能够学好软件测试,呵呵。
没有接触过软件测试的,上手难吗,要怎么自学软件测试
软件测试与编程开发相比难度上自然是低一点,但自学的还是有一定困难,那么成为一名合格的软件测试工程师需要具备以下知识第一步:具备软件测试常识1)什么是软件测试2)软件测试的分类3)软件测试常用的一些用例设计方法4)如何做需求分析5)如何写软件测试用例6)什么是bug&bug的管理工具7)软件测试计划&软件测试报告第二步:mysql 特效,1)数据库的定义(理解概念)2)数据库的增删改操作3)数据库的查询&关联查询(这个在笔试的时候经常会做题!没有这个常识,你看数据库题目就像是看天书!)第三步:linux特效,特效一加完了,这个时候再给自己加点散发光芒的特效。
1)安装VM虚拟机2)linux的一些常用操作命令linux部分不会笔试,但是一般面试官会问:你知道linux命令么?能够说出一两个么?当然,你以为学完这两个就算完了么?远远不够。
人总是向前看的啦,那你需要继续丰满自己的羽毛,让自己飞的给高,起步更高!第五步:安卓IOS大法好!那么上面说的都是WEB层面的,你会常识会搭建环境,那么其实说起来,现在APP测试工程师是需求量非常大的!所以这个时候,你就需要提升自己APP方面的测试常识了!1)什么是APP测试2)APP测试的重点和方式3)弄懂APP测试的兼容性哇咔咔,这下,你可是有身份的人了,你有APP测试常识,那么一问你,你而已不会懵逼了。