软件质量与结构化测试已读版修正版.ppt_第1页
软件质量与结构化测试已读版修正版.ppt_第2页
软件质量与结构化测试已读版修正版.ppt_第3页
软件质量与结构化测试已读版修正版.ppt_第4页
软件质量与结构化测试已读版修正版.ppt_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

软件质量,与结构化测试,内容提要,什么是软件质量软件质量特性与质量模型软件质量的度量常用软件度量方法McCabe复杂度结构化测试技术,软件开发,Maintenance,软件开发的工作分配,Design,Coding,Testing,什么是软件质量,“Thetotalityoffeaturesandcharacteristicsofaproductorservicethatbearonitsabilitytosatisfystatedorimpliedneeds”(ISO8402)与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体,Thedegreeofexcellence软件的优秀程度,“Theabilityofasoftwareproducttosatisfyitsspecifiedrequirements”(DoD-STD-2168)软件产品满足其规定的需求的能力,什么是软件质量,“Thedegreetowhichasystem,component,orprocessmeetsspecifiedrequirements.”(IEEEstandard610.12-1990)一个系统、组件或过程满足规定的需求的程度,“Thedegreetowhichasystem,component,orprocessmeetscustomeroruserneedsorexpectations.”(IEEEstandard610.12-1990)一个系统、组件或过程满足客户或用户的需求的程度,或满足期望值的程度,ISO9126,SoftwareQuality:软件质量Thetotalityoffeaturesandcharacteristicsofasoftwareproductthatbearonitsabilitytosatisfystatedorimpliedneeds.与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体,SoftwareQualityCharacteristics:软件质量特性Asetofattributesofasoftwareproductbywhichitsabilityisdescribedandevaluated.Asoftwarequalitycharacteristicmayberefinedintomultiplelevelsofsub-characteristics.软件质量特性是软件产品的一组属性,用来对软件的能力进行描述和评估。软件质量特性可细分为多层次的子特性。,SoftwareQualityMetric:软件质量度量Aquantitativescaleandmethodwhichcanbeusedtodeterminethevalueafeaturetakesforaspecificsoftwareproduct.用于确定软件产品质量特性的定量的衡量和分析方法,QualityinSoftware,缩短时间表,“Qualitydoesnothappenbymistake!”,为什么质量差?,压缩的预算,人员的变化,用户需求的改变,提高或增加功能或性能,BugFixing,无效的测试,软件质量保证(QA),原则质量不必是“最好”的质量是用户想要的和愿意购买的,范围QAismorethantestingQAnotonlyattheendoftheprojectQAofproductandprocess,格言Movingfromqualitycontrolling(expost)topreventionbyqualityservice.通过质量服务把质量控制变换到预防,QualityCharacteristics质量特征,SoftwareComplexity,Asoftwareproductisasolutionofaproblem.Thecomplexityofthesolutiongenerallydependsonthecomplexityoftheproblem.,QualityModels,分配用户需求QualityFactors(质量因素),到开发标准QualityCriteria(质量标准),到可证明的和测量的值Metrics(度量),软件质量的因子-标准-度量关系,可维护性,Boehm质量模型,McCallModel,质量与质量管理,质量要用需求,可接受性和它们达到的证据来衡量,质量是通过解决问题实现的,质量管理确保前面解决过的问题不再出现,没有质量测量来做质量管理只能是幻想,测量工具的好处,支持质量管理系统,开发工程师可以自己检查,支持代码评审,评价外部软件,支持测试,Software,Metrics,什么是度量(Metric)?,任何测量的单位e.g.Cm,Litre,Ohm,Second,Color,描述一个实体的属性,度量的类型:和项目相关时间表/开支估算测量功能点软件度量,Youcantcontrolwhatyoucantmeasure.,DeMarco,1982,软件质量度量,测量非常有用,但我们必须先解决如下问题:,5.1o-1s,测量,Whatdowewanttomeasure?测量什么,Howdowemeasure?如何测,Whatdothemeasurementsmea测量的意义何在,5.2o-2s,WhattoMeasure?,直观的,GoodMetricsshould:,和错误出现有直接关系,好的度量,客观的,语言独立,和测试努力直接有关,自动化,简单,提高质量,4.1s,确定质量,防止质量退化,辅助做出决策,提高生产力,确定变更的影响,风险分析,确保质量,提高测试效率,Metrics+,HalsteadMetrics霍尔斯特德度量,可用的软件度量包括:,FunctionPoint功能点,LineCountMetrics线计数度量,McCabeMetrics圈复杂度,DataMetrics,SystemLevelMetrics,OOMetrics,DerivedMetrics,HalsteadMetrics,起源:,1977年,由MauriceHalstead开发介绍,计算模块的操作数和操作符,直接得出模块的复杂程度的一种定量测试方法,通过源代码测量模块的复杂度,重点是复杂性的计算,应用于代码,经常作为一种维护性度量,自诞生之日起,就充满争议,技术,Halstead度量主要基于以下四层源自程序代码的统计数值:,n1=thenumberofdistinct(独立的)operators操作符n2=thenumberofdistinctoperands操作数N1=thetotalnumberofoperatorsN2=thetotalnumberofoperands,MeasureSymbolFormulaProgramlength长度NN=N1+N2Programvocabulary词汇量nn=n1+n2Volume容量VV=N*(LOG2n)Difficulty难度DD=(n1/2)*(N2/n2)Effort工作量EE=D*V,fromtheabove,fivemeasuresarederived.,HalsteadMetrics,HalsteadMetrics,优势:,不必深入分析程序的结构,预测错误的数目,预测维护的工作量,对报告和计划项目的健康程度有帮助,对整个程序有帮助,计算简单,适合任何编程语言,经过很多工业研究,都支持使用Halstead来预测开发工作量和平均bugs,FunctionPoints,起源:,1977由A.J.Albrecht开发设计,测量软件的大小和生产力,技术:,将基本功能点分为5组:outputs输出inquiries查询inputs输入files文件interfaces接口功能点就是最终用户的业务功能,比如对输入的查询.,和软件完成的功能紧密相关,FunctionPoints,优势:,对以下情况,通常被公认为是一种有效方法:,较大的用户群;InternationalFunctionPointGroup(IFPG)多于1,200会员公司,建立每小时功能点的生产率,评估对需求的支持,评估软件工程的大小(以及周期),软件模块比较的标准化,评估系统变更的开销,IFPG提供功能点实践手册,以及标准化的实践活动,Source:SoftwareEngineeringInstituteCarnegieMellon,LineCountMetrics,表明每个模块的行数,包括代码,注释,空白行,混合代码和注释.,技术,LOC可分为以下几类:,Lines-of-Code(LOC)metrics提供代码的总额,但是对内容的测量不太好,blanks-Lineswithonlyspace(eg.spaceandtabs)ornotextcomment,code-Sourcelinesofcodethatcontainonlycodeandwhitespace,comments-Sourcelinesofcodethatarepurelycomments,Mixed-Linesthatcontainbothcodeandcomments,LineCountMetrics,优势:,测量软件的物理尺寸,鉴别特殊行,如注释行和空行,帮助查明难以理解的模块.(Commentlinesoftenincreasereadability,althoughanunusuallylargenumberofcommentscanindicatethatthemoduleisdifficulttounderstand.),McCabeMetrics,起源:,圈复杂度(CyclomaticComplexity)由ThomasMcCabe于1976提出,测量贯穿程序模块的独立线性路径数,提供了比较两个程序复杂度的一种简单的指标,通常被称为程序复杂度或McCabe复杂度,McCabeMetrics,优势:,广泛应用的静态软件度量,和其他度量互补,独立于开发语言,扩展到可以包括设计和结构复杂度,基于软件结构的严格的数学分析,McCabeMetrics,优势:,可以应用到几个领域:,维护的风险分析Codecomplexitytendstoincreasethroughmaintenanceovertime.Bymeasuringbeforeandaftercomplexitycanbemonitored,managedandminimisetheriskofchange.,代码开发的风险分析:whileunderdevelopment,complexitycanbemeasuredforinherentriskandriskbuildup.,测试的计划Cyclomaticcomplexitygivestheexactnumberoftestsneededtotesteverydecisionpoint.Thisaidsintestplanning.Highlycomplexmodulesrequireaprohibitivenumberofteststeps,thatnumbercanbereducedtoamorepragmaticsizebybreakingthemoduleintosmallerlesscomplexsubmodules.,再工程Cyclomaticcomplexityanalysisprovidesinsighttothestructureofcode.Reengineeringriskisrelatedtothecodecomplexity.Thisinsighthelpswithcostandriskanalysis.,McCabeMetrics,McCabe度量包括.,Cyclomaticcomplexity(v(G),Essentialcomplexity(ev(G),Moduledesigncomplexity(iv(G),Designcomplexity(S0),Integrationcomplexity(S1),Datacomplexity,Globaldatacomplexity(gdv(G),Specifieddatacomplexity(sdv(G),Isconstructedfromwrittencode,分析一个模块,结构流图.,一种描述软件模块逻辑的结构图,Isavisualizationofthemodulesdecisionlogic,分析一个模块,流图符号(箭头)称为“边”(edge),代表控制流(圆圈)称为“节点”(node),代表一个或多个语句动作由节点和边围成的范围称为“域”(region),在计算域时,图形外的区域也应算做一个“域”判定节点,指包含条件的节点,If.then,If.then.else,If.and.then,If.or.then,Do.While,While.Do,Switch,分析一个模块,C语言流图符号,分析一个模块,FlowgraphsC程序举例,function_test(y)0x=3;,1if(y4)2x=sin(y);else3x=cos(y);,4x=x*x;5,分析一个模块,FlowgraphsC程序举例,0,function_test(y)0x=3;,1if(y4)2x=sin(y);else3x=cos(y);,4x=x*x;5,分析一个模块,FlowgraphsC程序举例,0,1,3,2,function_test(y)0x=3;,1if(y10)printf(message2)flaga=1;if(c5)moda(x);elseprintf(message3);,指定数据复杂度的优势.,表明一个模块与指定数据相关联的数据复杂程度,等于(用来测试指定数据所有应用的)基本测试路径数,可分析数据结构变化对软件的影响,数据度量,其他复杂度度量.,HenryandKafurametrics,模块之间的耦合(parameters,globalvariables,calls),其他度量,模块和系统复杂性;通过参数和全局变量的耦合程度,模块性或耦合;结构的复杂度(结构图的最大深度);调用,结构流图的模块性,Bowlesmetrics,TroyandZwebenmetrics,Ligiermetrics,Source:SoftwareEngineeringInstituteCarnegieMellon,McCabe度量,McCabe度量标准与软件质量.,CyclomaticComplexityv(G),易理解,测试工作量,可靠性,EssentialComplexityev(G),结构化特性,可维护性,再工程的工作量,ModuleDesignComplexityiv(G),集成的工作量,McCabe度量,McCabe度量标准与软件质量.,DesignComplexityS0,设计的复杂程度,模块调用的复杂性,IntegrationComplexityS1,量化集成工作,GlobalComplexity(gdv(G),模块与外部数据的耦合,控制流与数据分析,SpecifiedComplexity(sdv(G),数据结构变化的影响,McCabe度量,其他McCabe度量.,NumberofLines(nl),NormalisedComplexity(nv),PathologicalComplexity(pv(G),GlobalDataDensity(global_data_density),SpecifiedDataReference(sdr),SpecifiedDataComplexityDecisionSeverity(sdv_severity),SpecifiedDataReferenceDecisionSeverity(s

温馨提示

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

评论

0/150

提交评论