高级软件测试技术――1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

高级软件测试技术国信培训中心段念2005.12.16课程说明本课程的面向对象为测试经理、测试分析设计人员、测试工程师、项目经理、开发人员、质量相关人员课程时间安排为2天,上午9:00–12:00,下午13:00–16:00课程进行中,请关闭手机或是将手机调为震动课程进行中,任何问题都可以随时向讲师提出,但讲师有权决定在何时进行解答测试基本概念测试是什么测试是一个系统工程测试是设计和实现一种特定软件系统的过程测试的目标是发现缺陷测试是一个发现缺陷的过程测试的手段是V(Verify)&V(Validate)测试是对依据系统预期行为设计的测试用例的动态验证(DynamicVerification)过程,目的是发现程序中的缺陷——SWEBOK2004SWEBOK2004对软件测试的定义Softwaretestingconsistsofthedynamicverificationofthebehaviorofaprogramonafinitesetoftestcases,suitablyselectedfromtheusuallyinfiniteexecutionsdomain,againsttheexpectedbehavior.——SWEBOK2004SWEBOK2004SoftwarerequirementsSoftwaredesignSoftwareconstructionSoftwaretestingSoftwaremaintenanceSoftwareconfigurationmanagementSoftwareengineeringmanagementSoftwareengineeringprocessSoftwareengineeringtoolsandmethodsSoftwarequality软件测试关键域(KA)软件测试基础(SoftwareTestingFundamentals)测试级别(TestLevel)测试技术(TestTechnique)测试相关度量(Test-RelatedMeasures)测试过程(TestProcess)测试技术Testsbasedonthetester’sintuitionandexperienceSpecification-basedtechniquesCode-basedtechniquesFault-basedtechniquesUsage-basedtechniques…测试相关度量对被测系统的评估度量对测试过程的评估度量软件测试的目标经典答案:发现程序中的错误更加详细的答案:以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够尽可能多的发现软件中的错误。测试的另一个目标是:它能够证明软件的功能和性能与需求说明相符合让人沮丧的结论:测试不能表明软件中不存在错误,它只能说明软件中存在错误一些反思测试可以提高产品质量吗?对一个组织来说,测试的目标究竟应该如何定义?纯粹的发现错误是测试对组织的唯一贡献?测试的角色测试与质量的关系测试度量是什么?测试度量有什么作用?V模型V模型图例:计划修改需求可行性研究需求定义项目启动需求规范化概要设计详细设计编码需求规范设计规范模块规范代码单元测试已测模块集成集成软件集成测试已测软件已确认软件系统测试项目完成可操作软件操作项目结束确认测试需求描述评审评审走查读代码测试用例测试用例测试用例测试用例测试用例测试用例集成计划构件资料阶段基线产品X模型软件的一般实现过程验证和确认-1验证(Verification):在软件生存期各个阶段,验证是指检测各个阶段结束时的工作产品是否满足对上一阶段的结束后的工作产品所定义的规格的验证过程。需求设计编码测试验证验证和确认-2确认(Validation):在软件生存周期各个阶段,确认是指检测各个阶段结束时的工作产品是否满足在软件生存周期初期在系统需求文档中描述的各项软件规格的确认过程。需求设计编码测试确认验证和确认的比较-3验证是检测每一阶段形成的工作产品是否与前一阶段定义的规格相一致,确认是检测每一阶段的工作产品是否与最初定义的软件需求规格相一致。软件测试既可用于验证,又可用于确认。测试的验证和确认工作不光局限于专职测试人员需求设计编码测试验证确认测试与质量的关系质量—符合要求的程度质量-产品/服务的固有特性满足客户要求的程度产品/服务的固有特性要求和期望固有050%100%测试与质量的关系测试与质量的关系销售收入质量成本意识利润必要成本预防鉴定失败PONCPOC质量成本营业成本PONC:不符合要求的代价POC:符合要求的代价测试的投入属于鉴定成本质量管理发展的三个阶段测试与质量的关系质量包括两个方面交付件的质量•系统本身的质量•文档的质量过程质量•进度偏差量•工作量偏差量•需求的稳定度•缺陷和问题的发现率/解决率•过程规范的符合度测试与质量的关系测试与质量的关系质量管理体系测试与质量的关系质量管理的活动质量策划-致力于制定质量目标、确定运行过程和资源以实现质量目标质量控制-致力于满足质量要求质量控制方法:审计、测试质量控制活动:•流程中已规定的质量控制活动•流程中未规定,在项目计划中增加的质量控制活动质量管理的活动质量保证-从质量管理体系的角度,向管理者、客户提供适当的对业务的过程和交付件(产品或服务)的可视性,致力于提供对体系能力的信任。包括•质量管理体系的流程/规范/标准的培训、引导、推行落实•通过评审(审计)、测试其业务过程和交付件(产品/服务),以验证他们符合适用的流程、规范和标准,给管理者提供这些评审和测试的结果质量改进-致力于增强满足质量要求的能力(PDCA)测试与质量的关系测试与质量的关系PAL(ProcessAssetLibrary)组织级的研发过程资产库,它包括如下的主要内容:1)质量管理系统的所有文件如:质量手册、流程/规程、操作指导书、模版、表格、检查表标准,工具等2)系统工程方法、软硬件工程方法3)项目信息库4)过程数据库:开发过程文档;过程度量数据;经验教训5)过程能力基线库6)样例库7)风险数据库8)偏差和裁减库9)内部审计库10)培训资料库11)工具库测试原则与方法缺陷引入阶段分析错误引入阶段分析RequirementsDesignOtherCodeRequirements--56%Design--27%Other--10%Code--7%JamsMartin:超过50%的缺陷由不完善的、不正确的、不准确的和/或不明确的需求引起的测试原则和方法缺陷引入阶段分析错误定位费用分析RequirementsDesignOtherCodeRequirements--82%Design--13%Other--4%Code--1%JamsMartin:80%以上的用于定位软件错误的费用是基于软件系统需求定义的错误测试原则和方法测试投入分析IBM:•软件可靠性比硬件可靠性低一个数量级•软件工程化和软件测试是保证软件质量的有效手段•一般项目:测试投入占项目总投入的30%-40%测试原则和方法为什么要尽早测试在部署之后发现软件问题再进行修复,这通常要多花100到1000倍的成本。要防患于未然。在特定时间达到既定目标,在整个项目周期内不断对质量进行检验和管理必不可少。成本开发部署测试原则和方法不同的系统需要不同的测试质量要求举例:波音公司•引擎的控制,导航的处理需要MC/DC测试,要求较高•飞机内的娱乐设施只需要作函数进入/退出覆盖率测试测试原则和方法客户化测试系统中有许多错误客户遇到的错误只占很小的比例针对客户最容易遇到的错误进行测试,以便改进测试的有效性客户所看到的57%以上的故障是由占错误总数2%以下的错误引起IBM:测试原则和方法为什么要统计覆盖率提高测试效率通过覆盖率趋势,去除无效的测试项目通过覆盖率趋势,减少测试次数,提高测试效率实时动态显示覆盖率,简化测试用例生成过程提高产品质量发现没有测量过的部分清楚的描述系统被检验到了什么程度测试原则和方法测试覆盖类型代码覆盖语句覆盖条件覆盖路径覆盖判定覆盖条件决策覆盖功能点覆盖测试用例覆盖测试脚本覆盖测试原则和方法测试原则Good-enough原则:这是一种权衡投入/产出比的原则,测试既不要不充分,也不要过分.不充分和过分都是一种不负责任的表现.Zero-bug是一种理想,Good-enough是我们的原则.Pareto原则:一般情况下,在分析、设计、实验阶段的复审和测试工作能够发现和避免80%的bug,而系统的软件测试能够找出其余bug中的80%.最后约5%的bug只有在用户大范围、长时间的使用后才会暴露出来,因此测试只能保证尽可能多地发现错误、不能保证发现所有的错误.测试原则和方法测试原则和方法测试结束准则查出了预定数目的错误达到了一定覆盖率错误强度曲线下降到了预定的水平达到测试计划中所规定的完备性其他标准著名测试论点GlenMyers•测试是为了发现错误而执行程序的过程•一个好的测试是指很可能找到尚未发现的错误的测试•一个成功的测试是指发现了至今未发现的错误的测试Hetzel•软件测试是对软件建立信心的过程•测试是评估软件或系统的品质或能力的一种积极的行为•测试是对软件质量的度量测试原则和方法测试与调试目的的差异性过程的规范性过程的可重复性具体操作主体采用的技术测试原则和方法测试的目的发现系统存在的问题树立对系统的信心增强团队对系统的熟悉程度,了解系统固有缺陷测试原则和方法测试方法汇总按对代码逻辑的关注程度•白盒测试•黑盒测试•灰盒测试按测试手段•静态测试•动态测试按测试级别•单元测试•集成测试•系统测试•验收测试测试原则和方法测试方法对应关系测试原则和方法白盒测试结构测试.基于被测试的内部逻辑知识,设计必要的测试用例,达到覆盖语句、判定、路径等通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致白盒测试类似于西医看病,通过X光、CT扫描等手段测试原则和方法基本覆盖语句覆盖(StatementCoverage)判定覆盖(DecisionCoverage)条件覆盖(ConditionCoverage)条件决策覆盖(ModifiedCondition/DecisionCoverage)测试原则和方法语句覆盖程序中每条语句至少执行一次语句覆盖是最起码的测试要求判定覆盖每个判断的取真分支和取假分支至少经历一次判定覆盖的盲点(条件)测试原则和方法条件覆盖每个判断的每个条件的可能取值至少执行一次条件覆盖的盲点(分支)条件决策覆盖判断中每个条件的所有可能取值至少执行一次同时每个判断的所有可能判断结果也至少执行一次每一个决策中的每一个条件都曾经独立的影响决策的结果至少一次,独立影响的含义是指在其他条件不变的情况下改变某一个条件测试原则和方法判定、条件覆盖案例测试原则和方法测试原则和方法覆盖设计的例子对以下这段代码进行语句、条件覆盖和条件决策覆盖的用例设计……if(a2&&b3||(c4&&d5)){dosomething();}……白盒测试用例设计练习publicclassAccount{privateintsum;publicAccount(intnum){sum=num;}publicStringwithdraw(intnum){if(numsum){returnOverdraft.Operationcancelled.+\n;}else{sum-=num;return“WithdrawSuccess.”+“\n”;}}publicvoiddeposit(intnum){sum+=num;}publicintcheckBalance(){returnsum;}publicinttoDollar(){

1 / 133
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功