《软件测试培训-基础篇(上).ppt》由会员分享,可在线阅读,更多相关《软件测试培训-基础篇(上).ppt(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件测试基础知识课程内容v软件测试背景v什么是软件测试v软件测试的流程v软件测试工具 _ Rational Test课程目标v了解软件测试工程师的职业要求及特点v掌握软件测试的基本概念 v熟悉常用的软件测试类型v熟悉软件测试的工作流程和阶段划分v了解软件自动化测试v理解软件测试与软件开发的相互关系你以前接触过软件测试工作么?你认为软件测试人员是做什么的?小插曲v英特尔奔腾CPU 计算机芯片被发现有浮点除法软件缺陷。1994v英特尔的1.13MHZ奔腾III处理器可能导致运行程序被挂起,计算机生产商召回已经交付用户的PC机。2000臭名昭著的软件错误案例v爱国者导弹防御系统 一个小的系统时钟错误
2、,导致在多哈袭击战中,系统被拖延100多个小时。1991v美国航天局火星极地登陆 由于确定何时关闭推进器的程序中某一个数据位被以外修改,飞船在试图登陆火星表面失踪 1999臭名昭著的软件错误案例软件未达到产品设计规范表明的功能;软件出现了产品设计规范指明不会出现的错误;软件功能超出产品设计规范指明的范围;软件未达到产品设计规范虽未指出但应达到的目标;软件测试人员认为软件难以理解、不易使用、运行速度慢,或者最终用户认为不好。什么是软件缺陷?为什么会出现软件缺陷?需求变化缺乏交流设计错误文档缺乏缺陷软件复杂开发工具时间压力软件缺陷的修复费用软件测试人员究竟做些什么?目标:尽可能目标:尽可能早早的的
3、 发现发现软件软件缺陷缺陷,并并确保确保其得以其得以修复修复小插曲小插曲大家有愿意做测试工作的么?不愿意的原因?A、测试工作太枯燥。B、测试工作不需要什么技术,只有技术水平低的人才去做。C、测试工作没有创造性,我喜欢有创造的开发工作。D、做测试工作,发展空间不大,选择比较少。E、测试人员工资比开发人员低F、其它优秀的软件测试人员应该具备的素质?软件测试员的一个基本素质是:打破沙锅问到底软件测试员应具备的素质:1.探索精神:软件测试员不会害怕进入陌生环境。2.故障排除能手:软件测试员善于发现问题的症结,喜欢猜谜。3.不懈努力:软件测试员总是不停尝试。他们可能会碰到转瞬即逝或者难以重建的软件缺陷;
4、他们不会心存侥幸,而是尽一切可能去寻找。优秀的软件测试人员应该具备的素质4.创造性:想出富有创意甚至超常的手段来寻找软件缺陷。5.追求完美:他们力求完美,但是知道某些无法企及时,不去苛求,而是尽力接近目标。6.判断准确:软件测试员要决定测试内容、测试时间,以及看到的问题是否算作真正的缺陷。7.老练稳重:软件测试员不害怕坏消息。8.说服力:软件测试员要善于表达观点,表明软件缺陷为何必须修复,并通过实际演示力陈诉观点。怎样成为优秀的软件测试人员?软件测试工程师广义所有的软件系统都需要的基础知识基础知识包括:基本的编程能力、面向对象方法、操作系统、数据库、计算机网络针对性对具体产品线的业务知识业务知
5、识测试基础知识测试工具自动化测试测试的思维方式 软件工程广度深度专业敬业软件测试人员的发展阶段和机会初级软件测试工程师软件测试工程师项目软件测试经理测试经理项目经理高级软件测试工程师系统工程师 测试工作太枯燥,没有创造性测试工作枯燥?喜欢看推理侦探小说么?测试的过程其实也和推理破案的过程一样的有趣。当进行了严密的推理终于发现一个大缺陷后,会很有成就感。没有创造性?测试也需要创造,新的测试方法,新的自动化测试工具,创造机会很多。成功的秘密强烈的动机坚定的信念强烈的愿望,确定的目标我最想做什么样的人?我一定要做得最好我能行!课程内容v软件测试背景v什么是软件测试?v软件测试的流程v软件测试工具 _
6、 Rational Test你对软件测试的理解?小插曲对软件测试的错误理解如果发布出去的软件有质量问题,那是软件测试人员的错。软件测试技术要求不高,至少比编程容易多了.软件测试是测试人员的事,与开发人员无关。设计-实现-测试,软件测试是开发后期的一个阶段。测试出没有故障,说明我们的软件没有缺陷。什么是软件测试?软件测试的定义软件测试的定义软件测试的对象软件测试的对象软件测试的目的软件测试的目的软件测试分类和比较软件测试分类和比较软件测试的内容软件测试的内容软件测试的定义软件测试的定义 软件测试(软件测试(Software testingSoftware testing)是软件生存期中的一是软件
7、生存期中的一个重要阶段,是软件质量保证的关键步骤。通俗地讲,个重要阶段,是软件质量保证的关键步骤。通俗地讲,软件测试就是在软件投入运行前,对软件需求分析、设软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码进行最终复审的活动。计规格说明和编码进行最终复审的活动。19831983年年IEEEIEEE提出的软件工程术语中给软件测试下的提出的软件工程术语中给软件测试下的定义是:定义是:“使用人工或自动的手段来运行或测定某个软使用人工或自动的手段来运行或测定某个软件系统或系统部件的过程,其目的在于检验它是否满足件系统或系统部件的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际
8、结果之间的差别规定的需求或弄清预期结果与实际结果之间的差别”。软件测试的对象软件测试不等于程序测试,软件测试软件测试不等于程序测试,软件测试贯穿于软件定义和开发的整个期间。贯穿于软件定义和开发的整个期间。需求分析需求分析,概要设计概要设计,详细设计详细设计,以及以及程序编码等各个阶段所得到的文档程序编码等各个阶段所得到的文档,包括包括需求规格说明需求规格说明,概要设计规格说概要设计规格说明明,详细设计规格说明详细设计规格说明以及以及源程序源程序,都都是软件测试的对象是软件测试的对象.软件测试的对象12345用户需求用户:我要什么?理解正确性理解正确性表达正确性表达正确性需求说明书需求分析员:我
9、可以提供什么?设计说明书设计员:我要软件做什么?源程序程序员:我要要让计算机怎么做?运行结果计算机:程序运行得到的结果理解正确性理解正确性设计正确性设计正确性表达正确性表达正确性理解正确性理解正确性编码正确性编码正确性运行正确性运行正确性输入正确性输入正确性相相符合么?符合么?软件测试的目的基于不同的立场,存在着两种完全不同的测试目的。从用户(测试人员)的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。软件测试的目的想以最少的时间
10、和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。实施测试收集到的测试结果数据为可靠性分析提供了依据。测试不能表明软件中不存在错误,它只能说明软件中存在错误。软件测试的原则测试的目的在于发现错误,应尽早地和不断地进行测试 充分注意测试中的群集现象经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。所有的测试都应可追溯到客户需求 穷举测试是不可能的 严格执行测试计划,排除测试的随意性。应当对每一个测试结果做全面检查。妥善保存测试计划,测试用例,出错统计和最终分析报告,
11、为维护提供方便。软件测试的分类名称说明黑盒测试基于软件需求,而不是基于软件内部设计和程序实现的测试方式。白盒测试基于软件内部设计和程序实现的测试方式。单元测试主要测试软件模块的源代码。一般由开发人员而非独立测试人员来执行,因为测试者需要懂得该单元的设计与程序实现,测试者可能需要编写额外的测试驱动程序。集成测试将一些“构件”集成一起时,测试它们能否正常运行。这里“构件”可以是程序模块、客户机服务器程序等等。功能测试测试软件的功能是否符合功能性需求,通常采用黑盒测试方式。一般由独立测试人员执行。系统测试测试软件系统是否符合所有需求,包括功能性需求与非功能性需求。一般由独立测试人员执行,通常采用黑盒
12、测试方式。回归测试指错误被修正后或软件功能、环境发生变化后进行的重新测试。回归测试的困难在于不好确定哪些内容应当被重新测试。验收测试由客户或最终用户执行,测试软件系统是否符合需求规格说明书。软件测试的分类名称说明负载测试测试软件系统的最大负载,超出此负载软件可能会失常。压力测试概念上与负载测试相似,叫法不同。性能测试测试软件在各种状况下的性能,如在正常或最大负载下的状况。易用性测试测试软件是否易用,主观性比较强。一般要根据很多用户的测试反馈信息,才能评价易用性。安装与反安装测试测试软件在“全部、部分、升级”等状况下的安装/反安装过程。恢复测试测试该系统从故障中恢复过来的能力。安全性测试测试该系
13、统防止非法侵入的能力。兼容性测试测试该系统与其它软件硬件兼容的能力。比较测试通过与同类产品比较,考察该系统的优点、缺点。Alpha 测试一种先期的用户测试,此时系统刚刚开发完成。Beta测试一种后期的用户测试,此时系统已经通过内部测试,大部分错误已经改正,即将正式发行。软件测试的分类与比较测试方式白盒测试:关心软件内部设计和程序实现,主要测试依据是设计文档黑盒测试:不关心软件内部,只关心输入输出,主要测试依据是需求文档 软件测试的分类与比较黑盒测试与白盒测试的比较黑盒测试与白盒测试的比较测试方式特征依据测试人员测试驱动程序黑盒测试黑盒测试只关心软件的外部表现,只关心软件的外部表现,不关心内部设
14、计与实现。不关心内部设计与实现。又叫做功能测试或数据又叫做功能测试或数据驱动测试。驱动测试。软件需求软件需求任何人(包括开任何人(包括开发人员、独立测发人员、独立测试人员和用户)试人员和用户)一般无需编写额一般无需编写额外的测试驱动程外的测试驱动程序序白盒测试白盒测试关注软件的内部设计与关注软件的内部设计与实现,要跟踪源代码的实现,要跟踪源代码的运行。运行。结构测试或逻辑驱动测结构测试或逻辑驱动测试。试。设计文档设计文档由开发人员兼任由开发人员兼任测试人员的角色测试人员的角色需要编写额外的需要编写额外的测试驱动程序测试驱动程序软件测试的分类与比较测试阶段测试阶段单元测试、集成测试、单元测试、集
15、成测试、系统测试、系统测试、验收测试。是验收测试。是“从小到从小到大大”、“由内至外由内至外”、“循序渐进循序渐进”的测试过程,体现了的测试过程,体现了“分而治之分而治之”的思想。的思想。单元测试的粒度最小,一般由开发小组采用白盒方式来测单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合试,主要测试单元是否符合“设计设计”。集成测试界于单元测试和系统测试之间,起到集成测试界于单元测试和系统测试之间,起到“桥梁作用桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既要,一般由开发小组采用白盒加黑盒的方式来测试,既要验证验证“设计设计”又要验证又要验证“需求需求”。系统
16、测试的粒度最大,一般由独立测试小组采用黑盒方式系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合来测试,主要测试系统是否符合“需求规格说明书需求规格说明书”。验收测试与系统测试非常相似,主要区别是测试人员不同,验收测试与系统测试非常相似,主要区别是测试人员不同,验收测试由用户执行。验收测试由用户执行。软件测试的内容测试内容接口与路径测试。功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试 测试阶段 主要依据 测试人员、测试方式 主要测试内容 单元测试单元测试系统设计文系统设计文档档由开发小组执行白盒测试由开发小组执行白盒
17、测试 接口测试、路径测试接口测试、路径测试 集成测试集成测试系统设计文系统设计文档档需求文档需求文档由开发小组执行白盒测试由开发小组执行白盒测试和黑盒测试和黑盒测试 接口测试、路径测试接口测试、路径测试功能测试、性能测试功能测试、性能测试 系统测试系统测试需求文档需求文档由独立测试小组执行黑盒由独立测试小组执行黑盒测试测试 功能测试、健壮性测试、性功能测试、健壮性测试、性能测试、用户界面测试、安能测试、用户界面测试、安全性测试、压力测试、可靠全性测试、压力测试、可靠性测试、安装性测试、安装/反安装测试反安装测试 验收测试验收测试需求文档需求文档由用户执行黑盒测试由用户执行黑盒测试 回顾一下v软
18、件测试人员的目标v软件测试的对象v软件测试的目的v软件测试的分类v软件测试的内容回头再看看对软件测试的错误理解回头再看看对软件测试的错误理解如果发布出去的软件有质量问题,那是软件测试人员的错。测试有助于提高软件的质量,但高质量的软件不是测试出来的。软件测试技术要求不高,至少比编程容易多了.好的测试人员不仅要掌握各种测试技术,还要具备丰富的编程经验和对BUG的敏感.测试的复杂之处,除了测试技术问题之外,还有测试管理问题。回头再看看对软件测试的错误理解回头再看看对软件测试的错误理解开发人员参与的测试有单元测试和集成测试软件测试是测试人员的事,与开发人员无关。设计-实现-测试,软件测试是开发后期的一
19、个阶段。测试出没有故障,说明我们的软件没有缺陷。测试是贯穿与软件项目的整个过程应该尽早开始测试测试只能说明故障存在,不能说明故障不存在。课程内容v软件测试背景v什么是软件测试?v软件测试的流程v软件测试工具 _ Rational TestLife Cycle Testing测试生命周期UserRequirementsoftwareRequirementDesignProgramUnit DesignCodingUnitTestingIntegrationTestingSystemTestingAcceptanceTestingPrepare planVerifyPrepare planVeri
20、fyPrepare planVerifyPlan/AnalysisDesignCodingTest/DeliverTest Case DesignTest DevelopmentTest PlanningTest Execution/EvaluationSpiral Testing ProcessInformation GatheringTest PlanningTest Case DesignTest DevelopmentTest Evaluation/ExecutionPrepare for Next SpiralSystem/Acceptance TestingSummary Repo
21、rt(Steps)(interimreports)Iterative/Spiral Testing Process测试的文档测试计划:指明范围、方法、资源,以及相应测试活动的时间进度安排表的文档。测试方案:指明为完成软件或软件集成特性的测试而进行的设计测试方法的细节文档。测试用例:指明为完成一个测试项的测试输入、预期结果、预期执行条件等因素的文档。测试规程:指明执行测试时测试活动序列的文档。测试报告:指明执行测试结果的文档。课程内容v软件测试背景v什么是软件测试?v软件测试的流程v软件测试工具 _ Rational Test测试工具的分类测试工具的分类v白盒白盒测试工具:对代码的测试测试工具:
22、对代码的测试v黑盒测试工具:功能和性能上的测试黑盒测试工具:功能和性能上的测试v测试管理工具:对测试计划、测试用例、测试实测试管理工具:对测试计划、测试用例、测试实施进行管理施进行管理v其他测试工具:专门针对于数据库的测试等工具其他测试工具:专门针对于数据库的测试等工具测试工具测试工具MIMI公司公司WinrunnerWinrunner(功能测试)功能测试)LoadrunnerLoadrunner(性能负载测试)性能负载测试)TestdirectorTestdirector(测试流程管理)测试流程管理)IBMIBM公司公司RationalRationalCompuwareCompuware公司
23、公司QACenterQACenter,包括包括QARun,QAload,QADirectorQARun,QAload,QADirector等模块等模块其他测试工具其他测试工具微软微软WAS(WEBWAS(WEB服务器负载测试服务器负载测试),ACTACT(微软的微软的Visual Visual Studio Studio 和和Visual Studio.NETVisual Studio.NET带的一套进行程序测试的工带的一套进行程序测试的工具具 )Rational Test工具用途列表工具用途列表软件软件用途用途Rational Rational AdministratorAdministra
24、tor主要用于创建新的主要用于创建新的PROJECTPROJECT,包括需求包括需求(RequestProRequestPro)、测试测试(Test Manager)(Test Manager)、及缺陷跟踪及缺陷跟踪(Clear Quest)(Clear Quest)的数据库创建并建立关联的数据库创建并建立关联ClearQuestClearQuest变更管理及缺陷跟踪变更管理及缺陷跟踪ClearQuestClearQuest Maintenance ToolMaintenance ToolClearQuestClearQuest维护工具,主要用于创建、修改、删除维护工具,主要用于创建、修改、删
25、除ClearQuestClearQuest的的ConnectionConnectionClearQuestClearQuest DesignerDesignerClearQuestClearQuest维护工具维护工具,主要用于维护某一指定的主要用于维护某一指定的Connect/SchemaConnect/Schema的用户、访问权限及其他属性定义的用户、访问权限及其他属性定义(如缺陷等级)等维护(如缺陷等级)等维护TestManagerTestManager测试计划制定及执行工具测试计划制定及执行工具License Key License Key AdministratorAdministra
26、torRationalRational注册管理器注册管理器软件(执行文件软件(执行文件名称)名称)用途用途PureCoveragePureCoverage白盒测试工具,记录代码覆盖率。不支持白盒测试工具,记录代码覆盖率。不支持C+C+Builder/DelphiBuilder/DelphiPurifyPurify白盒测试工具,用于内存泄漏检查白盒测试工具,用于内存泄漏检查QuantifyQuantify白盒测试工具,用于性能瓶颈分析白盒测试工具,用于性能瓶颈分析Purify Plus For Purify Plus For UnixUnix包括以上三个工具,不过是包括以上三个工具,不过是For
27、For Unix UnixRequisiteProRequisitePro需求分析工具需求分析工具RobotRobot自动测试工具,类似自动测试工具,类似WINRUNNDERWINRUNNDER,加上加上VTVT可以做并可以做并发测试发测试SoDASoDA for Word for Word报表生成工具,需要报表生成工具,需要VBAVBA测试。一般不直接运行,运测试。一般不直接运行,运行后行后SoDASoDA在在wordword中增加了菜单,可以进行模板设计。中增加了菜单,可以进行模板设计。TestFactoryTestFactory可靠性测试,非常耗时。可靠性测试,非常耗时。小插曲小插曲开发
28、人员与测试人员开发人员与测试人员 矛矛 和和 盾?盾?开发人员对自己的程序往往做不到开发人员对自己的程序往往做不到“无情无情”。但如果测试人。但如果测试人员真的做到了员真的做到了“无情无情”却会引起开发人员的愤怒,遭人白眼。却会引起开发人员的愤怒,遭人白眼。由于开发与测试存在由于开发与测试存在“对立对立”关系,开发人员与测试人员很关系,开发人员与测试人员很容易产生矛盾,这对项目而言是一种伤害。容易产生矛盾,这对项目而言是一种伤害。开发人员的注意事项:(1)不要敌视测试人员。要理解测试的目的就是发现缺陷,是测试人员的工作职责。不要以为测试人员吃饱了没事干,存心找茬。(2)不要轻视测试人员,别说人
29、家技术水平差,不配搞开发只好搞测试。小插曲开发人员与测试人员 矛 和 盾?测试人员的注意事项:测试人员的注意事项:(1 1)发现缺陷时不要嘲笑开发人员,别说他的程序真臭、)发现缺陷时不要嘲笑开发人员,别说他的程序真臭、到处是到处是BugBug。(2 2)在开发人员压力太大时或心情不好时不要火上浇油,在开发人员压力太大时或心情不好时不要火上浇油,发现缺陷时别大声嚷嚷。发现缺陷时别大声嚷嚷。不要相互讽刺对方,例如:不要相互讽刺对方,例如:A A对对B B说:你唯一的特点就是无能。说:你唯一的特点就是无能。B B对对A A说:你唯一的特点就是粗鲁。说:你唯一的特点就是粗鲁。小插曲开发人员与测试人员 矛 和 盾?还要注意的是,如果测试人员与开发人员的关系非常好,可能会导致在测试的时候“手下留情”,这对项目也是一种伤害!欢迎提问和讨论谢谢谢谢