03 软件评测相关标准

Posted on Wed, 25 Dec 2024 17:04:14 +0800 by LiangMingJian


1.软件质量标准

1.1 软件质量的内容

  • 软件质量是软件特性具备能力的体现,指软件满足规定或潜在用户需求的能力。
  • 软件质量主要从内部质量、外部质量、过程质量和使用质量这四个方面来衡量。
  • GB/T 16260 中描述了软件生存周期中的质量,包括产品质量(包括内部质量,外部质量)、过程质量、使用质量。
  • 在软件生存周期中,改进过程质量有助于提高产品质量,而改进产品质量又有助于提高使用质量。同样,评价使用质量可以为改进产品提供反馈,而评价产品则可以为改进过程提供反馈。

1.3 软件质量模型

1.3.1 McCail 软件质量模型

  1. 产品运行:操作特性
  2. 产品修订:承受可改变的能力
  3. 产品变迁:新环境适应的能力

1.3.2 Boehm 质量模型

  • Boehm 模型将用户分为三种,分别为初识用户、将软件移植到其他环境下使用的用户、维护系统的程序员。从系统交付后考虑不同类型用户的要求。
  • Boehm 模型反映了对软件质量的理解,即软件做了用户要它做的,有效地使用系统资源、易于用户学习和使用、易于测试和维护。

1.3.3 ISO 9126 质量模型

  • ISO9126 软件质量模型是一个分层的质量模型,有 6 个影响质量的特性,模型中说明了质量特性及其子特性的关系。
  • ISO9126 软件质量模型的出发点是使软件满足用户明确或潜在的需求,这 6 个特性最大可能的涵盖了其他早期质量模型中的所有因素,并且彼此交叉最小。

1.3.4 ISO 25000 质量模型

  • 产品质量
    • 功能性、效率(性能效率)、兼容性、易用性
    • 可靠性、信息安全性、维护性、可移植性
  • 使用质量
    • 有效性、效率(生产率)、满意度、抗风险、周境覆盖
  • 服务质量
    • 适宜性、可用性、安全性、可靠性
    • 有形性、响应性、适应性、可维护性
  • 数据质量
    • 准确性、完备性、一致性、确实性、现时性
    • 可访问性、依从性、保密性、效率、精度
    • 可跟踪性、可理解性、可用性、可移植性、可恢复性

1.4 软件的产品质量(ISO 9126 )

  • 功能性:软件满足明确和隐含要求功能的能力。
    • 完备性:功能集对指定的任务和用户目标的覆盖程度。
    • 正确性:软件提供具有正确或相符功能的能力。
    • 适合性:软件为用户提供一组合适功能的能力。
    • 功能的依存性:软件产品准许标准,约定或法规的能力。
    • 互操作性:软件与多个系统交互的能力。
    • 安全保密性:软件保护信息和数据的能力。
  • 可靠性: 在指定条件下使用时,软件产品维持规定的性能级别的能力,其局限通常在于软件自身架构。在软件开发过程中,需要在设计阶段进行可靠性设计,在实施阶段进行可靠性评价。
    • 成熟性:软件产品为避免由软件故障导致失效的能力。
    • 可用性:系统、产品或组件在需要使用时能够进行操作和访问的程度。
    • 容错性:在软件出现故障时,不影响性能的能力。
    • 易恢复性:在失效发生的情况下能恢复重建的能力。
    • 可靠性依从性:产品或系统遵循与可靠性相关的标准、约定或法规以及类似规定的程度。
  • 易用性:软件能被理解、学习、使用和吸引用户的能力,不仅针对应用程序测试,还应包括用户手册等文档。
    • 易理解性:软件产品使用户能理解软件是否合适的能力。
    • 易学性:软件产品具备用户学习其应用的能力。
    • 易操作性:软件产品使用户能操作控制的能力。
    • 吸引性:软件产品吸引用户的能力。
    • 易用性依从性:软件产品依附于同易用性相关的标准、约定、风格指南或规定的能力。
  • 效率:在规定条件下,相对于所用资源的数软件产品可提供适当的性能的能力。
    • 时间特性:在规定条件下软件执行功能提供适当的响应和处理时间,吞吐量的能力。
    • 资源利用性:在规定条件下软件执行功能利用资源的能力。
  • 维护性:软件可被修改的能力。
    • 易分析性,可理解性:软件产品诊断缺陷和失效原因的能力。
    • 易改变性,可修改性:软件修改已实现内容的能力。
    • 稳定性:软件避免因修改软件出现故障的能力。
    • 易测试性,可测试性:软件使已修改的内容能被确认的能力。
  • 可移植性
    • 适应性:软件适应不同环境的能力。
    • 易安装性:软件在指定环境中被安装的能力。
    • 共存性:软件在公共环境中与其他一起分享资源的软件的共存能力。
    • 易替换性:软件在同环境下替换另一同用途指定软件产品的能力。
    • 可移植依从性:软件产品依附于同可移植相关的标准、约定、风格指南或规定的能力。

1.5 软件的使用质量(ISO 25000)

  • 有效性:软件产品在指定的使用环境下,使用户获得满足准确度和完整性要求的规定目标的能力。
    • 准确性,完备性。
  • 生产率(效率):软件产品在指定的使用环境下,使用户可使用与获得的有效性有关的合适数量资源的能力。
  • 安全性(抗风险性):软件产品在指定使用环境下,获得可接受的对人类、事务、软件、财产或环境有害的风险级别的能力。
    • 经济风险缓解性、健康和安全缓解性、环境风险缓解性。
  • 满意度:软件产品在指定使用环境下,使用户满意的能力。
    • 有用性、可信性、愉悦性、舒适性。
  • 周境覆盖:软件产品在指定的周境环境中,产品或系统在有效性、效率、满意度、抗风险性方面是否能够被使用的程度。
    • 完备性和灵活性。

1.6 软件的过程质量(评价过程特性)

  • 可重复性:由同一评价者按同一评价规格说明对同一产品进行重复地评价,应产生同一种可接受的结果;
  • 可再现性:由不同评价者按同一评价规格说明对同一产品进行评价,应产生同一种可接受的结果;
  • 公正性:评价应不偏向任何特殊的结果;
  • 客观性:评价结果应是客观事实,不带有评价者的感情色彩或主观意见;

1.7 软件质量的度量标准

  • 由于软件质量的度量标准不同,所以一些软件质量特性往往无法直接测量或很难测量。
  • 软件质量的度量属性往往随环境和开发过程阶段的不同而有区别,因此,在选择软件质量特性的度量时,需要考虑是否支持简单且经济地运行。
  • 软件产品质量可以通过测量内部属性,或者测量外部属性,或者测量使用质量的属性来评价。

2.软件评审

2.1 软件评审的内容

  • 软件评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。

2.2 评审的类型

  • 内部评审:由软件开发方组织实施的评审,由于评审是保证软件质量的重要手段,因此需要在软件的每个开发阶段都进行内部评审,而且评审人员是由软件开发组、质量管理和配置管理人员组成,也可邀请用户参与,参与评审的人数可根据实际情况来定,比如根据软件的规模等级和安全性等级等指标而定。
  • 外部审核:通常所称的第三方审核,要求审计单位或审计人员与被审计的单位不存在利益关系,做到公正合理。由用户单位主持,由信息系统建设单位组织,应成立评审委员会。

2.3 产品评价的过程

  • 开发者用的过程:计划开发新产品或增强现有的产品,以及打算利用他们自己的技术人员进行产品评价的组织使用。这部分主要强调使用那些能预测最终产品质量的指标,这些指标将通过度量在生存期期间开发的中间产品来得到。
  • 需方用的过程:计划获取或复用某个已有的软件产品或预先开发的软件产品的组织使用。该部分可用来决定接受产品或者从从多可选产品中选择某个产品。
  • 评价者用的过程:对软件产品执行独立评价的评价者使用。这种评价是应开发者、需方或其他方的请求来进行的。这部分将由那些执行独立评价的人员使用,他们通常为第三方组织工作。

2.4 通用评价的过程

  • 软件产品的一般评价过程:确立评价需求,规定、设计和执行评价。

3.软件成本

3.1 质量成本

  • 质量成本是为了达到产品或服务的质量标准要求而进行的全部活动所发生的所有成本。
  • 质量成本包括预防成本,鉴定成本和失效成本(内部失效和外部失效成本)。
  • 质量成本可以分成一致成本和不一致成本。为确保与要求一致而做的工作所发生的成本为一致成本,由于不符合要求而引起的成本为不一致成本。
  • 预防成本和鉴定成本属于一致成本,失效成本属于不一致成本。

3.2 测试成本

3.2.1 概念

  • 软件测试成本由直接成本和间接成本构成。
  • 直接成本是为了完成软件测试项目所支出的人工资源和工具资源的总和。
    • 测试人工成本:软件测试过程中进行评审时的人工成本。主要包含:产品说明评审、用户文档评审、软件测试评审。
    • 测试环境成本:要实现测试,要去搭建基于测试的环境的人工成本。
    • 测试工具成本:测试用到的硬件和软件属于工具成本。工具成本一般可以按照折旧、或者提供租赁的服务费来进行计算。
  • 间接成本是指服务于软件测试项目的管理的组织成本,这种成本可能会跨越或超过测试周期。
    • 办公成本:场地、会议、交通、印刷等都属于办公成本。
    • 管理成本:组织管理成本、测试文档管理成本、做测试计划的管理成本、测试过程控制的管理成本等。
  • 进行成本计算时,计算间接成本时,会按照直接成本的比例进行计算,一般间接成本不超过直接成本的 20%。
  • 测试成本控制的目标是使成本最小化,可以通过加强软件测试的配置管理来降低测试维护成本。

3.2.2 测试成本调整因子

  • 软件复杂度
  • 软件完整性
  • 测试风险度
  • 回归测试
  • 加急测试
  • 现场测试
  • 评测机构资质

3.2.3 测试成本度量步骤

4.测试过程标准

  • 测试过程标准定义了多层的测试过程模型,分为组织级测试过程、测试管理过程、动态测试过程。
  • 组织级测试过程主要定义用于开发和管理组织级测试规格说明的过程。
  • 测试管理过程定义了涵盖整个测试项目、或任何测试阶段、测试类型的测试管理过程。
    • 测试策划过程
    • 测试监测和控制过程
    • 测试完成过程
  • 动态测试过程定义了动态测试通用的一个过程。
    • 测试设计和实现过程
    • 测试环境构建和维护过程
    • 测试执行过程
    • 测试事件报告过程

5.测试文档标准

  • 针对不同的测试过程,标准定义了不同的文档模板。
  • 组织级测试文档集主要包含组织级测试策略、测试方针。
  • 测试管理文档集主要包含测试计划、测试状态的报告以及测试完成报告。
  • 动态测试文档集主要包含测试数据的需求、测试数据准备报告、测试环境需求、测试环境准备报告、测试执行文档、测试状态报告等。

6.测试技术标准

  • 基于规格说明的技术:设计测试用例的主要依据是规格说明书的技术。
    • 等价类划分,分类树,边界值分析,语法测试,组合测试设计技术,判定表测试,因果图,状态转移测试,场景测试,随机测试。
  • 基于结构的技术:设计测试用例的主要依据是源代码结构。
    • 语句测试,分支测试,判定测试,分支条件测试,分支条件组合测试,修正条件判定覆盖测试,数据流测试。
  • 基于经验的技术:设计测试用例的主要依据是测试人员的经验和知识。