培训教材1-软件测试基础_第1页
培训教材1-软件测试基础_第2页
培训教材1-软件测试基础_第3页
培训教材1-软件测试基础_第4页
培训教材1-软件测试基础_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试根底知识

.课程内容软件测试背景什么是软件测试软件测试的流程软件测试工具_RationalTest.课程目的了解软件测试工程师的职业要求及特点掌握软件测试的根本概念熟习常用的软件测试类型熟习软件测试的任务流程和阶段划分了解软件自动化测试了解软件测试与软件开发的相互关系.他以前接触过软件测试任务么?他以为软件测试人员是做什么的?小插曲.英特尔奔腾CPU计算机芯片被发现有浮点除法软件缺陷。——1994英特尔的1.13MHZ奔腾III处置器能够导致运转程序被挂起,计算机消费商召回曾经交付用户的PC机。——2000臭名昭著的软件错误案例.爱国者导弹防御系统一个小的系统时钟错误,导致在多哈袭击战中,系统被拖延100多个小时。——1991美国航天局火星极地登陆由于确定何时封锁推进器的程序中某一个数据位被以外修正,飞船在试图登陆火星外表失踪——1999臭名昭著的软件错误案例.软件未到达产品设计规范阐明的功能;软件出现了产品设计规范指明不会出现的错误;软件功能超出产品设计规范指明的范围;软件未到达产品设计规范虽未指出但应到达的目的;软件测试人员以为软件难以了解、不易运用、运转速度慢,或者最终用户以为不好。什么是软件缺陷?.为什么会出现软件缺陷?需求变化缺乏交流设计错误文档缺乏缺陷软件复杂开发工具时间压力…….软件缺陷的修复费用.软件测试人员终究做些什么?目的:尽能够早的发现软件缺陷,并确保其得以修复.小插曲大家有情愿做测试任务的么?不情愿的缘由?A、测试任务太枯燥。B、测试任务不需求什么技术,只需技术程度低的人才去做。C、测试任务没有发明性,我喜欢有发明的开发任务。D、做测试任务,开展空间不大,选择比较少。E、测试人员工资比开发人员低F、其它.优秀的软件测试人员应该具备的素质?软件测试员的一个根本素质是:突破沙锅问究竟软件测试员应具备的素质:1.探求精神:软件测试员不会害怕进入陌生环境。2.缺点排除能手:软件测试员擅长发现问题的症结,喜欢猜谜。3.不懈努力:软件测试员总是不停尝试。他们能够会碰到转眼即逝或者难以重建的软件缺陷;他们不会心存侥幸,而是尽一切能够去寻觅。.优秀的软件测试人员应该具备的素质4.发明性:想出富有创意甚至超凡的手段来寻觅软件缺陷。5.追求完美:他们力求完美,但是知道某些无法企及时,不去苛求,而是尽力接近目的。6.判别准确:软件测试员要决议测试内容、测试时间,以及看到的问题能否算作真正的缺陷。7.老练稳重:软件测试员不害怕坏音讯。8.压服力:软件测试员要擅长表达观念,阐明软件缺陷为何必需修复,并经过实践演示力陈诉观念。.怎样成为优秀的软件测试人员?软件测试工程师[广义]一切的软件系统都需求的根底知识包括:根本的编程才干、面向对象方法、操作系统、数据库、计算机网络……[针对性]对详细产品线的业务知识测试根底知识测试工具自动化测试测试的思想方式…………软件工程广度深度专业敬业.软件测试人员的开展阶段和时机初级软件测试工程师软件测试工程师工程软件测试经理测试经理工程经理高级软件测试工程师系统工程师.测试任务太枯燥,没有发明性测试任务枯燥?喜欢看推理侦探小说么?测试的过程其实也和推理破案的过程一样的有趣。当进展了严密的推理终于发现一个大缺陷后,会很有成就感。没有发明性?测试也需求发明,新的测试方法,新的自动化测试工具,发明时机很多。.胜利的剧烈的动机坚决的信心做三件事剧烈的愿望,确定的目的我最想做什么样的人?我一定要做得最好坚信我的选择是正确的我要坚持不懈做他人不去做的事做他人不敢去做的事做他人做不到的事.课程内容软件测试背景什么是软件测试?软件测试的流程测试用例及其设计方法软件测试工具_RationalTest.他对软件测试的了解?小插曲.对软件测试的错误了解假设发布出去的软件有质量问题,那是软件测试人员的错。软件测试技术要求不高,至少比编程容易多了.软件测试是测试人员的事,与开发人员无关。设计-实现-测试,软件测试是开发后期的一个阶段。测试出没有缺点,阐明我们的软件没有缺陷。.什么是软件测试?软件测试的定义软件测试的对象软件测试的目的软件测试分类和比较软件测试的内容.软件测试的定义软件测试〔Softwaretesting〕是软件生存期中的一个重要阶段,是软件质量保证的关键步骤。通俗地讲,软件测试就是在软件投入运转前,对软件需求分析、设计规格阐明和编码进展最终复审的活动。 1983年IEEE提出的软件工程术语中给软件测试下的定义是:“运用人工或自动的手段来运转或测定某个软件系统或系统部件的过程,其目的在于检验它能否满足规定的需求或弄清预期结果与实践结果之间的差别〞。.软件测试的对象软件测试不等于程序测试,软件测试贯穿于软件定义和开发的整个期间。需求分析,概要设计,详细设计,以及程序编码等各个阶段所得到的文档,包括需求规格阐明,概要设计规格阐明,详细设计规格阐明以及源程序,都是软件测试的对象..软件测试的对象12345用户需求用户:我要什么?了解正确性表达正确性需求阐明书需求分析员:我可以提供什么?设计阐明书设计员:我要软件做什么?源程序程序员:我要要让计算机怎样做?运转结果计算机:程序运转得到的结果了解正确性设计正确性表达正确性了解正确性编码正确性运转正确性输入正确性相符合么?.软件测试的目的基于不同的立场,存在着两种完全不同的测试目的。从用户〔测试人员〕的角度出发,普遍希望经过软件测试暴露软件中隐藏的错误和缺陷,以思索能否可接受该产品。从软件开发者的角度出发,那么希望测试成为阐明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的自信心。.软件测试的目的想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。假设我们胜利地实施了测试,我们就可以发现软件中的错误。测试的附带收获是,它可以证明软件的功能和性能与需求阐明相符合。实施测试搜集到的测试结果数据为可靠性分析提供了根据。测试不能阐明软件中不存在错误,它只能阐明软件中存在错误。.软件测试的原那么测试的目的在于发现错误,应尽早地和不断地进展测试充分留意测试中的群集景象阅历阐明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。一切的测试都应可追溯到客户需求穷举测试是不能够的严厉执行测试方案,排除测试的随意性。该当对每一个测试结果做全面检查。妥善保管测试方案,测试用例,出错统计和最终分析报告,为维护提供方便。.软件测试的分类名称说明黑盒测试基于软件需求,而不是基于软件内部设计和程序实现的测试方式。白盒测试基于软件内部设计和程序实现的测试方式。单元测试主要测试软件模块的源代码。一般由开发人员而非独立测试人员来执行,因为测试者需要懂得该单元的设计与程序实现,测试者可能需要编写额外的测试驱动程序。集成测试将一些“构件”集成一起时,测试它们能否正常运行。这里“构件”可以是程序模块、客户机-服务器程序等等。功能测试测试软件的功能是否符合功能性需求,通常采用黑盒测试方式。一般由独立测试人员执行。系统测试测试软件系统是否符合所有需求,包括功能性需求与非功能性需求。一般由独立测试人员执行,通常采用黑盒测试方式。回归测试指错误被修正后或软件功能、环境发生变化后进行的重新测试。回归测试的困难在于不好确定哪些内容应当被重新测试。验收测试由客户或最终用户执行,测试软件系统是否符合需求规格说明书。.软件测试的分类名称说明负载测试测试软件系统的最大负载,超出此负载软件可能会失常。压力测试概念上与负载测试相似,叫法不同。性能测试测试软件在各种状况下的性能,如在正常或最大负载下的状况。易用性测试测试软件是否易用,主观性比较强。一般要根据很多用户的测试反馈信息,才能评价易用性。安装与反安装测试测试软件在“全部、部分、升级”等状况下的安装/反安装过程。恢复测试测试该系统从故障中恢复过来的能力。安全性测试测试该系统防止非法侵入的能力。兼容性测试测试该系统与其它软件硬件兼容的能力。比较测试通过与同类产品比较,考察该系统的优点、缺点。Alpha测试一种先期的用户测试,此时系统刚刚开发完成。Beta测试一种后期的用户测试,此时系统已经通过内部测试,大部分错误已经改正,即将正式发行。.软件测试的分类与比较测试方式白盒测试:关怀软件内部设计和程序实现,主要测试根据是设计文档黑盒测试:不关怀软件内部,只关怀输入输出,主要测试根据是需求文档

.软件测试的分类与比较黑盒测试与白盒测试的比较测试方式特征依据测试人员测试驱动程序黑盒测试只关心软件的外部表现,不关心内部设计与实现。又叫做功能测试或数据驱动测试。软件需求任何人(包括开发人员、独立测试人员和用户)一般无需编写额外的测试驱动程序白盒测试关注软件的内部设计与实现,要跟踪源代码的运行。结构测试或逻辑驱动测试。设计文档由开发人员兼任测试人员的角色需要编写额外的测试驱动程序.软件测试的分类与比较测试阶段单元测试、集成测试、系统测试、验收测试。是“从小到大〞、“由内至外〞、“循序渐进〞的测试过程,表达了“分而治之〞的思想。单元测试的粒度最小,普通由开发小组采用白盒方式来测试,主要测试单元能否符合“设计〞。集成测试界于单元测试和系统测试之间,起到“桥梁作用〞,普通由开发小组采用白盒加黑盒的方式来测试,既要验证“设计〞又要验证“需求〞。系统测试的粒度最大,普通由独立测试小组采用黑盒方式来测试,主要测试系统能否符合“需求规格阐明书〞。验收测试与系统测试非常类似,主要区别是测试人员不同,验收测试由用户执行。.软件测试的内容测试内容接口与途径测试。功能测试、强壮性测试、性能测试、用户界面测试、平安性测试、压力测试、可靠性测试、安装/反安装测试…测试阶段

主要依据

测试人员、测试方式

主要测试内容

单元测试系统设计文档由开发小组执行白盒测试

接口测试、路径测试

集成测试系统设计文档需求文档由开发小组执行白盒测试和黑盒测试

接口测试、路径测试功能测试、性能测试

系统测试需求文档由独立测试小组执行黑盒测试

功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试

验收测试需求文档由用户执行黑盒测试

.回想一下软件测试人员的目的软件测试的对象软件测试的目的软件测试的分类软件测试的内容.回头再看看对软件测试的错误了解假设发布出去的软件有质量问题,那是软件测试人员的错。测试有助于提高软件的质量,但高质量的软件不是测试出来的。软件测试技术要求不高,至少比编程容易多了.好的测试人员不仅要掌握各种测试技术,还要具备丰富的编程阅历和对BUG的敏感.测试的复杂之处,除了测试技术问题之外,还有测试管理问题。.回头再看看对软件测试的错误了解开发人员参与的测试有单元测试和集成测试软件测试是测试人员的事,与开发人员无关。设计-实现-测试,软件测试是开发后期的一个阶段。测试出没有缺点,阐明我们的软件没有缺陷。测试是贯穿与软件工程的整个过程应该尽早开场测试测试只能阐明缺点存在,不能阐明缺点不存在。.课程内容软件测试背景什么是软件测试?软件测试的流程测试用例及其设计方法软件测试工具_RationalTest.LifeCycleTesting测试生命周期UserRequirementsoftwareRequirementDesignProgramUnitDesignCodingUnitTestingIntegrationTestingSystemTestingAcceptanceTestingPrepareplanVerifyPrepareplanVerifyPrepareplanVerify.Plan/AnalysisDesignCodingTest/DeliverTestCaseDesignTestDevelopmentTestPlanningTestExecution/EvaluationSpiralTestingProcess.InformationGatheringTestPlanningTestCaseDesignTestDevelopmentTestEvaluation/ExecutionPrepareforNextSpiralSystem/AcceptanceTestingSummaryReport√√√√√√√√√√√√√√√plandocheckact(Steps)(interimreports)Iterative/SpiralTestingProcess.测试的文档<测试方案>:指明范围、方法、资源,以及相应测试活动的时间进度安排表的文档。<测试方案>:指明为完成软件或软件集成特性的测试而进展的设计测试方法的细节文档。<测试用例>:指明为完成一个测试项的测试输入、预期结果、预期执行条件等要素的文档。<测试规程>:指明执行测试时测试活动序列的文档。<测试报告>:指明执行测试结果的文档。.课程内容软件测试背景什么是软件测试?软件测试的流程测试用例及其设计方法软件测试工具_RationalTest.什么是测试用例所谓的测试用例就是将软件测试的行为活动,做一个科学化的组织归纳。软件测试是有组织性、步骤性和方案性的,而设计软件测试用例的目的,就是为了能将软件测试的行为转换为可管理的方式。软件测试是软件质量管理中最实践的行动,同时也是耗时最多的一项。基于时间要素的思索,软件测试行为必需可以加以量化,才干进一步让管理阶层掌握所需求的测试过程,而测试用例就是将测试行为详细量化的方法之一。.不同阶段的测试用例.测试用例的根本要素目的前提条件输入数据或动作期望的呼应各种环境设置对应的需求.测试用例内容实施一次测试而向被测系统提供的输入数据、操作或各种环境设置。对交互式系统,软件交互执行过程的控制也是一种测试用例。测试用例的设计与生成是根据测试大纲对其中每个测试工程的进一步实例化。比如:对于一个输入项的测试,该当设计一组测试数据,包括合法的、边境的和非法的数据等。.测试用例设计的根本准那么测试用例的代表性:可以代表并覆盖各种合理的和不合理、合法的和非法的、边境的和越界的、以及极限的输入数据、操作和环境设置等;测试结果的可断定性:即测试执行结果的正确性是可断定的,每一个测试用例都应有相应的期望结果;测试结果的可再现性:即对同样的测试用例,系统的执行结果该当是一样的。.黑盒测试用例的设计方法详细的黑盒测试用例设计方法包括等价类划分法、边境值分析法、场景法、错误推测法、因果图法、断定表驱动法、正交实验设计法、功能图法等。这些方法是比较适用的,但采用什么方法,在运用时自然要针对开发工程的特点对方法加以适当的选择。.等价类划分法[等价类划分]是一种典型的黑盒测试方法,用这一方法设计测试用例完全不思索程序的内部构造,只根据对程序的需求和阐明,即需求规格阐明书。由于穷举测试任务量太大,以致于无法实践完成,促使我们在大量的能够数据中选取其中的一部分作为测试用例。.等价类划分法假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运转。假设X、Y取整数,按黑盒方法进展穷举测试:能够采用的测试数据组:232×232=264假设测试一组数据需求1毫秒,一年任务365×24小时,完成一切测试需5亿年。.等价类划分法等价类划分法是把程序的输入域划分成假设干部分,然后从每个部分中选取少数代表性数据当作测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,假设某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误;反之,假设某一类中的一个例子没有发现错误,那么这一类中的其他例子也不会查出错误。.划分等价类和列出等价类表把全部输入数据合理划分为假设干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据获得较好的测试结果。等价类划分有两种不同的情况:[有效等价类]是指对于程序的规格阐明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序能否实现了规格阐明中所规定的功能和性能。[无效等价类]与有效等价类的定义恰巧相反。.建立等价类表在确立了等价类之后,建立等价类表,列出一切划分出的等价类:输入条件有效等价类无效等价类……………….确定测试用例根据已列出的等价类表,按以下步骤确定测试用例:为每个等价类规定一个独一的编号;设计一个新的测试用例,使其尽能够多地覆盖尚未覆盖的有效等价类。反复这一步,最后使得一切有效等价类均被测试用例所覆盖;设计一个新的测试用例,使其只覆盖一个无效等价类。反复这一步使一切无效等价类均被覆盖。.举例根据下面给出的规格阐明,利用等价类划分的方法,给出足够的测试用例。“一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息,阐明这个三角形是不等边的、是等腰的、还是等边的。〞.举例我们可以设三角形的3条边分别为A,B,C。假设它们可以构成三角形的3条边,必需满足:A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B。假设是等腰的,还要判别A=B,或B=C,或A=C。假设是等边的,那么需判别能否A=B,且B=C,且A=C。.举例输入条件有效等价类无效等价类是否三角形的三条边(A>0),(1)(B>0),(2)(C>0),(3)(A+B>C),(4)(B+C>A),(5)(A+C>B),(6)(A≤0),(7)(B≤0),(8)(C≤0),(9)(A+B≤C),(10)(B+C≤A),(11)(A+C≤B),(12)是否等腰三角形(A=B),(13)(B=C),(14)(C=A),(15)(A≠B)and(B≠C)and(C≠A)(16)是否等边三角形(A=B)and(B=C)and(C=A)(17)(A≠B),(18)(B≠C),(19)(C≠A),(20).举例序号【A,B,C】覆盖等价类输出1【3,4,5】(1),(2),(3),(4),(5),(6)一般三角形2【0,1,2】(7)不能构成三角形3【1,0,2】(8)4【1,2,0】(9)5【1,2,3】(10)6【1,3,2】(11)7【3,1,2】(12)8【3,3,4】(1),(2),(3),(4),(5),(6),(13)等腰三角形9【3,4,4】(1),(2),(3),(4),(5),(6),(14)10【3,4,3】(1),(2),(3),(4),(5),(6),(15)11【3,4,5】(1),(2),(3),(4),(5),(6),(16)非等腰三角形12【3,3,3】(1),(2),(3),(4),(5),(6),(17)是等边三角形13【3,4,4】(1),(2),(3),(4),(5),(6),(14),(18)非等边三角形14【3,4,3】(1),(2),(3),(4),(5),(6),(15),(19)15【3,3,4】(1),(2),(3),(4),(5),(6),(13),(20).边境值分析法由测试任务的阅历得知,大量的错误是发生在输入或输出范围的边境上,而不是在输入范围的内部。因此针对各种边境情况设计测试用例,可以查出更多的错误。边境值分析是一种补充等价划分的测试用例设计技术,它不是选择等价类的恣意元素,而是选择等价类边境的测试用例。实际证明为检验边境附近的处置专门设计测试用例,经常获得良好的测试效果。.边境值设计原那么对边境值设计测试用例,应遵照以下几条原那么:假设输入条件规定了值的范围,那么应取刚到达这个范围的边境的值,以及刚刚超越这个范围边境的值作为测试输入数据。假设输入条件规定了值的个数,那么用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试数据。假设程序的规格阐明给出的输入域或输出域是有序集合,那么应选取集合的第一个元素和最后一个元素作为测试用例。分析规格阐明,找出其他能够的边境条件。.其他一些边境条件另一种看起来很明显的软件缺陷来源是当软件要求输入时(比如在文本框中),不是没有输入正确的信息,而是根本没有输入任何内容,单单按了Enter键。这种情况在产品阐明书中经常忽视,程序员也能够经常遗忘,但是在实践运用中却时有发生。正确的软件通常应该将输入内容默以为合法边境内的最小值或者合法区间内某个合理值,否那么前往错误提示信息。.场景法如今的软件几乎都是用事件触发来控制流程的,事件触发时的情景便构成了场景,而同一事件不同的触发顺序和处置结果就构成事件流。这种在软件设计方面的思想也可引入到软件测试中,可以比较生动地描画出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易了解和执行。.场景法提出这种测试思想的是Rational公司,并在RUP2000〔RationalUnifiedProcess)中文版当中有其详尽的解释和运用。用例场景用来描画流经用例的途径,从用例开场到终了遍历这条途径上一切根本流和备选流。.根本流和备选流右图中经过用例的每条途径都用根本流和备选流来表示,直黑线表示根本流,是经过用例的最简单的途径。备选流用不同的彩色表示,一个备选流能够从根本流开场,在某个特定条件下执行,然后重新参与根本流中〔如备选流1和3〕;也能够来源于另一个备选流〔如备选流2〕,或者终止用例而不再重新参与到某个流〔如备选流2和4〕。.根本流和备选流按照上图中每个经过用例的途径,可以确定以下不同的用例场景:场景1根本流场景2根本流备选流1场景3根本流备选流1备选流2场景4根本流备选流3场景5根本流备选流3备选流1场景6根本流备选流3备选流1备选流2场景7根本流备选流4场景8根本流备选流3备选流4注:为方便起见,场景5、6和8只思索了备选流3循环执行一次的情况。.测试方法选择的综合战略以下是各种测试方法选择的综合战略,可在实践运用过程中参考。首先进展等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少任务量和提高测试效率的最有效方法。在任何情况下都必需运用边境值分析方法。阅历阐明用这种方法设计出测试用例发现程序错误的才干最强。.测试方法选择的综合战略对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。假设没有到达要求的覆盖规范,该当再补充足够的测试用例。对于业务流明晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合运用各种测试方法。.课程内容软件测试背景什么是软件测试?软件测试的流程测试用例及其设计方法软件测试工具_RationalTest.测试工具的分类白盒测试工具:对代码的测试黑盒测试工具:功能和性能上的测试测试管理工具:对测试方案、测试用例、测试实施进展管理其他测试工具:专门针对于数据库的测试等工具.测试工具MI公司Winrunner〔功能测试〕Loadrunner〔性能负载测试〕Testdirector〔测试流程管理〕IBM公司RationalCompuware公司QACenter,包括QARun,QAload,QADirector等模块其他测试工具微软WAS(WEB效力器负载测试),ACT〔微软的VisualStu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论