您好,欢迎访问三七文档
软件质量模型外部和内部质量功能性可靠性易用性效率维护性可移植性适合性准确性互操作性保密安全性功能性的依从性成熟性容错性易恢复性可靠性的依从性易理解性易学性易操作性吸引性易用性的依从性时间特性资源利用性效率依从性易分析性易改变性稳定性易测试性维护性的依从性适应性易安装性共存性易替换性可移植性的依从性软件质量模型一、软件的功能性1、适用性:所提供的功能是用户所需要的,用户所需要的功能软件系统已提供。2、准确性:软件系统提供给用户的功能是否满足用户对该功能的精确度要求。3、互操作性:软件系统和一个或多个周边系统进行信息交互的能力。例如:word打印机打印请求打印响应不同型号的打印机与word之间的协议可能不一致,导致消息传递过程中发生错误。▲应该将被测软件系统和周边系统的各种主流型号进行互操作性测试。4、保密安全性:软件系统保护信息和数据的能力。Ⅰ、防止未得到授权的人或系统访问相关的信息或数据Ⅱ、保证得到授权的人或系统能正常访问相关的信息或数据。不同的系统对于安全性的需求差别很大常见的安全性测试:⑴用户验证:登录密码验证、IP地址访问限制等⑵用户权限管理:验证低级别用户是否具有了高级别用户的权限,各级别用户权限都得到了实现。⑶系统数据的保护:对例如系统文件、用户密码文件等进行隐藏、密码验证、内容加密、备份。⑷防DoS攻击DoS(DenialofService)攻击:拒绝服务攻击。例如:PC1PC2路由器耗光资源申请IP申请IPStep1:非法用户使用非法手段(如自动化申请脚本死循环)Step2:合法用户无资源IP地址资源池BrowserServerDB非法用户(While语句死循环)查询请求合法用户请求无法响应解决办法:限制请求次数▲分析系统业务处理中哪些是消耗大量资源、哪些是响应时间非常长的,针对这类业务有目的地去验证系统是否有防DoS攻击防范手段。⑸防溢出攻击例如:溢出攻击正常输入:IE:异常输入:IE:……(恶意代码)没有长度验证⑹加密、解密:在计算机通讯中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或截获,窃取者也不能了解信息的内容,从而保证信息传输的安全。⑺防病毒5、功能性的依从性遵循相关的标准(国际标准、国家标准、行业标准、企业内部规范等)约定或法规以及类似规定的能力。二、软件可靠性1、成熟性软件系统防止内部错误扩散而导致失效的能力。▲子系统、模块、单元模块的设计人员应该仔细分析和自身有接口关系的子系统、模块、单元模块,识别出这些接口上可能会传递过来的错误,然后在自己子系统、模块、单元模块内部对这些可能的错误预先进行防范,规避这些错误传递到自身而引起自身的失效。2、容错性软件系统防止外部接口错误扩散而导致系统失效的能力。▲设计人员应该充分分析外部接口可能产生的错误,然后在设计上对这些错误一一予以防范,防止这些外部传入的错误波及自身而失效。3、易恢复性系统失效后重新恢复原有功能、性能的能力①原有能力恢复的程度②原有能力恢复的速度例如交换板1交换板2主备交换板1交换板2主备向外部屏蔽内部故障,提高用户满意度▲开发人员进行设计时应该充分分析架构中哪个组件风险最集中最高,那么应该对这类核心组件采用主备倒换等易恢复机制。心跳监听消息心跳监听消息当交换板1出现故障、立即将交换板2作为主交换板4、可靠性依从性遵循相关的标准(国际标准、国家标准、行业标准、企业内部规范等)约定或法规以及类似规定的能力。三、软件易用性1、易理解性用户在使用软件系统的过程中,系统交互给用户的信息是否准确、清晰、易懂,能帮助用户准确理解系统当前真实的状态,指导其进一步的操作。例如:ClientServerGUI界面(NAME,PWD=8)当输入password9时,提示“系统出错”—太笼统,不能反映系统的真实状态。▲站在用户的角度,关注系统返回给用户的每一个信息,不要只关注功能的实现。2、易学性软件系统提供相关的辅助手段,帮助用户学习使用它的能力。例如:是否有用户手册,用户手册是否有中文版,是否有在线帮助,界面上控件是否有回显功能等。3、易操作性例如:①Nokia手机和Moto手机在编辑短消息时的方便性差异。②GUI界面,菜单层次不要太深③安装软件的过程错误:给用户大量的安装步骤,每步又有大量分支选项(把用户当成本软件的专家)▲测试时应该以非专业的角度来测试过程,往往需要α、β测试。4、吸引性美观:GUI界面、手机外观等新颖:如夏新手机来电跳舞功能5、易用性的依从性遵循相关的标准(国际标准、国家标准、行业标准、企业内部规范等)约定或法规以及类似规定的能力。四、软件效率(性能测试)1、时间效率系统在各业务场景下完成用户指定的业务请求所需的响应时间。2、资源效率系统在各业务场景下完成用户指定的业务请求所消耗的系统资源,如CPU占有率、内存占有率、通信带宽占有率、软件内部消息包资源占有率等。3、效率依从性遵循相关的标准(国际标准、国家标准、行业标准、企业内部规范等)约定或法规以及类似规定的能力。性能测试场景设计:单用户单业务测试注册响应时间消耗资源登录响应时间消耗资源…多用户单业务测试50个用户同时注册请求响应时间消耗资源100个用户同时注册请求响应时间消耗资源150个用户同时注册请求响应时间消耗资源200个用户同时注册请求响应时间消耗资源…1000个用户同时注册请求响应时间消耗资源…多用户多业务测试业务模型1业务模型2……注册200……登录200……浏览400……上传文件100……下载文件100……响应时间负载量找出曲线拐点位置,分析性能瓶颈,调整优化注册业务性能指标曲线变化根据不同的时间、环境构造各种不同的业务模型,调整其中的分布,找出性能指标分布规律,找出业务瓶颈五、软件可维护性1、易分析性软件系统提供辅助手段帮助开发人员分析识别缺陷、失效产生的原因,找出待修复部分的能力。(降低缺陷定位的成本)2、易改变性对软件缺陷的修复容易被实施(降低修复缺陷成本)▲设计上封装性好、高内聚(同层次设计时,一个实体只完成一个功能)、低耦合,为未来可能的变化留有扩充余地。3、稳定性例如:代码中的有物理含义的数字,一定用宏代替。4、易测试性(降低发现缺陷的成本)①软件可控制:软件系统提供辅助手段帮助测试工程师控制该系统的运行,实现其测试执行步骤的能力(通过打点、改变内部状态、值等手段)②可观察:软件系统提供辅助手段帮助测试工程师获得充分的系统运行信息,以正确判断系统运行状态和测试执行结果的力。a、设计单独的测试模式b、提供单独的测试版本▲测试部(一般指测试系统工程师)应该在需求分析阶段就提出可测试性需求,可测试性需求和软件产品其他需求一起纳入需求包被分析设计并实现。5、维护性的依从性遵循相关的标准(国际标准、国家标准、行业标准、企业内部规范等)约定或法规以及类似规定的能力。六、软件可移植性1、适应性软件系统无需做任何相应变动就能适应不同运行环境(操作系统平台、数据库平台、硬件平台等)的能力。▲解决平台无关、可移植性问题的一个常用思路是构造出一个虚拟层,虚拟层将下层细节屏蔽,对上层提供统一口。2、易安装性主流平台全部测试用例非主流平台10%测试用例3、共存性软件系统和在公共环境与其共享资源的其他系统共存的能力。▲测试不仅需要关注自身特性的实现,还要关注本软件是否影响了其他软件的正常功能。4、易替换性软件系统升级能力(在线升级、打补丁升级等)5、可移植性的依从性遵循相关的标准(国际标准、国家标准、行业标准、企业内部规范等)约定或法规以及类似规定的能力。软件质量活动软件质量活动软件组织主要软件质量活动软件质量保证(SQA)测试SQA和测试的关系软件质量由组织、流程和技术三方面决定SQA从流程方面保证软件的质量测试从技术方面保证软件质量只进行SQA活动或只进行测试活动不一定能产生好的软件质量SQA的主要工作范围指导并监督项目按照过程实施;对项目进行度量、分析,增加项目的可视性;审核工作产品,评价工作产品和过程质量目标的符合度;进行缺陷分析,缺陷预防活动,发现过程的缺陷,提供决策参考,促进过程改进质量管理PDCA循环纠正措施检查检测计划设计实施执行Plan计划Do执行Check检查Act改进软件度量的概念和目的概念-度量:对事物属性的量化表示-软件度量:是指计算机软件中范围广泛的测度,包括对软件系统、构件或生命周期过程具有的某个给定属性的度的一个定量测量目的-提高软件生产率,缩短产品研发周期,降低研发成本、维护成本-提高软件产品质量,提高用户满意度-为组织持续改进提供量化的指标和反馈软件度量的作用理解:就是通过度量,获得对过程、产品、资源等的理解,确定以后预测的基线和模型。对于不同的软件组织和软件类型,过程模型都不一样。这是评估、预测、改进活动的基础预测:根据所理解确定的模型,由已知的要素推算、估计其它要素,以便合理分配资源、合理制定计划评估:分析活动与计划的符合度,确定是否有偏差,以便控制其执行-开发活动与计划的符合度。如工作量估计偏差、进度偏差等;-产品的质量。如软件复杂度、缺陷密度、平均失效时间间隔等;-新技术的影响改进:根据得到的量化信息,可以帮助我们识别要因、查找问题的根源,以及能提高产品质量和过程效率的其它方法;与以前的量化信息比较,可以验证这些方法是否有效软件度量的过程ActPlanCheckDoPDCA循环软件度量的分类四个基本度量项规模(size)软件工作产品的大小工作量(effort)完成各软件工作产品和活动所用人时(或人天等)进度(schedule)各软件工作产品和活动开始和结束的时间质量(quality)-缺陷(defect)在各软件工作产品和活动中产生的缺陷数软件度量分类-规模度量规模度量-SRS文档页数-HLD文档页数-LLD文档页数-代码量(KLOC)-UT用例数-IT用例数-ST用例数-。。。。。。软件度量分类-工作量度量工作量度量:-SRS所用人时数-HLD所用人时数-LLD所用人时数-编码所用人时数-测试(UT、IT、ST)计划所用人时数-测试(UT、IT、ST)方案所用人时数-测试(UT、IT、ST)用例所用人时数-测试(UT、IT、ST)执行所用人时数软件度量分类-进度度量进度度量:-SRS阶段开始时间、结束时间-HLD阶段开始时间、结束时间-LLD阶段开始时间、结束时间-编码阶段开始时间、结束时间-测试(UT、IT、ST)计划阶段开始时间、结束时间-测试(UT、IT、ST)方案阶段开始时间、结束时间-测试(UT、IT、ST)用例阶段开始时间、结束时间-测试(UT、IT、ST)执行阶段开始时间、结束时间软件度量分类-缺陷度量缺陷度量:-SRS评审发现缺陷数-HLD评审发现缺陷数-LLD评审发现缺陷数-编码评审发现缺陷数-UT发现缺陷数-IT发现缺陷数-ST发现缺陷数其他度量指标根据基本度量数据可以分析,综合得到其他度量数据或指标•缺陷密度-研发活动发现缺陷密度-研发活动引入缺陷密度-工作产品缺陷密度•生产率-SRS、HLD、LLD阶段文档生产率:页/人天-编码阶段生产率:KLOC/人天-UT、IT、ST用例设计阶段生产率:用例/人天•测试执行效率:执行用例数/人天•用例密度:用例数/KLOC•。。。。。。例子某软件开发项目的质量目标与实际结果:目标实际•生产率LOC/人月200500•复用率30%25%•系统测试时无错模块%9060•缺陷/每页(需求评审时)10•缺陷/每页(概要设计评审时)0.70•缺陷/每千行代码代码评审100编译1528例子目标实际•缺陷/每千行代码单元测试516集成测试0.56.2系统测试0.26.2•评审(review)速率设计行数/小时1730代码行数/小时27131例子目标实际•审查(inspection)速率需求页数/小时14概要设计页数/小时15详细设计页数/小时935代码行数/小时82362
本文标题:软件质量模型
链接地址:https://www.777doc.com/doc-446570 .html