`
t641339564
  • 浏览: 26147 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

5 个常用的软件质量指标

阅读更多
在软件开发中,软件质量是衡量软件是否符合需求、标准的重要体现。除了代码质量外,影响软件整体质量的因素还有很多。因此,要确保软件的整体质量,就需要在各个环节严格控制。

本文列出了衡量软件质量的5个最常用的指标。

1.  SLOC(Source Lines of Code,源代码行)

计算代码行数可能是最简单的衡量指标,主要体现了软件的规模,并为项目增长和规划提供了相关数据。例如,如果每月统计一次代码的行数,就可以绘制一个项目发展概览图。当然,由于存在项目重构或是设计阶段等因素,这种方式并不太可靠,但是可以为项目的发展提供一个视角。

可以只统计逻辑代码行(Source Logical Line of Code,SLLOC),这样可以获得稍准确的信息。逻辑代码行不包含空行、单个括号行和注释行。可以使用Metrics工具来统计。

代码行数不应该用来评估开发者的效率,否则,可能会产生重复、不可维护的或不专业的代码。

2.  每个代码段/模块/时间段中的bug数

要想实现更好的测试以及更高的可维护性,bug跟踪是必不可少的。每个代码段、模块或时间段(天、周、月等)内的bug可以很容易通过工具统计出来(如Mantis)。这样,可以及早发现并及时修复。

Bug数可以作为评估开发者效率的指标之一,但必须注意,如果过分强调这种评估方法,软件开发者和测试者可能会成为敌人。在生产企业中,要保证员工彼此之间的凝聚力。

为了更好的实现评估,可以根据重要性和解决成本将bug划分为低、中、高三个级别。

3.  代码覆盖率

在单元测试阶段,代码覆盖率常常被拿来作为衡量测试好坏的指标,也用来考核测试任务完成情况。可以使用的工具也有很多,如Cobertura等。

代码覆盖率并不能代表单元测试的整体质量,但可以提供一些测试覆盖率相关的信息,可以和其他一些测试指标一起来使用。

此外,在查看代码覆盖率时,还需注意单元测试代码、集成测试场景和结果等。

4.  设计/开发约束

软件开发中有很多设计约束和原则,其中包括:


•类/方法的长度
•一个类中方法/属性的个数
•方法/构造函数参数的个数
•代码文件中魔术数字、字符串的使用(魔术数字指直接写在代码中的具体数值,其他人难以理解数字的意义)
•注释行比例等
代码的可维护性和可读性是很重要的,开发团队可以选择以上这些原则中的一个或全部,并通过一些自动化工具(如maven pmd插件)来遵循这些原则,这将大大提高软件产品的质量。

5.  圈复杂度(Cyclomatic Complexity)

圈复杂度是用来衡量一个模块判定结构的复杂程度,已经成为评估软件质量的一个重要标准,能帮助开发者识别难于测试和维护的模块,在成本、进度和性能之间寻求平衡。圈复杂度可以使用pmd工具来自动化计算。

圈复杂度数量上表现为独立路径的条数,即合理的预防错误所需测试的最少路径条数,圈复杂度大说明程序代码可能质量低且难于测试和维护。

计算公式为:V(G) = E - N + 2P

E:边,代表节点间的程序流;
N:节点,程序中代码的最小单元
P:出口节点




上图中共8条边,7个节点,因此圈复杂度为8 - 7 + 2*1=3。这意味着,理论上需要编写3个测试用例来覆盖所有的判定条件。

其实,圈复杂度的计算还有更直观的方法,因为圈复杂度所反映的是“判定条件”的数量,所以圈复杂度实际上就是等于判定节点的数量再加上1,也即控制流图的区域数,对应的计算公式为:V(G)=区域数=判定节点数+1。

在项目开发中,可以根据项目类型,来定义上限数(6、8或10等)。

以上是最常用的5种软件质量度量指标,当然,还可以结合其他的指标,对项目有一个更清晰的认识。
分享到:
评论

相关推荐

    5个常用的软件质量指标.doc

    5个常用的软件质量指标.doc

    华为公司常见软件度量指标.pdf

    华为公司常见软件度量指标.pdf

    软件质量测试标准软件质量测试标准

    软件质量测试标准软件质量测试标准软件质量测试标准

    软件开发项目质量标准范例

    软件开发项目质量标准范例

    软件质量与测试效果考评标准

    软件质量与测试效果考评标准 软件质量与测试效果考评标准 软件质量与测试效果考评标准 软件质量与测试效果考评标准 软件质量与测试效果考评标准 软件质量与测试效果考评标准 软件质量与测试效果考评标准

    软件开发项目各阶段质量标准.xls

    软件开发项目各阶段质量标准.xls

    【软件测试】软件质量标准与测试依据和规范.docx

    【软件测试】软件质量标准与测试依据和规范

    软件测试标准 计算机软件质量保证计划规范

    计算机软件质量保证计划规范 1 主题内容与适用范围 本规范规定了在制订软件质量保证计划时应该遵循的统一的基本要求。 本规范适用于软件特别是重要软件的质量保证计划的制订工作。对于非重要软件或已经开发好的...

    计算机软件质量保证规范

    项目承办单位(或软件开发单位)中负责软件质量保证的机构或个人,必须制订一个包括以下各章内容的软件质量保证计划(以下简称计划)。各章应以所给出的顺序排列;如果某章中没有相应的内容,则在该章标题之后必须...

    一个通用的软件质量评估指标体系 (2015年)

    为确保软件的质量,需要一个系统的软件质量评估指标体系,本文参考了业内软件质量评估指标,并结合多年软件开发和运维经验,设计了一个通用的软件质量评估指标体系,根据此评估体系,我们可以对各种软件的质量进行较系统和...

    《软件质量保证和管理》电子课件之一

    《软件质量保证和管理》(作者:朱少民)电子课件(PPT)业已完成 <br>第1章 质量 第2章 软件质量 第3章 软件质量工程体系 第4章 软件质量控制和保证 第5章 软件配置管理 第6章 软件质量度量 ...

    第5章软件质量标准.pptx

    第5章软件质量标准.pptx

    软件质量保证过程 (SQA) 标准 软件测试

    软件质量保证过程 (SQA) 标准 软件测试 执行标准:包括:计划阶段,需求分析阶段,设计阶段,编码阶段,测试阶段,及系统交付和安装阶段等方面,分别从:各阶段的:目的和范围,进入标准,退出标准.输出,过程描述,验证,配置控制...

    软件质量保证方案

    软件质量保证(SQA-Software Quality Assurance)提供一种有效的人员组织形式和管理方法,通过客观地从过程和产品两个方面评审和审计软件活动的质量,对其是否符合既定的标准进行监督,收集不符合项,及时反馈给项目...

    软件质量经济学.pdf

    第2章阐述了软件质量的估算和度量,介绍了功能点度量指标和结构质量度量指标;第3章讨论了软件缺陷预防,介绍了软件缺陷预防的历史及缺陷预防结果的分析方法;第4章研究测试前缺陷清除,主要讨论了同行评审、正式...

    软件质量的保证与管理

    本文主要运用软件质量保证的原理、方法,阐述软件质量、质量保证、质量控制、质量管理、人员的要求和培养、版本控制和CMM概念的基础上,探讨软件质量管理的特点、内容和方法,软件的质量管理包括对软件产品的管理和...

    软件质量评价标准.docx

    软件质量评价标准.docx

    国家标准软件质量评价

    软件测试的国家标准文件,有两个,是前人总结的经验,不错。

    软件质量保证(SQA)

    软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。Sowhatyoudo,dowhatyousayandproveit. 软件质量保证的目的是使软件过程对于管理...

    软件质量标准IEC61508

    软件质量标准IEC61508~~~英文版。

Global site tag (gtag.js) - Google Analytics