文档库 最新最全的文档下载
当前位置:文档库 › 软件质量的度量

软件质量的度量

软件质量的度量
软件质量的度量

软件质量的度量

摘要:随着软件的复杂性日益增长,软件开发的周期以及费用也日益增长,软件质量的保证与提高越来越成为了人们高度重视的问题。软件质量的度量的理论和研究也随之发展起来,好的度量模型和标准能够有效地提高软件开发效率和软件质量。本文主要介绍软件质量的概念和度量模型以及软件质量度量的方法,并对未来的发展趋势做一些展望。

关键词:软件质量、度量模型、发展趋势、软件质量度量

0.引言

在过去几十年里,因为软件的质量问题而导致整个系统发生失效的事例屡见不鲜,进而给人类生命安全和环境造成了巨大的损失。美国IBM公司于1963年~1966年开发的IBM360系列机的操作系统。该软件系统花了大约5 000人一年的工作量,最多时,有1000人投入开发工作,写出近100万行的源程序。尽管投入了这么多的人力和物力,得到的结果却极其糟糕。而在1996年6月,在阿丽亚娜5号火箭首次发射后不到一分钟的时间内,就因为软件故障问题致使火箭发生了爆炸,导致了巨大的经济损失和相应计划的延迟。因此软件的质量问题已引起了人们的极度重视,软件质量的度量问题自然也得到重视。

由于计算机技术、数据融合技术、网络技术和通信技术的飞速发展,人们对软件性能及功能提出的要求也越来越高,度量软件质量已成为一个迫切需要解决的问题。如何通过选择合适的软件质量指标体系、确定软件质量的量化过程和方法来进行客观性地度量,对于评价软件的质量是关键的一步,进而对于减少软件失效的发生和提升软件的总体质量也是具有极其重要的意义。

1.软件质量的理论基础

1. 1 软件质量的定义

至今为止,软件质量还没有一个统一的、惟一的定义,不同的组织或应用可能会有不同的定义。ANSI/IEEE Std 729—1983定义软件质量为:与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体;M.J.Fisher给出的定义为:表征计算机软件卓越程度的所有属性的集合。不同的人从不同的角度来看软件质量问题,会有不同的理解。从用户的角度看,质量就是满足客户的需求;从开发者的角度看,质量就是与需求说明保持一致;从产品的角度看,质量就是产品的内在特点;从价值的角度看,质量就是客户是否愿意购买。概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。

1. 2 软件质量引出的问题

M.J.Fisher定义软件质量为“所有描述计算机软件优秀程度的特性的组合”。也就是说,为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合,作为在软件开发与维护中的重要考虑因素。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。

软件质量反映了以下三方面的问题:

(1)软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。

(2)规范化的标准定义了一组开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。

(3)往往会有一些隐含的需求没有显式地提出来。如软件应具备良好的可维护性。如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也不能保证。

软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不同。因此,有必要讨论各种质量特性,以及评价质量的准则,还要介绍为保证质量所进行的各种活动。

1. 3 软件质量度量模型

软件的质量由一系列质量要素组成,每一个质量要素又由一些衡量标准组成,每个衡量标准又由一些量度标准加以定量刻划。质量度量贯穿于软件工程的全过程以及软件交付之后,在软件交付之前的度量主要包括程序复杂性、模块的有效性和总的程序规模,在软件交付之后的度量则主要包括残存的缺陷数和系统的可维护性方面。

勃姆(Barry W. Boehm) 在《软件风险管理》(Software Risk Management) 中第一次提出了软件质量度量的层次模型。而麦考尔(McCall) 等人将软件质量分解至能够度量的层次,提出FCM 3 层模型( 参见下表) :软件质量要素(factor) 、衡量标准(criteria) 和量度标准(metrics) ,包括11 个标准,分为产品操作(product operation) 、产品修正(product revision) 和产品转移(product transition) 。

层级名称内容

第一层质量要素:描述性和评价软件

质量的一组属性。功能性、易用性、可靠性、可维护性、可移植性等质量特性以及将质量特性细化产生的副特性

第二层衡量标准:衡量标准的组合,

反应某一软件质量要素。精确性、稳健性、安全性、通信有效性、处理有效性、设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件系统无关性、软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、结构性、文件完备性等

第三层量度标准:可由各使用单位自

定义根据软件的需求分析、概要设计、详细设计、编码、测试、确认、维护与使用等阶段,针对每一个阶段制定问卷表,以此实现软件开发过程的质量度量。

表1 软件质量度量FCM模型

其中,可以简单地描述使用缺陷密度(缺陷数量/软件规模)、缺陷检出率(某阶段当时发现的缺陷/该阶段的全部缺陷100%)、发布前缺陷去除率(发布前发现的缺陷/(发布前发现的缺陷软件运行的前3个月发现的缺陷)100%)、潜在缺陷数((100% 发布前缺陷去除率) 缺陷密度)、平均失效时间(软件持续运行时间/缺陷数量)、平均修复时间(∑缺陷修复时间/缺陷数量)等作为产品质量的指标。

在软件质量度量活动中,同样需要建立一条性能基线,作为软件产品的质量、软件测试性能评估的起点,并作为对系统评估是否通过的标准。缺陷评测的基线是对某一类或某一组织的结果的一种度量,这种结果可能是常见的或典型的,如10 000行源程序(LOC)是程序规模的一个基准,每一千行代码有3个错误是测试中错误发现率的基准。基准对期望值的管

理有很大帮助,目标就是相对基准而存在,也就是定义可接受行为的基准,如表3所示。

条目目标低水平缺陷清除率>95% <70%

缺陷密度每个功能点<4 每个功能点>7

超出风险之外的成本0% >=70%

全部需求功能点<1% 每月平均值>=50%

全部程序文档每个功能点页数<3 每个功能点页数>6

表3 某个软件项目质量的基准和目标

ISO 9126将软件质量总结为6大特性每个特性包括一系列副特性其软件质量模型包括3层,即高层:软件质量需求评价准则(QSRC);中层:软件质量设计评价准则(SQDC);低层:软件质量度量评价准则(SMQC)。

凯悦(Lawrence E.Hyatt)和罗森贝克(Linda H. Rosenberg)在《识别项目风险以及评价软件质量的软件质量模型与度量》(A Software Quality Model and Metrics for Identifying Project Risks and Assessing Software Quality)中比较了这3种最常用的软件质量模型,其基本情况如下表所示。

度量标准/目标麦考尔勃姆ISO 9126,1993

正确性(Correctness)X X 可维护性

可靠性(Reliability)X X X

完整性(Integrity)X X

可用性(Usability)X X X

效率性(Efficiency)X X X

可维护性(Maintainability)X X X

可测试性(Testability)X X 可维护性

互操作性(Interoperability)X

适应性(Flexibility)X X

可重用性(Reusable)X X

可移植性(Portability)X X X

明确性(Clarity)X

可变更性(Modifiability)X 可维护性

文档化(Documentation)X

恢复力(Resilience)X

易懂行(Understandability)X

有效性(Validity)X 可维护

功能性(Functionality)X

普遍性(Generality)X

经济性(Economy)X

表2 三种软件质量模型之比较

2. 软件质量的度量

2. 1 软件质量度量过程

软件的度量过程主要可以分为五个步骤进行:

(1)确定软件的质量度量需求。这一步是软件质量度量最为前提和基础的一步,主要活动包括设计可能的质量因素集合,优化并确定这一因素集合和建立软件质量模型。 (2)确定软件质量度量元。这是软件度量过程较为关键的一步,度量元选取的好坏直接影响着质量评估的结果。首先在基于软件质量度量框架的基础之上,将质量特性分解成度量元;继而执行度量元的成本效益分析,根据其结果调整优化已选度量元集合。

(3)执行软件质量度量。包括定义度量数据收集过程并且收集数据、根据已有数据计算度量值等环节。需要注意的是,采集的数据应该基于正确定义的度量和模型,从而保证数据的正确性、准确性和精度;因此,在收集数据之前,应当设定数据采集的目标,并且定义有意义的问题。

(4)分析软件质量度量结果。通过分析比较收集的度量数据与目标值,发现两者之间的区别。确定那些不可接受的度量值,详细分析那些数值偏离关键值的度量元并依据分析结果重新设计软件质量度量。

(5)软件质量度量的验证。验证的目的就是为了证明通过软件产品和过程度量可以预测具体的软件质量因素值。验证的过程中,在运用相关的验证方法和标准的前提下,必须确定软件质量因素样本和度量样本,然后执行对度量的统计分析,检验度量的作用是否实现。整个具体过程如图1所示。

图1 软件质量度量过程示意图

2. 2 软件度量的验证与预测

在软件开发和维护的过程中,定量地评价软件的质量,必须对软件质量特性进行度量,

以测定软件具有要求质量特性的程度。

软件质量特性度量有两类:预测型和验收型。 预测度量是利用定量的或定性的方法,对软件质量的评价值进行估计,以得到软件质量的比较精确的估算值。它是用在软件开发过程中的。而验收度量则是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它可以看成是对预测度量的一种确认,是对开发过程中的预测进行评价。

预测度量有两种。第一种叫做尺度度量,这是一种定量度量。它适用于一些能够直接度量的特性,例如,出错率定义为:错误数/KLOC /单位时间。一般它作为相对量进行度量。第二种叫做二元度量,这是一种定性度量。它适用于一些只能间接度量的特性,例如,可使用性、灵活性等等。通常,对质量特性制定检查表,通过对照检查项目,确定一种质量特性的有无。例如,在设计和编码阶段的复杂性度量,利用尺度度量方法来做。而对模块复

执行度量

确定产品、过程中的问题

选择和定义度量

数据采集 数据分析 决策支持

杂性的度量采用Mc—Cabe环路度量。基本思想是基于程序的分支、循环、顺序等摔制结构来估算模块中的结构上的复杂性,其检查表;给出了评价设计文档是否完备的检查表,这是二元度量的例子。我们对检查表中每一项都应给以记分,指定信息存在时记“1”,否则记“0”。表中所有各项的分数相加,即得度量结果。

2. 3 软件质量度量的方法

(1)面向结构度量方法

较早出现的度量是建立在结构化程序设计和模块化思想基础上的,分析的对象包括程序的控制流图,实现中的操作复杂性,方法间的传递耦合和流程耦合等。其中影响比较大的有McCabe 提出的循环计数复杂度度量,直到今天历经改进,仍然被实践者所采纳。McCabe 1976年提出了环形复杂度(cyclomatic complexity)理论,该理论以图论为基础,通过分析程序的控制流图来获得程序的复杂度,为度量程序逻辑复杂性提供了一种很好的方法。

(2)面向软件复用的度量

20世纪90年代后期,软件复用的研究兴起。复用的度量主要包括可复用性度量和复用度量。可复用性度量主要用来判定一个构件的可复用性和质量,复用度量主要用于判定复用对生产率、质量和开发时间的作用,它可以在不同级别上进行度量,包括构件级、产品族级、项目级和机构级。目前面向复用的度量大致可分为以下4大类:经济模型类、成熟度模型、复用比率模型以及复用潜力度量模型。

(3)面向对象度量方法

软件度量进一步作的开展主要在80、90年代,尤其是在90年代,软件度量的研究获得了空前的发展。1989年,Morris研究讨论了面向对象应用程序的度量,Bieman讨论了在面向对象条件下软件重用的度量问题。1993年中国台湾学者J-Y Chen和J-F Liu提出chen liu 方法,从操作性、复杂性、重用性、类的属性等八个方面去度量面向对象软件。1994 年Chidamber和Kemerer发表论文对面向对象度量提出了基于继承树的一套面向对象度量方法被称为C K度量方法,主要用来量度与对外部质量属性的影响有关的面向对象设计的复杂性。1995年,brito等人针对面向对象属性提出的一套称之为MOOD的度量算法集,它从封装性、继承性、耦合性和多态性等四个方面给出了面向对象软件六个度量指标。1998年,Nesi和Querci提出了一种新的软件复杂度和大小度量方法。

到了2000年,Arlene F提出一种预测点度量方法,这种方法基于对象和他们的特征,建立一种适合预测工作量和跟踪生产力的方法,核心是每类加权方法数(Weighted Methods per Class WMC)。2001年,Victor和Daily提出了一种基于构件点的度量方法叫SPECTRE 的方法,用于预测开发任务时间和模块规模。2003年,Washizaki等提出了一种可重用组件的度量方法,用于度量面向对象组件的易理解性和可重用性。同年,Hastings和Sajeev 介绍了一种新的Vector Size Measure(VSM)方法,用于在软件生命周期的早期度量软件规模,软件分类,软件开发结果等。2005年Gyimothy等提出一种基于经验的面向对象度量方法,该方法能有效地实现对源码的bug预测度量。同年,Del Bianco 等采用经验断言的方法,扩展了功能点度量方法,并将其应用到面向对象度量中。

3. 实例分析

案例:CSK株式会社的功能点分析案例

【CSK株式会社的CSFPA概述】

在实施CSFPA之前,CSK以Step数方法来估算开发规模。但是在利用VB、C++、Java、SQL等语言的项目开发中,用Step数方法进行规模估算比较困难。为了以定量化手段降低甚至消除估算错误,CSK在IFPUG(International Function Point Users Group)的FP法的基础上加以改良开发出自身的CSFPA(CSK Simplified Function Point Analysis)法,并在企业内加以实施。CSK于1995年加入IFPUG组织,并于1998年开始正式开展活动。CSFPA改良的两点是:增加了度量要件定义等上游工程的简易测量功能;避免使用人为因素太强的调整系数。CSFPA法适用体制在项目估算时的FP度量、项目完成时的FP度量、实际数据的收集、统计分析、工数模型化、质量指标化等方面具有CSK特有的方式,CSK在该方法的教育与培训、模型构筑、估算·质量计划的适用、结果评价·差异分析等方面取得了良好的绩效。

【CSFPA法的估算步骤】

CSFPA法与IFPUG法的估算步骤有所不同,二者的相似点以及不同点请参照图2。

图2 CSFPA功能点估算步骤

【CSFPA法的推广运用】

为了普及和适用CSFPA,CSK在企业内设立由多名专任人员组成的事务局,推进方法的定义以及维护、管理、员工教育、度量支援、数据收集、统计分析、数据利用等。下面对CSFPA的适用体制加以介绍。

项目估算时的FP度量。在估算时度量软件规模,通过适用相应的工数模型测算预计工数,以此作为制定日程的根据。CSFPA的工数模型以开发的全过程为对象,按照项目的开发范围进行估算,将式样、品质、技术的对应要件作为变动要素对此加以调整。

项目完成时的FP度量。在项目完成阶段对FP数、使用环境、技术、工数以及质量信息等几十个项目加以记录,比较估算时的FP数并进行差异分析,以提升度量精度和模型有效性。

实际数据的收集。将度量的实际数据剃除异常点后纳入数据库,并加以分析,然后向全企业公开。这种标本数据已经超过400件。由于FP度量过程中由于度量者的不同可能导致较大的误差,事务局还面向经验甚浅的度量者提供现场支持,验证度量结果的妥当性,提高度量的精度。另外,还与其他企业所提供的数据进行比较验证,持续收集数据。

统计分析。对于收集起来的数据,还需要考虑到项目特性的差异并加以分析。作为分析的界限,CSK建立了包括约50种类型(可视化工具类开发、Web类开发、维护的主框架开发等)的数据库,并对各自包括工数在内的10种以上的项目和FP值实施相关分析。

工数模型化。CSK将FP数和工数的关系称之为“工数模型”,现在已经拥有可适用的6种工数模型。这些模型与实际数据的收集相配合,实施差异分析,持续提升估算精度。

质量指标化。与工数模型一样,CSK将FP数和质量数据(缺陷、问题等)之间的相关关系作为质量模型加以提供。通过定义经由质量模型获得的指标,并与现存的指标相结合,构筑综合性的质量指标。

【CSK推进FP法的经验总结】

度量方法的教育与渗透——启蒙。要使用FP法进行度量,当然需要了解度量规则。CSK在其“项目管理研修”这一体制中,对企业员工实施教育,讲解FP法的定位、概要、使用方法,进行度量演习,让企业员工掌握FP法。

模型构筑——提升估算精度的路径。要使用各种模型提升估算的精度,需要度量项目特性以及仔细检查数据。CSK通过现场调研和支援活动,积累起专业知识和技能,并对技术、式样、质量方面的特性信息加以整理,构筑适合CSK的估算模型,提高估算精度。

估算:质量计划的适用——制定适当而正确的计划。构筑起来的模型在实际提案的时候作为估算的根据或者在产品的质量计划制定过程中适用。在模型不断适用的情况下,这些模型的适用实例也就逐渐丰富起来。

结果评价:差异分析——取得反馈信息至更高水平的运用。项目开发过程中,变更点管理以及计划与实绩的差异分析非常重要。在这个过程中,需要获得适当的反馈信息,在把握复杂的项目状况的同时需要灵活应对这些变更和反馈。CSK在这方面也在积极运作并在整个企业内展开。

4. 展望

毫无疑问,软件度量是提高软件品质的一个重要方法。只有通过软件度量,才能确定软件产品所具有的属性组合与所希望的符合程度。Dieter Rombach,曾在巴黎说到过(现在他在美国软件工程实验室(SEL)工作):我们现在不再是问我们是否应该度量,而是怎么样度量。尽管过去软件度量领域做了许多的研究,但还有许多问题未解决。

首先,目前还没有成熟的度量方法,大多度量方法适用性不强,且有些还存在着度量过程

客观性差,度量结果不准确的问题。

其次,国际上还没有统一的软件度量标准,很多标准针对的范围比较小,并不能满足软件

质量度量的整体要求。

将来,理论开发(对现实的假定)变得越来越重要,相关和归约分析需要考虑讨论度量比例,外部变量对软件度量验证确认是未来需要研究的课题。利用测量理论的公理有助于更好理解软件品质和成本估计后潜在的内容;同时,针对现有问题进行深入的研究和分析,探求符合需

要的理论方法和开发工具将对未来度量领域的发展起到重要的促进作用。

5. 学习心得总结

学号姓名学习心得

在此次的小论文书写中,我学习到了软件质

量的度量对于软件工程这门学科是一个关键的部

分。一个软件的质量好与坏由许多因素决定,缺

陷是肯定会有的。我们要做的是怎么使得软件的

缺陷的最少化,让软件的运行效率最大化。这就

要求我们对软件开发和维护的每个过程都要熟

悉,不断的做评估和修改,然后及时的做出决策。

08212155103 王云而软件质量的度量的发展使得我们有模型和度量

方法对软件质量的评估有了一个量化。这样我们

可以根据标准进行决策,使得软件开发和维护的

效率提高,及时发现软件存在的缺陷。同时在这

一次小论文的书写过程中,也让我对软件工程有

了更深的认识。软件工程在介绍软件开发和维护

过程中,也在灌输着我们一种设计的理念和团队

合作的意识。我会在以后的生活和学习中,好好

地培养自己的设计理念和团队合作的意识。

08212155101 毕娜娜

之前,道听途说来的关于答辩的种种情节让们有点很是忐忑不安。担心从没有合作过的我们几人是否能将这次的软件工程论文很好完成,害怕要是我们遇到同个问题发生歧义了怎么办,甚至我想我们肯定答不好辩。可在我们一次次的讨论,争论,分析后,发现问题,最后在大家的共同努力下,我们相互理解了,包容了,共识了,便是解决问题最有效最实际的方法。在这里我要感谢组长对这个论文的指导,也感谢老师给我们的这次机会,使我对软件工程有了充分的了解,懂得如何通过选择合适的软件质量指标体系、确定软件质量的量化过程和方法来进行客观性地度量。虽然课程结束了,但我们依然还会继续学习软件工程,以后我将充分利用所学到我实际的项目中。在这次完成论文后我们懂得了:道路虽是曲折,但团结就有力量获得最后胜利并且我们充分感受到了团队合作精神的重要性,大家在一起互相讨论,互相学习,才使我们成功的做出了这个软件工程论文。

08212155137 熊非非

通过这次小组的讨论和学习,让我对软件质量有了进一步的了解,其中软件的质量由一系列质量要素组成,每一个质量要素又由一些衡量标准组成,每个衡量标准又由一些量度标准加以定量刻划,然而软件质量的度量又要经过一系列的模型建立分析对起进行测试,最终才能确定该软件的质量的好坏。同时,我们这组讨论后还给出了软件质量的验证与预测,通过这些方法的解析,让我对软件质量这方面有了新的认识和了解。然而这次的讨论和学习也让我知道了软件工程的重要性,知道软件的开发的复杂性。在小组讨论中也知道我们的论文还存在不足之处,但我们将会在以后的学习和生活中努力克服和解决。

家里要买电视机,一定要物比三家,找一个质量好的。那么什么是质量好呢?这就必须进行各种检测,以找出各种电视机的画面是否清晰、

08212155143 潘旭东用电如何、寿命长短等等。软件也是如此,一个软件在编写完成后,也必须进行质量的各种检测,这就是软件质量度量。

随着计算机应用领域的迅速扩大,计算机软、硬件新技术的不断涌现,人们对软件质量提出了更高的要求。所以我们小组选择了软件质量度量这篇课题,很具有意义。

我们进行了为期一周的论文设计。通过这次论文设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。安排论文设计的基本目的,在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟。尤其是观察、分析和解决问题的实际工作能力。对我们信息与计算科学专业的学生来说,实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过论文设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。在论文设计期间,我们小组不断讨论,发现问题,解决问题,加强了我们团队合作的能力。

在论文完成之后,我们普遍感到不仅实际动手能力(查资料、整理文档等)有所提高,更重要的是通过对软件质量度量的了解,进一步激发了我们对专业知识的兴趣,并能够结合实际存在的问题进行更深入的学习。软件质量度量的论文已完成,但我对于软件工程的学习才刚刚开始。

最后,感谢老师的辛勤教育,也谢谢我们小组成员的辛苦工作!

08212155129 余宗红随着信息化产业的发展,人们对软件质量的要求越来越高。这样软件质量的度量就越来越重要了,在这次论文讨论过程中,我学习到了许多关于软件质量度量方面的知识,也知道了软件质量的度量对软件开发的重要性,对软件工程这门课有了一个深的认识,认识到软件质量度量在软件开发过程中是一个不可或缺的部分,它能提高软件开发及其维护的效率,以及发现一些软件BUG等。我们组在合作的情况下完成了这篇论文,让我们认识到团队合作的重要性,任何时候都离不开团队的合作,偶尔的一些讨论能让我们收获很大,今后的学习中我们仍然离不开团队合作。

6. 参考文献

[1]. 程诺,万琳,张威.基于量化指标分析的软件质量度量方法[J].北京化工大学学报,2007,34.

[2]. 郭英军,曾一,程全良,封卫.一种软件过程质量的度量方法[J].计算机工程与应用,2008(9).

[3]. 梅宏,谢涛,袁望洪,等.青鸟构件库的构件度量[J].软件学报,2000(11).

[4]. 段云亭.介绍一种软件质量度量方法[J].信息系统工程,1991(1).

[5]. 罗建军.C++程序设计教程.北京:清华大学出版社,2002.

[6]. 张海藩.软件工程(第二版).北京:人民邮电出版社,2006.

[7]. 王少峰.面向对象技术UML教程.北京:清华大学出版社,2004.

[8]. 张湘辉等.软件开发的过程与管理.北京:清华大学出版社,2005.

软件评价指标

软件评价指标 Last updated at 10:00 am on 25th December 2020

我们常说某某软件好用,某软件功能全、结构合理、层次分明。这些表述很含糊,用来评价软件质量不够确切,不能作为企业选购软件的依据。对于企业来说,开发单位按照企业的需求,开发一个应用软件系统,按期完成并移交使用,系统正确执行用户规定的功能,仅仅满足这些是远远不够的。因为企业在引进一套软件过程中,常常会出现如下问题: ● 定制的软件可能难于理解,难于修改,在维护期间,企业的维护费用大幅度增加; ● 企业对外购的软件质量存在怀疑,企业评价软件质量没有一个恰当的指标,对软件可靠性和功能性指标了解不足; ● 软件开发商缺乏历史数据作为指南,所有关于进度和成本的估算都是粗略的。因为没有切实的生产率指标,没有过去关于软件开发过程的数据,企业无法精确评价开发商的工作质量。 为此,有必要先了解软件的质量评价体系。美国的.Boehm和先后提出了三层次的评价度量模型:软件质量要素、准则、度量。随后提出了自己的软件质量度量SQM技术,波音公司在软件开发过程中采用了SQM技术,日本的NEC公司也提出了自己的SQM工具,即SQMAT,并且在成本控制和进度安排方面取得了良好的效果。 第一层是软件质量要素,软件质量可分解成六个要素,这六个要素是软件的基本特征:

1. 功能性:软件所实现的功能满足用户需求的程度.功能性反映了所开发的软件满足用户称述的或蕴涵的需求的程度,即用户要求的功能是否全部实现了。 2. 可靠性:在规定的时间和条件下,软件所能维持其性能水平的程度。可靠性对某些软件是重要的质量要求,它除了反映软件满足用户需求正常运行的程度,且反映了在故障发生时能继续运行的程度。 3. 易使用性:对于一个软件,用户学习、操作、准备输入和理解输出时,所做努力的程度。易使用性反映了与用户的友善性,即用户在使用本软件时是否方便。 4. 效率:在指定的条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度。效率反映了在完成功能要求时,有没有浪费资源,此外"资源"这个术语有比较广泛的含义,它包括了内存、外存的使用,通道能力及处理时间。 5. 可维修性:在一个可运行软件中,为了满足用户需求、环境改变或软件错误发生时,进行相应修改所做的努力程度。可维修性反映了在用户需求改变或软件环境发生变更时,对软件系统进行相应修改的容易程度。一个易于维护的软件系统也是一个易理解、易测试和易修改的软件,以便纠正或增加新的功能,或允许在不同软件环境上进行操作。 6. 可移植性:从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。 第二层是评价准则,可分成22点。包括精确性(在计算和输出时所需精度的软件属性);健壮性(在发生意外时,能继续执行和恢复系统的软件属性);安全性(防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性);以及通信有效

浅析软件质量指标度量

软件质量指标度量 V 1.0 2012.3

目录 1综述 (3) 1.1编写目的 (3) 1.2阅读指南 (3) 2软件质量指标 (4) 2.1需求功能点覆盖率 (4) 2.2用例执行覆盖率 (4) 2.3缺陷修复率(截至于**年*月*日) (5) 2.4缺陷遗留个数(截至于**年*月*日) (5) 2.5缺陷分布统计(模块缺陷率) (5) 2.6缺陷分布统计(严重缺陷率) (6) 2.7缺陷密度及收敛 (7) 3测试过程质量指标 (9) 3.1缺陷探测率 (9) 3.2有效缺陷率 (9) 3.1用例执行效率 (10) 3.2缺陷发现率 (10) 4交付质量指标 (12) 4.1加载回退率 (12) 4.2故障回退率 (12) 5版本说明 (13)

1综述 1.1 编写目的 本文档主要为测试经理、测试组长/测试人员、技术负责人、项目经理、开发人员等提供软件质量、测试质量、交付质量等衡量依据。通过不同指标的目标设定、过程跟踪、结果分析,为当期被测产品的质量提供可参考的数据,也为后续测试提供数据的基础积累,并作为制定方法流程的依据。 1.2 阅读指南 ●软件测试质量指标主要针对研发项目、商务项目被测产品出具数据 度量。 ●测试过程质量指标主要为测试经理、测试组长对测试人员的测试执 行质量出具数据度量。 ●交付质量主要为新需求的交付质量出具数据度量。 三者可单独使用,也可结合使用。

2软件质量指标 2.1 需求功能点覆盖率 【需求覆盖率】:计算测试用例总数之和除以与之一一对应的功能点数之和,主要查看是否有功能点遗漏测试的情况。 【公式】:∑测试用例数(个)/ ∑功能点(个) 说明:用例覆盖需求矩阵,一个需求对应多个功能点。 【数据来源】:《联通集中集团客户业务支撑系统销售管理用户需求说明书》《联通集中集团客户业务支撑系统销售管理需求跟踪矩阵》 【计算结果】需求覆盖率=113/8=14.13 2.2 用例执行覆盖率 【用例执行覆盖率】:计算测试用例执行总数除以与之一一对应的测试数之和,主要查看是否有测试用例执行遗漏或有效的情况。 【公式】:∑执行的测试用例个数(个)/ ∑测试用例个数(个)*100% 【数据来源】:《iSMS测试进度跟踪表》 【计算结果】:用例执行覆盖率=100%

软件度量总结(精)

软件度量总结 这次总结的结构比较简单,就是按照五个章节分别阐述了自己的理解。 一.软件度量的应用范围。 经过这一阶段的学习,我认为想要明白软件度量,首先要分清度量和测量的区别。度量具有前置性,它提供了一种定量研究软件问题的方法;测量具有实时性或后置性,主要集中在给度量提供数据或者处理数据的方法上。由于软件工程强烈的不确定性,使得软件工程的精确测量困难重重,但软件度量主要研究的是可能性的规律,通过概率和统计学的研究,寻找事物内在的规律。其并不具备 1+1=2的特征, 而是研究在多大可能性上这个结论是合理的,因为软件的主体是人,具有概率属性,设备和材料容易度量,但人很难度量。软件度量的主要作用是评估状况、跟踪进展情况、评价产品有效性和改进设计和过程的质量。定性分析可以提供迅速地判断能力,但定性分析终究需要定量分析的验证与支持,否则其结果很可能成为无目之本,出现错误。 软件度量的方法体系主要包括 5个方面:1. 项目度量,目的在于度量项目规模、成本、进度、顾客满意度等,辅助项目管理进行项目控制; 2. 规模度量,主要依靠经验和经验的模型,是决定项目成败的重要原因之一,是估算工作量、成本预算及策划项目进度的基础; 3. 成本度量, 4。产品度量,实质上是软件质量的度量,软件的质量由一系列质量要素组成,每个质量要素又由一些衡量标准组成,主要肚量方法是McCabe 复杂性度量法; 5,过程度量,对软件开发过程的个各方面进行度量,目的在于预测过程的未来属性,减少结果的偏差,主要包括成熟度度量(例如 CMMI, GJB5000A、管理度量(主要包括里程碑管理、风险度量等项目管理度量,审查度量、质量保证度量等质量管理度量,变更控制、版本管理度量等配置管理度量、生命周期度量三个大的方面。 不同层次的人员对软件度量有不同的需求。高级管理人员,如 CEO 、 COO ,关注点在上市时间、客户满意度、费用的节省等商业策略的组成部分上;中级管理层,如部门经理、总监等,则主要关注生产力、成本控制、效率等,他们更多的是着眼于

第3章软件质量与评价

第3章软件质量与评价(软件测试标准) 1、质量的定义 质量是多维的概念,包括:实体、实体的属性和对实体的观点。 GB/T6583-ISO8404(1994版)《质量管理与质量保证术语》对质量的定义是:反映实体满足明确的隐含的需要的能力的特性的总和。 GB/T18905-ISO14598(1999版)《软件工程产品评价》定义: 2、测度与度量 在软件质量中用于测量的一种量化的标度和方法即为“测度”,而名词的“度量”用来指测量的结果。 影响软件质量可分为:可直接测量、间接度量 3、软件质量模型 ○1、McCall(麦考尔)质量模型 三个重要方面:操作特性(产品运行)、承受可改变能力(产品修订)、新环境适应能力(产品变迁)。 McCall等认为,特性是软件质量的反映,软件属性可用做评价准则,定量化地度量软件属性可知软件质量的优劣。 ②Boehm(勃姆)质量模型 提出了分层结构的质量模型,除了用户的期望和需要的概念,与McCall(麦考尔)质量模型相同外,还包括McCall模型中没有的硬件特性。 Boehm(勃姆)质量模型反映了对软件质量的理解,即软件做了用户要它做的;有效地使用系统资源;易于用户学习和使用;易于软件测试与维护。 ③ISO9126质量模型 GB/T16260-1996:六个影响质量的特性:功能性、可靠性、易使用性、效率、可维护性、可移植性;各个子特性(及其定义)要求要背 GB/T16260-1996出发点是软件最大限度地满足用户的明确的和潜在的需求。 国标16260中,在描述外部(内部)效率度量时,给出了若干针对计算机系统时间消耗的定义如下: ①响应时间是指从按动传送键到得到结果为止所需要的时间或响应时间包括处 理时间和传输时间 ②处理时间是指从接受一个消息到送出它的结果之间计算机的历时时间 ③ 周转时间是指从提出要求到得到结果所需要的时间 4、标准的发展 GB/T 16260-1996(ISO9126-1991)《软件产品评价-质量特性及其使用指南》已被两个相关的由多部分组成的标准:GB/T 18905-2002《软件工程产品评价》和GB/T 16260-2003(ISO9126-2001)《软件工程产品质量》所取代。 5、GB/T 18905产品评价 (一、GB/T 18905基本组成(6个部分组成) GB/T 软件工程产品评价第1部分: 概述 GB/T 软件工程产品评价第2部分: 策划和管理 GB/T 软件工程产品评价第3部分: 开发者用的过程

电子装备软件质量评估模型分析

总第243期 2010年第1期 计算机与数字工程 Computer&DigitalEngineering V01.38No.1 44 电子装备软件质量评估模型分析+ 崔天意刘庆峰张芝龙 (91404部队秦皇岛066001) 摘要软件质量是软件的生命,软件测试和评价是保证软件质量的重要手段。没有完备的软件质量评价程序和评价方法,质量是很难保证的。文章提出了一种基于缺陷分布模型、专家知识和神经网络方法的电子装备软件专用的质量评估方法,该方法使用电子装备软件的可靠性评估值、功能分析评估值和作战效能评估指标等专用参数作为模型的输入,利用加权综合评判方法完善模型,最终输出软件质量评估值。经实装测试试验证明了该方法的可行性和有效性。 关键词电子装备软件;神经网络;作战效能;质量评估 中图分类号TP273+.4 ElectronWeaponrySoftwareQualityEvaluationMethod CuiTianyiLiuQingfengZhangZhilong (No91404TroopsofPLA,Qinhuangdao066001) AbstractThesoftwarequalityistheimportanceofthesoftware,softwaretestandevaluationaretheimportantmeanswhichpromisessoftwarequalitBTherearenocompleteevaluationprocedureofthesoftwarequalityandevaluationmethod,thequalityisverydifficultassuring.ThearticleputforwardakindofthesoftwarequalityvaluationmethodfortheelectronbattlesystemaccordingtObugdistributingexperfsknowledgeandnervenetworkThemethodusageelectronweaponrysoft—warebattleeffectetcparameterbetheimportationofmodel.theexploitationaddspowercomprehensiveadjudicateamethodestablishmentmodel.Outputsoftwarequalityvaluation.ThroughactuallypackedatesttOexperimenttOprovethepossibili—ty andusefulnessofthatmethod. Key Wordselectronweaponrysoftware,networkneuron,campaignefficiency,qualityevaluationClassNumberTP273+.4 1引言 在现代各种电子战装备系统中,以软件为核心的产品得到了广泛的应用,随着系统中软件成分的不断增加,使得系统对于软件的依赖程度越来越大,对软件质量尤其是可靠性、可维护性和功能性的要求也越来越高[1]。软件质量是软件的生命,软件测试和评价是保证软件质量的重要手段。没有完备的软件质量评价程序和评价方法,质量是很难保证的。 现役电子战装备软件在通过测试之后,各项技术指标可以达到预定要求,但不一定具有较高的作战效能。即软件技术测试合格的系统仍然不符合实际应用要求。因为软件测试只注重软件本身的故障特性,而忽略了对于装备软件至关重要的软硬件配置拟合度和战术合理性等非技术性指标。例如:软件设计的舰艇机动动作要求舰艇在短时间内转向;多种干扰样式组合导致干扰失败;电磁干扰使软件失效。因此作战效能评估对电子战装备软件质量起决定性作用。 从常规的角度来看,质量是一个无形的特性,可以对其进行讨论、感知和判断,不能进行测量。从专业的角度来看,为了提高质量,必须对其进行定义和测量,并将其描述为“与客户需求的一致 -收稿日期:2009年9月10日,修回日期:2009年10月15日 作者简介:崔天意,男,硕士,工程师,研究方向:作战系统软件测试及软件测试质量研究。万方数据

软件开发度量及考核方法精修订

软件开发度量及考核方 法 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

本人觉得如果要提高软件开发人员的开发质量,必须有相应的考核制度,有了制度后才能推动开发人员想方设法改善自已的开发质量。虽然目前很多公司有这方面的绩效考核,但是大多数没有对软件开发的过程进行细粒度的度量,所以不能依据有效的度量数据来考核开发人员的工作绩效,大部份只是凭考核人主观意志来考核,不能形成对被考核人有效的说服力。以下文档是本人根据以前经验和相关的资料所编写的度量方法和考核方法,希望能对公司改善考核制度有用。由于时间有限,有不足之处,请各位仁兄多提意见,谢谢! 1 目的 对软件开发的过程所产生的软件项的质量和过程进行定量的评价,用评价的结果指导软件的开发过程,不断地提高软件开发质量水平,并依据度量记录来考核软件开发人员的工作绩效。 2 软件项包括 1)技术文档:参照公司"软件工程产品集",所确定的配置项;主要包括:可行性分析报告、需求分析报告、软件功能规格说明、开发计划、质量计划、系统设计报告、测试文档、技术报告、用户手册、总结报告等; 2)计算机程序。 3 度量数据的来源 1)项目计划; 2)评审报告; 3)测试报告; 4)问题报告; 5)软件维护记录; 4 质量度量 度量指标 主要根据各类软件项检查表的检查指标来确定,例如,软件需求规格说明书检查表(见附录1),有10个检查指标,则根据具体项目检查侧重点不同,可从中选择相应的检查指标作为度量指标。 质量等级 1)软件项的质量等级的确定根据度量综合指标进行。 2)度量综合指标计算公式为:Total = ∑QiMi。 3)其中i=1,2,...n代表指标数量; 4)Q代表度量的指标; 5)M代表度量的指标Q在整个指标体系中所占的权重系数,对不同的开发项目可能不同,此系数根据开发的不同着重点给出。 度量指标权重系数表: 序号指标权重 1 指标1 权数1 2 指标2 权数2 3 指标3 权数3 4 指标4 权数4 5 指标5 权数5 加权平均分 6)质量评价:一般地,根据度量综合指标值,有以下评分标准。 质量评价计分标准表 序号得分质量评价 1 ~优质

常见的软件质量模型

常见的软件质量模型 关于软件质量模型,业界已经有很多成熟的模型定义,比较常见的质量模型有McCall 模型、Boehm 模型、FURPS 模型、Dromey 模型和 ISO9126 模型。 ?Jim McCall 软件质量模型(1977 年) ?Barry W. Boehm 软件质量模型(1978 年) ?FURPS/FURPS+ 软件质量模型 ?R. Geoff Dromey 软件质量模型 ?ISO/IEC 9126 软件质量模型(1993 年) ?ISO/IEC 25010 软件质量模型(2011 年) Jim McCall 软件质量模型(1977 年) Jim McCall 的软件质量模型,也被称为 GE 模型(General Electrics Model)。其最初起源于美国空军,主要面向的是系统开发人员和系统开发过程。McCall 试图通过一系列的软件质量属性指标来弥补开发人员与最终用户之间的沟壑。 McCall 质量模型使用 3 中视角来定义和识别软件产品的质量: 1.Product revision (ability to change). 2.Product transition (adaptability to new environments). 3.Product operations (basic operational characteristics).

McCall 模型通过层级的要素、标准和指标来详述这 3 个视角定义(产品修改、产品转移、产品运行)。 ?11 Factors (To specify):描述软件的外部视角,也就是客户或使用者的视角。 ?23 Criterias (To build):描述软件的内部视角,也就是开发人员的视角。 ?Metrics (To control):定义衡量指标和方法 下图中,左侧为 11 个质量要素,右侧为 23 个质量标准。

软件项目量化管理方法

软件项目量化管理方法 摘要:本文在对软件企业量化管理应用常见问题分析的基础上,以解决可操作性、可比性等问题为着眼点,识别出了量化管理中必须明确的四要素,表述了企业在量化四要素上采用的常见做法。 本文采用80/20原则,说明了企业在识别度量对象时应避免的问题;采用持续改进的理论,说明了企业在量化管理应遵循的客观规律。在结合平衡记分卡与目标驱动组合式的量化管理方法理论基础上,提出了软件企业的量化管理的具体应用步骤。 关键词:量化管理四要素80/20原则持续改进GQ(I)M 1. 引言 如今,很多国内软件企业选择采用能力成熟度系列模型(Capa bility Maturity Model, CMM)或其它模型来建立本企业的软件过程规范,欲通过提升软件过程的能力达到提高产品质量、降低开发风险、减少开发成本、保证产品按时交付等目的。将软件过程规范的一个目的就是使软件过程可视化,这个可视化则要求了对软件过程的量化;而产品质量是否提高、开发风险是否降低、开发成本是否减少、项目延期是否缩短,对这些问题的回答则要求了对软件项目的量化;软件过程改进与量化管理息息相关。

不少企业在将识别出的量化管理方法应用于软件项目管理过程时,发现不少问题。最为常见的是: 量化工作的可操作性不强,如:部分量化数据难以收集、难以统计投入的成本没有得到预期的产出。如:量化工作投入了成本,但形成的量化结果参考价值不高提供给管理层用于决策的支持数据也不够,数据缺乏可比性量化结果不是管理层所关心的,达不到管理层预期的过程可视化程度 针对此类问题,本文识别出了在量化管理中必须要考虑的四个方面,即:量化四要素,并从量化四要素对量化管理方法进行了分析,建议了软件企业采用的量化管理方法。 2. 量化四要素 “只有通过对产品、过程的度量,才能描述、评价、提高产品与过程”。 笔者认为,要度量,就要明确度量的对象;要度量对象,就要明确标识度量对象的计量单位;要产生度量结果,就要明确度量方法,包括度量技术和数据收集的方法;要评价度量对象,就要明确用于比对的基准指标,即表征度量对象目前情况的标尺,通过该标尺与度量结果的比对,得出对度量对象的评价。而度量对象(Object)、计量单位(Unit)、度量方法(Method)、基准指标(Benchmark),这就是笔者所说的量化四要素。

如何对软件质量进行评估

如何对软件质量进行评估 1 软件质量的有关概念软件质量是“软件产品具有满足规定的或隐含要求能力要求有关的特征与特征总和”。根据软件质量国家标准GB-T8566--2001G,软件质量评估通常从对软件质量框架的分析开始。1.1 软件质量框架模型如图1所示,软件质量框架是一个“质量特征—质量子特征—度量因子”的三层结构模型。 在这个框架模型中,上层是面向治理的质量特征,每一个质量特征是用以描述和评价软件质量的一组属性,代表软件质量的一个方面。软件质量不仅从该软件外部表现出来的特征来确定,而且必须从其内部所具有的特征来确定。 第二层的质量子特征是上层质量特征的细化,一个特定的子特征可以对应若干个质量特征。软件质量子特征是治理人员和技术人员关于软件质量问题的通讯渠道。 最下面一层是软件质量度量因子(包括各种参数),用来度量质量特征。定量化的度量因子可以直接测量或统计得到,为最终得到软件质量子特征值和特征值提供依据。如何对软件质量进行评估(图一) 图1 软件质量框架模型1.2 软件质量特征 按照软件质量国家标准GB-T8566--2001G,软件质量可以用下列特征来评价: a.功能特征:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。 b.可靠特征:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。 c.易用特征:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属

性。 d.效率特征:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。 e.可维护特征:与进行指定的修改所需的努力有关的一组属性。 f.可移植特征:与软件从一个环境转移到另一个环境的能力有关的一组属性。 其中每一个质量特征都分别与若干子特征相对应。 2 评估指标的选取原则 选择合适的指标体系并使其量化是软件测试与评估的要害。评估指标可以分为定性指标和定量指标两种。理论上讲,为了能够科学客观地反映软件的质量特征,应该尽量选择定量指标。但是对于大多数软件来说,并不是所有的质量特征都可以用定量指标进行描述,所以不可避免地要采用一定的定性指标。 在选取评估指标时,应该把握如下原则: a.针对性 即不同于一般软件系统,能够反映评估软件的本质特征,具体表现就是功能性与高可靠性。 b.可测性 即能够定量表示,可以通过数学计算、平台测试、经验统计等方法得到具体数据。 c.简明性 即易于被各方理解和接受。 d.完备性 即选择的指标应覆盖分析目标所涉及的范围。 e.客观性 即客观反映软件本质特征,不能因人而异。 应该注重的是,选择的评估指标不是越多越好,要害在于指标在评估中所起的作用的大小。假如评估时指标太多,不仅增加结果的复杂性,有时甚至会影响评估的客观性。指标的确定一般是采用自顶向下的方法,逐层分解,并且需要在动态过程中反复综合平衡。 3 软件质量评估指标体系

三种常见质量模型的对比

常见软件质量模型的对比 J. A. McCall等人将质量模型分为三层:因素、衡量准则、度量,并对软件质量因素进行了研究,认为软件质量是正确性、可靠性、效率等构成的函数,而正确性、可靠性、效率等被称为软件质量因素,或软件质量特征,它表现了系统可见的行为化特征。每一因素又由一些准则来衡量,而准则是跟软件产品和设计相关的质量特征的属性。例如,正确性由可跟踪性、完全性、相容性来判断;每一准则又有一些定量化指标来计量,指标是捕获质量准则属性的度量。McCall认为软件质量可从两个层次去分析,其上层是外部观察的特性,下层是软件内在的特性。McCall定义了11个软件外部质量特性,称为软件的质量要素,它们是正确性、可靠性、效率、完整性、可使用性、可维护性、可测试性、灵活性、可移植性、重复使用性和连接性。同时,还定义了23个软件的内部质量特征,称之为软件的质量属性,它们是完备性、一致性、准确性、容错性、简单性、模块性、通用性、可扩充性、工具性、自描述性、执行效率、存储效率、存取控制、存取审查、可操作性、培训性、通信性、软件系统独立性、机独立性、通信通用性、数据通用性和简明性,软件的内部质量属性通过外部的质量要素反映出来。然而,实践证明以这种方式获得的结果会有一些问题。例如,本质上并不相同的一些问题有可能会被当成同样的问题来对待,导致通过模型获得的反馈也基本相同。这就使得指标的制定及其定量的结果变得难以评价。 Boehm模型是由Boehm等在1978年提出来的质量模型,在表达质量特征的层次性上它与McCall模型是非常类似的。不过,它是基于更为广泛的一系列质量特征,它将这些特征最终合并成19个标准。Boehm提出的概念的成功之处在于它包含了硬件性能的特征,这在McCall模型中是没有的。但是,其中与McCall模型类似的问题依然存在。 ISO9126质量模型主要从三个层次来分析即内部质量,外部质量和使用质量,这三者之间都是互相影响互相依赖。其中内在质量和外在质量的六个特征,它们还可以再继续分成更多的子特征。这些

软件质量评估概念

软件质量评估 1 软件质量的有关概念 软件质量是“软件产品具有满足规定的或隐含要求能力要求有关的特征与特征总和”。根据软件质量国家标准GB-T8566--2001G,软件质量评估通常从对软件质量框架的分析开始。 1.1 软件质量框架模型 如图1所示,软件质量框架是一个“质量特征—质量子特征—度量因子”的三层结构模型。 在这个框架模型中,上层是面向管理的质量特征,每一个质量特征是用以描述和评价软件质量的一组属性,代表软件质量的一个方面。软件质量不仅从该软件外部表现出来的特征来确定,而且必须从其内部所具有的特征来确定。 第二层的质量子特征是上层质量特征的细化,一个特定的子特征可以对应若干个质量特征。软件质量子特征是管理人员和技术人员关于软件质量问题的通讯渠道。 最下面一层是软件质量度量因子(包括各种参数),用来度量质量特征。定量化的度量因子可以直接测量或统计得到,为最终得到软件质量子特征值和特征值提供依据。 1.2 软件质量特征 按照软件质量国家标准GB-T8566--2001G,软件质量可以用下列特征来评价: a.功能特征:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。 b.可靠特征:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。 c.易用特征:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。 d.效率特征:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。 e.可维护特征:与进行指定的修改所需的努力有关的一组属性。 f.可移植特征:与软件从一个环境转移到另一个环境的能力有关的一组属性。 其中每一个质量特征都分别与若干子特征相对应。

5个常用的软件质量指标

5 个常用的软件质量指标 在软件开发中,软件质量是衡量软件是否符合需求、标准的重要体现。除了代码质量外,影响软件整体质量的因素还有很多。因此,要确保软件的整体质量,就需要在各个环节严格控制。 本文列出了衡量软件质量的5个最常用的指标。 1、SLOC(Source Lines of Code,源代码行) 计算代码行数可能是最简单的衡量指标,主要体现了软件的规模,并为项目增长和规划提供了相关数据。例如,如果每月统计一次代码的行数,就可以绘制一个项目发展概览图。当然,由于存在项目重构或是设计阶段等因素,这种方式并不太可靠,但是可以为项目的发展提供一个视角。 可以只统计逻辑代码行(Source Logical Line of Code,SLLOC),这样可以获得稍准确的信息。逻辑代码行不包含空行、单个括号行和注释行。可以使用Metrics 工具来统计。 代码行数不应该用来评估开发者的效率,否则,可能会产生重复、不可维护的或不专业的代码。 2、每个代码段/模块/时间段中的bug数 要想实现更好的测试以及更高的可维护性,bug 跟踪是必不可少的。每个代码段、模块或时间段(天、周、月等)内的 bug 可以很容易通过工具统计出来(如 Mantis)。这样,可以及早发现并及时修复。 Bug 数可以作为评估开发者效率的指标之一,但必须注意,如果过分强调这种评估方法,软件开发者和测试者可能会成为敌人。在生产企业中,要保证员工彼此之间的凝聚力。 为了更好的实现评估,可以根据重要性和解决成本将 bug 划分为低、中、高三个级别。 3、代码覆盖率 在单元测试阶段,代码覆盖率常常被拿来作为衡量测试好坏的指标,也用来考核测试任务完成情况。可以使用的工具也有很多,如 Cobertura 等。 代码覆盖率并不能代表单元测试的整体质量,但可以提供一些测试覆盖率相关的信息,可以和其他一些测试指标一起来使用。 此外,在查看代码覆盖率时,还需注意单元测试代码、集成测试场景和结果等。

软件质量度量指标v1.0

软件质量指标度量 1综述 (2) 1.1编写目的 (2) 1.2阅读指南 (2) 2软件质量指标 (3) 2.1需求功能点覆盖率 (3) 2.2用例执行覆盖率 (3) 2.3缺陷修复率(截至于**年*月*日) (4) 2.4缺陷遗留个数(截至于**年*月*日) (4) 2.5缺陷分布统计(模块缺陷率) (4) 2.6缺陷分布统计(严重缺陷率) (5) 2.7缺陷密度及收敛 (5) 3测试过程质量指标 (8) 3.1缺陷探测率 (8) 3.2有效缺陷率 (8) 3.1用例执行效率 (9) 3.2缺陷发现率 (9) 4交付质量指标 (11) 4.1加载回退率 (11) 4.2故障回退率 (11) 5版本说明 (12)

1综述 1.1编写目的 本文档主要为测试经理、测试组长/测试人员、技术负责人、项目经理、开发人员等提供软件质量、测试质量、交付质量等衡量依据。通过不同指标的目标设定、过程跟踪、结果分析,为当期被测产品的质量提供可参考的数据,也为后续测试提供数据的基础积累,并作为制定方法流程的依据。 1.2阅读指南 ●软件测试质量指标主要针对研发项目、商务项目被测产品出具数据 度量。 ●测试过程质量指标主要为测试经理、测试组长对测试人员的测试执 行质量出具数据度量。 ●交付质量主要为新需求的交付质量出具数据度量。 三者可单独使用,也可结合使用。

2软件质量指标 2.1需求功能点覆盖率 【需求覆盖率】:计算测试用例总数之和除以与之一一对应的功能点数之和,主要查看是否有功能点遗漏测试的情况。 【公式】:∑测试用例数(个) / ∑功能点(个) 说明:用例覆盖需求矩阵,一个需求对应多个功能点。 【数据来源】:《联通集中集团客户业务支撑系统销售管理用户需求说明书》《联通集中集团客户业务支撑系统销售管理需求跟踪矩阵》 【计算结果】需求覆盖率=113/8=14.13 2.2用例执行覆盖率 【用例执行覆盖率】:计算测试用例执行总数除以与之一一对应的测试数之和,主要查看是否有测试用例执行遗漏或有效的情况。 【公式】:∑执行的测试用例个数(个) / ∑测试用例个数(个)*100% 【数据来源】:《iSMS测试进度跟踪表》 【计算结果】:用例执行覆盖率=100%

第3章软件质量与评价(软件测试标准)作业二

第3章软件质量与评价(软件测试标准)作业 (2005年) ●在GB/T17544中,软件包质量要求包括三部分,即产品描述要求、_____(53)____、程序和数据要求。 (53)A.用户文档要求B.系统功能要求C.设计要求说明D.软件配置要求 ●软件内部/外部质量模型中,可移植性不包括_____(54)____子特性。 (54)A.适应性B.共存性C.兼容性D.易替换性 ●《GB/T18905 软件工程产品评价》中确定的通用评价过程包括:___(55)____。 (55)A.确立评价需求、设计评价、执行评价和评估结果 B.确立评价目的、规定评价、设计评价和执行评价 C.确立评价需求、规定评价、设计评价和执行评价 D.确立评价目的、设计评价、执行评价和评估结果 ●GB/T16260-2003将软件质量特性分为内部质量特性、外部质量特性和_____(56)____。(56)A.安全质量特性B.适用质量特性C.性能特性D.使用质量特性 (2006年) ●GB/T16260—2003《软件工程产品质量》规定的软件产品使用质量特性包括___(50)___。 (50)A.适应性、生产率、可靠性、满意度 B.有效性、生产率、安全性、满意度 C.有效性、可靠性、适应性、满意度 D.适应性、适用性、效率、满意度 ●软件可靠性是指在指定的条件下使用时,软件产品维持规定的性能级别的能力,其子特性___(51)___是指在软件发生故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力。 (51)A.成熟性B.易恢复性C.容错性D.可靠性依从性 ●GB/T18905—2002《软件工程产品评价》中确定的通用评价过程包括四个方面,即:确立评价需求,规定评价,设计评价和执行评价,其中有关“规定评价”部分包含的内容有___(52)___。 (52)A.选择度量、建立度量评定等级、确立评估准则: B.指定质量模型、选择度量、建立度量评定等级 C.选择度量、建立度量评定等级、制定评价计划 D.确定产品类型、选择度量、建立度量评定等级 ●GB/T18905-2002《软件工程产品评价》提供了软件产品评价的过程,其中GB/T18905—2002《软件工程产品评价》第五部分评价者用的过程_(53)___。 (53)A.计划获取或复用某个已有的软件产品的组织予以使用 B.对软件产品执行独立评估的评价者使用 C.计划开发新产品或增强现有的产品,以及打算利用他们自己的技术人员进行产品评价的组织使用 D.编制评价模块的文档提供指南 ●关于软件质量的描述,正确的是___(56)___。 (56)A.软件质量是指软件满足规定用户需求的能力 B.软件质量特性是指软件的功能性、可靠性、易用性、效率、可维护性、可移植性C.软件质量保证过程就是软件测试过程 D.以上描述都不对 (2007年)

软件质量度量指标v

软件质量度量指标V ?

作者:日期:

4.1 加载回退率 错误!未定义书签。 软件质量指标度量 错误!未定义书签。 2软件质量指标 2 .1?需求功能点覆盖率?错误 味定义书签。 2 .2?用例执行覆盖率潴误味定义书签。 2 .3?缺陷修复率(截至于**年*月*日)?错误!未定义书签。 2.4?缺陷遗留个数(截至于* *年*月*日)?错误 味定义书签。 27?缺陷密度及收敛 3测试过程质量指标?错误!未定义书签。 3. 1 缺陷探测率 3 .2?有效缺陷率11? 4. 2 故障回退率 1综述 1.1 编写目的?错误!未定义书签。 1.2 阅读指南?错误!未定义书签。 错误!未定义书签。 2 .5?缺陷分布统计(模块缺陷率) 错误!未定义书签。 2.6 缺陷分布统计(严重缺陷率 ) 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 3.1 用例执行效率 错误!未定义书签。 3.2 缺陷发现率12? 4?交付质量指标 错误!未定义书签。 错误!未定义书签。

5?版本说明?错误!未定义书签。 作者:

1综述 1.1编写目的 本文档主要为测试经理、测试组长/测试人员、技术负责人、项目经 理、开发人员等提供软件质量、测试质量、交付质量等衡量依据。通过不同指标的目标设定、过程跟踪、结果分析,为当期被测产品的质量提供可参考的数据,也为后续测试提供数据的基础积累,并作为制定方法流程的依据。 1.2阅读指南 软件测试质量指标主要针对研发项目、商务项目被测产品出具数据度量。 测试过程质量指标主要为测试经理、测试组长对测试人员的测试执行质量出具数 据度量。 交付质量主要为新需求的交付质量出具数据度量。 三者可单独使用,也可结合使用。

软件开发度量及考核方法

软件开发度量及考核方法 一、引言 如果要提高软件开发人员的开发质量,必须有相应的考核制度,有了制度后才能推动开发人员想方设法改善自已的开发质量。虽然目前很多公司有这方面的绩效考核,但是由于软件开发行业的特殊性,大多数公司没有对软件开发的过程进行细粒度的度量,所以不能依据有效的度量数据来考核开发人员的工作绩效,大部份只是凭考核人主观意志来考核,不能形成对被考核人有效的说服力。所以根据以前经验和相关的资料编写了适用于本部门的度量和考核方法。该考核方法是技术支持部软件开发人员和测试人员的试行版本。 二、目的 对软件开发的过程所产生的软件项的质量和过程进行定量的评价,用评价的结果指导软件的开发过程,不断地提高软件开发质量水平,并依据度量记录来考核软件开发人员的工作绩效。 三、考核实施办法 1、定义 1.1 、软件项包括 1)、技术文档:"软件工程产品集"所确定的配置项。主要包括:用户需求文档、需求分析文档、概要设计文档、详细设计文档、开发计划、测试文档、用户手册、总结报告等。 2)、计算机程序。 1.2 、度量数据的来源 1)、项目计划:过程度量中及时度考核数据的主要依据。 2)、测试文档:计算机程序质量考核数据主要依据。 3)、软件维护记录:主要是指软件产品投入用户使用后产生的软件维护记录。

2、质量度量 2.1度量指标 主要根据各类软件项检查表的检查指标来确定。例如,详细设计说明书检查表有10个检查指标,则根据具体项目检查侧重点不同,可从中选择相应的检查指标作为度量指标。(本文末尾附了各工作阶段的考核检查指标表) 2.2质量等级 1)软件项的质量等级的确定根据度量综合指标进行。 2)度量综合指标计算公式为: Total =刀QiMi。 3)其中i=1,2,...n 代表指标数量; 4)Q代表度量的指标; 5)M代表度量的指标Q在整个指标体系中所占的权重系数,对不同的开发项目可能不同,此系数根据开发的不同着重点给出。

软件质量度量分析与研究

龙源期刊网 https://www.wendangku.net/doc/c77071131.html, 软件质量度量分析与研究 作者:余为峰,黄松 来源:《电脑知识与技术》2010年第18期 摘要:随着软件的复杂性日益增长, 软件开发的周期以及费用也日益增长,软件质量的保证与提高越来越成为了人们高度重视的问题。解释了软件质量的概念和质量模型的发展阶段,分析 了软件质量度量的过程以及度量的验证与预测,提出了几种针对软件质量的度量方法,最后对软件质量的度量做了相关的展望。 关键词:软件质量;度量;质量度量模型;度量验证 中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)18-5106-03 Analysis and Research of Software Quality Metrics YU Wei-feng, HUANG Song (Software Test and Evaluation Center for Military Training, Institute of Command Automation, PLA University of Science & Technolog, Nanjing 210007, China) Abstract: As the complexity of software is increasing, the cycle of software development and cost are also increasing. And people have paid more and more attention to the question that how to assure and improve the software quality. This paper not only explains the definition of software quality and developing phases of quality model, but also analyses the process of software quality metrics and validation of quality metrics. At the same time, it introduces several methods of software quality metrics. Finally, related future trends of research in this field is listed. Key words: software quality; metrics; quality metrics model; metrics validation 在过去几十年里,因为软件的质量问题而导致整个系统发生失效的事例屡见不鲜,进而给人类生命安全和环境造成了巨大的损失。20世纪80年代,美国有两个系统,耗资5600万美元的Univac联合航空订票系统和耗资2.17亿美元的高级后勤系统都因在交付使用后发现不满足要求而被迫进行重新研制[1];而在1996年6月,在阿丽亚娜5号火箭首次发射后不到一分钟的时间内,就因为软件故障问题致使火箭发生了爆炸,导致了巨大的经济损失和相应计划的延迟[2]。因此软件的质量问题已引起了人们的极度重视,软件质量的度量问题自然也得到重视。

软件质量国家标准GB(质量管理度量)

软件质量国家标准GB-T8566--2001G,软件质量要素: 1.功能性-与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能.包含: a.完备性-软件功能完整,齐全有关的软件属性. b.正确性-能否得到正确或相符结果或效果有关的软件属性 2.可靠性-在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性.包含: a.可用度-软件运行后在任一随机时刻需要执行规定任务或完成规定功能时,软件处于可使用状态的概率. b.初期故障率-软件在初期故障期(一般为软件交付用户后的3个月)内单位时间(100小时)的故障数. c.偶然故障率-软件在偶然故障期(一般为软件交付用户后的4个月以后)内单位时间的故障数. d.平均失效前时间(MTTF)-软件在失效前正常工作的平均统计时间. e.平均失效间隔时间(MTBF)-软件在相继两次失效之间正常工作的平均统计时间.一般民用软件大体在1,000小时左右. f.缺陷密度(FD)-软件单位源代码(1,000行无注释)中隐藏的缺陷数量.典型统计表明,开发阶段平均50-60个缺陷/千行源码, 交付后平均15-18个缺陷/千行源码. g.平均失效恢复时间(MTTR)-软件失效后恢复正常工作所需的平均统计时间. 3.易用性-由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性.包含: a.易理解性-用户认识软件的逻辑概念及其应用范围所花的努力有关的软件属性. b.易学习性-用户为学习软件(运行控制,输入,输出等)所花的努力有关的软件属性. c.易操作性-用户为操作和运行控制所花的努力有关的软件属性 4.效率性-与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性.包含: a.输出结果更新周期-软件相邻两次输出结果的间隔时间. b.处理时间-软件完成某项功能(辅助计算或决策)所用的处理时间(不含人机交互的时间). c.吞吐量-单位时间软件的信息处理能力(各种目标的处理批数). d.代码规模-软件源程序的行数(不含注释), 属于软件的静态属性 5.可维护性-与进行指定的修改所需的努力有关的一组属性 6.可移植性-与软件从一个环境转移到另一个环境的能力有关的一组属性. 影响软件系统质量的4个关键技术要素 1.技术平台的寿命 2.试运行期 3.对于现有系统的迁移 4.技术扩展

相关文档