本文详细描述了IEEE 1012-2016标准中软件验证与确认的完整流程,包括软件概念、需求分析、设计、构建、集成、确认测试、验收测试、安装、运行、维护和处置等各个阶段。涵盖了从软件概念到软件处置的完整生命周期验证与确认方法。

我在之前的文章 需求分析中提到的验证是Verification还是Validation?中,详细解读了verification和validation的含义和区别, 但是在最近的调研过程中,我发现了一个ieee的标准,IEEE 1012-2016,详细的定义了verification和validation的规范。 分别从系统,软件,硬件的角度,详尽的定义各个环节的V_V(verification and validation)。reddish(srs.pub)将其中的一些重要的内容,进行翻译和整理。供需要时参考。

本文来自IEEE 1012-2016标准的第九章,主要介绍了软件工程中各个环节涉及到的验证与确认的流程。软件验证与确认是确保软件产品质量和可靠性的关键活动,贯穿整个软件开发生命周期。

注:内容详尽但可能比较枯燥,建议收藏,需要的时候再拿出来翻一番。

注:下文中的V&V流程,均指的是验证与确认流程

1 软件概念的验证与确认流程

1.1 目的

软件概念验证与确认流程的目的是确保以下成果:

与软件相关的软件需求分析过程(ISO/IEC 12207:2008 [B11])已实现。

1.2 结果

由于软件概念验证与确认流程的成功实施,现已获得客观证据:

开发用于评估是否:

  1. 系统需求已分配给软件(主要关注以软件为核心的系统)。对硬件交互及用户分配的考量)。

  2. 所选软件解决方案满足了分配的软件需求。

  3. 解决方案中未包含任何错误假设。

1.3 活动与任务

V&V工作应按照表2c中针对所选完整性等级的规定,执行以下内容:

软件概念验证与确认活动及任务,详见表1c相应项:

  1. 软件概念验证与确认:此项活动包括以下任务:

所列的软件概念V&V任务将用于验证和确认ISO/IEC 12207:2008 [B11]中描述的软件需求分析过程成果。

IEEE 1012 V&V 的映射关系与ISO/IEC 12207软件需求分析过程的成果包含在附录L中。

2 软件需求分析的验证与确认流程

2.1 目的

软件需求分析验证与确认过程 1的目的是确保以下结果:

软件需求分析过程、软件资格测试过程,以及软件已实现验收支持流程(ISO/IEC 12207:2008 [B11])。

2.2 结果

由于软件需求分析验证与确认流程的成功实施,已形成客观证据,以评估是否:

  1. 软件需求是正确的。

  2. 软件需求已完整。

  3. 软件需求准确无误。

  4. 软件需求是可测试的。

  5. 软件需求与系统软件需求保持一致。

2.3 活动与任务

V&V工作应按照表2c中规定的选定完整性等级,执行以下内容:

表1c相应活动中描述的软件需求分析验证与确认任务:

  1. 软件需求分析验证与确认:本活动包括以下任务:

软件需求分析验证与确认过程针对的是软件需求的分析工作,功能与性能要求;软件外部接口;以及对资质、安全与保障、人因工程、数据定义、用户文档用于软件、安装与验收、用户操作与执行,以及用户维护。V&V测试规划始于软件需求分析的验证与确认过程,并贯穿于多个软件验证与确认环节。

所列的软件需求分析验证与确认任务将用于对软件需求分析过程的成果、软件确认测试过程的成果,以及软件验收支持流程结果进行验证和确认,如ISO/IEC 12207:2008 [B11] 中所述。IEEE 符合ISO/IEC 12207:2008标准的1012项V&V任务[B11]——软件需求分析过程的输出结果,软件资质测试流程结果以及软件验收支持流程结果包含于附件L。

3 软件设计的验证与确认流程

3.1 目的

软件设计验证与确认过程的目的是确保软件的成果符合预期。建筑设计过程、软件详细设计过程、软件集成过程 2、软件资格测试流程,以及软件验收支持流程(ISO/IEC 12207:2008 [B11])已实现。

3.2 结果

由于软件设计验证与确认流程的成功实施,现已获得客观证据:

开发用于评估是否:

  1. 该软件设计正确、准确,且是对软件要求的彻底变革。

  2. 软件设计中未引入任何非预期的功能。

3.3 活动与任务

V&V工作应按照表2c中规定的选定完整性等级,执行以下内容:

表1c相应活动中描述的软件设计验证与确认任务:

  1. 软件设计验证与确认:此活动包括以下任务:

软件设计验证与确认活动涵盖软件架构设计和软件详细设计。软件设计V&V活动期间,V&V测试计划继续进行。

所列的软件设计验证与确认任务将用于对软件架构设计过程成果、软件详细设计过程成果、软件集成过程结果、软件资格测试过程结果,以及软件验收支持过程成果进行验证和确认,如ISO/IEC 12207:2008 [B11] 中所述。IEEE 1012 V&V任务到ISO/IEC 12207 软件架构设计过程成果,软件详细设计过程成果,软件集成过程结果、软件确认测试过程结果,以及软件接受支持流程的结果载于附件L。

4 软件构建的验证与确认流程

4.1 目的

软件构建验证与确认过程的目的是确保以下成果:

软件构建过程、软件集成过程、软件合格性测试流程,以及软件验收支持流程(ISO/IEC 12207:2008 [B11])已达成。

4.2 结果

由于软件构建验证与确认流程的成功实施,客观地正在收集证据,以评估从软件设计到代码、数据库结构及其相关的机器可执行表示是否:

  1. 正确。

  2. 准确。

  3. 完成。

4.3 活动与任务

V&V工作应按照表2c中规定的选定完整性等级,执行以下内容:

表1c相应活动中描述的软件构建验证与确认活动及任务:

  1. 软件构建与验证:此活动包括以下任务:

软件构建验证与确认活动涵盖软件编码与测试,包括复用软件产品的集成。

所列的软件构建验证与确认任务将用于对软件构建流程结果、软件集成流程结果、软件确认测试流程结果,以及ISO/IEC 12207:2008 [B11]中描述的软件验收支持过程结果进行验证和确认。IEEE 1012 V&V任务与ISO/IEC 12207软件构建过程成果的映射,软件集成过程结果、软件确认测试过程结果,以及软件接受支持流程的结果载于附件L。

5 软件集成的验证与确认流程

5.1 目的

软件集成验证与确认过程的目的是确保以下结果:

软件集成过程(ISO/IEC 12207:2008 [B11])已成功实现。

5.2 结果

由于软件集成验证与确认流程的成功实施,获得了客观证据。是为评估分配给软件的软件需求和系统需求是否在每个软件组件(如单元或模块)逐步集成时进行验证。

5.3 活动与任务

V&V工作应按照表2c中规定的选定完整性等级,执行以下内容:

表1c相应活动中描述的软件集成验证与确认任务:

  1. 软件集成验证与确认:此活动包括以下任务:

所列的软件集成验证与确认任务将用于对软件集成ISO/IEC 12207:2008 [B11] 中描述的流程结果进行验证和确认。IEEE 1012 V&V任务的映射至ISO/IEC 12207 软件集成过程的成果载于附录L。

6 软件确认测试的V&V流程

6.1 目的

软件资格测试验证与确认过程的目的是确保测试结果的可靠性。软件资格测试过程(ISO/IEC 12207:2008 [B11])的各项要求已达成。

6.2 结果

由于软件资格测试验证与确认流程的成功实施,客观地正在收集证据,以评估集成软件产品是否满足其需求。

6.3 活动与任务

V&V工作应按照表2c中规定的选定完整性等级,执行以下内容:

软件资格测试V&V任务如表1c相应活动所述:

  1. 软件确认测试V&V:此项活动包括以下任务:

安全分析

软件资格认证(例如,演示、分析、检查或测试)针对完整系统软件元素。

所列的软件资格测试验证与确认任务将用于对软件ISO/IEC 12207:2008 [B11] 中描述的资格测试过程结果进行验证和确认。IEEE 1012项V&V任务,ISO/IEC 12207软件合格性测试过程的成果包含于附件L。

7 软件验收测试的验证与确认流程

7.1 目的

软件验收测试验证与确认过程的目的是确保以下结果:

软件验收支持流程与软件运行流程(ISO/IEC 12207:2008 [B11])已取得。

7.2 结果

由于软件验收测试V&V流程的成功实施,客观地正在收集证据,以评估是否:

  1. 该软件满足其验收标准 3

  2. 客户可以决定是否接受该集成软件产品。

7.3 活动与任务

V&V工作应按照表2c中规定的选定完整性等级,执行以下内容:

表1c相应活动中描述的软件验收测试V&V任务:

  1. 软件验收测试验证与确认:此项活动包括以下任务:

所列的软件验收测试V&V任务将用于对软件ISO/IEC中描述的验收支持流程成果与软件操作流程成果12207:2008 [B11]进行验证与确认:IEEE 1012 V&V任务与ISO/IEC 12207:2008 [B11]软件验收支持流程结果和软件运行流程结果载于附件L。

8 软件验证流程

8.1 目的

软件验证过程 4的目的是为结果是否符合要求提供客观证据。实现以下目标:

  1. 符合所有方面的要求(例如,正确性、完整性、一致性和准确性)各生命周期过程中的活动。

  2. 在生命周期过程中满足标准、实践和规范。

  3. 成功完成每个生命周期活动,并满足启动后续生命周期活动的所有标准(即产品构建正确)。

8.2 结果

由于软件验证流程的成功实施:

  1. 验证与确认计划已制定并实施。

  2. 所关注的系统(软件)及其所有组成部分均被赋予完整性在整个系统生命周期中不断重新评估的级别。

  3. 软件及其各个组件均根据以下标准评估是否满足需求:分配的完整性级别。

d)通过客观证据来确定软件及其各个组件是否符合要求。符合要求,并满足每个后续生命周期活动的所有标准。

8.3 活动与任务

适用于技术领域的软件验证过程的活动与任务描述ISO/IEC 12207:2008 [B11] 中描述了软件生命周期过程的流程,详见相应条款(软件概念验证流程),相应条款(软件需求分析验证流程),相应条款(软件设计验证与确认过程),相应条款(软件构建验证与确认过程),相应条款(软件集成验证与确认流程),相应条款(软件资质测试验证与确认流程),相应条款(软件验收测试V&V流程),相应条款(软件安装与验收V&V流程),相应条款(软件运行验证与确认流程)、相应条款(软件维护验证与确认流程),以及相应条款(软件处置验证与确认流程)。

9 软件安装与验收测试的V&V流程

9.1 目的

软件安装与验收验证流程的目的是确保结果的可靠性。软件安装过程与软件验收支持过程(ISO/IEC 12207:2008 [B11])已实现。

9.2 结果

由于软件安装与验收验证流程的成功实施,已制定客观证据,以评估目标环境中软件的安装是否已完成正确。

9.3 活动与任务

V&V工作应按照表2c中规定的选定完整性等级,执行以下内容:

软件安装与验收验证活动及任务,详见表1c相应项活动:

  1. 软件安装与验收验证:此项活动包括以下任务:

在安装与验收阶段,软件产品会被安装并测试于目标环境中。软件安装与验收验证活动支持软件系统的安装工作。

所列的软件安装与签出验证任务将用于对软件ISO/IEC中描述的安装过程结果与软件验收支持过程结果12207:2008 [B11]进行验证和确认。IEEE 1012 V&V任务与ISO/IEC 12207软件安装过程结果和软件验收支持过程结果载于附件L。

10 软件确认流程

10.1 目的

软件验证过程的目的是为结果是否符合要求提供客观证据。实现以下目标:

  1. 满足在每个生命周期活动结束时分配给产品的各项要求。

  2. 解决正确的问题(例如,准确建模物理定律、实施业务规则,并使用适当的系统假设)。

  3. 满足预期用途和用户在实际环境中的需求(即构建正确的产品)。

10.2 结果

由于软件验证流程的成功实施:

  1. 验证与确认计划已制定并实施。

  2. 所关注的系统(软件)及其所有组成部分均被赋予完整性在整个系统生命周期中保持的水平。

  3. 软件及其各个组件均经过评估,以确保满足所分配的系统要求。基于设定的完整性等级,明确需求、预期用途及用户需求 5

  4. 开发客观证据,以确定软件及其各个组件是否符合要求。满足分配给软件的所有系统要求,并达到预期用途及用户需求。

10.3 活动与任务

适用于技术领域的软件验证过程的活动与任务描述ISO/IEC 12207:2008 [B11] 中描述了软件生命周期过程的流程,详见相应条款(软件概念验证流程),相应条款(软件需求分析验证流程),相应条款(软件设计验证与确认过程),相应条款(软件构建验证与确认过程),相应条款(软件集成验证与确认流程),相应条款(软件资质测试验证与确认流程),相应条款(软件验收测试V&V流程),相应条款(软件安装与验收V&V流程),相应条款(软件运行验证与确认流程)、相应条款(软件维护验证与确认流程),以及相应条款(软件处置验证与确认流程)。

11 软件运行的验证与确认流程

11.1 目的

软件操作验证与确认流程的目的是确保软件的输出结果可靠无误。操作流程已按ISO/IEC 12207:2008 [B11] 实现。

11.2 结果

由于软件运行验证与确认流程的成功实施,现已获得客观证据:

开发用于评估是否:

  1. 系统中的新约束条件正在被评估。

  2. 对拟议的系统变更及其对软件的影响进行评估。

  3. 操作规程将被评估其正确性和易用性。

11.3 活动与任务

V&V工作应按照表2c中规定的选定完整性等级,执行以下内容:

表1c中描述的软件运行V&V任务,活动9.11:

  1. 软件运行验证与确认:此项活动包括以下任务:

软件运行验证与确认活动评估了运行环境变化带来的影响,评估拟议变更对系统的影响,并检查操作流程的执行情况。根据预期用途,分析影响用户和系统的风险。

所列的软件运行验证与确认任务将用于验证和确认软件运行ISO/IEC 12207:2008 [B11] 中描述的流程结果。IEEE 1012 V&V任务的映射至ISO/IEC 12207软件操作过程的成果载于附录L。

12 软件维护的验证与确认流程

12.1 目的

软件维护验证与确认过程的目的是确保以下结果:

软件维护过程 6(ISO/IEC 12207:2008 [B11])已实现。

12.2 结果

由于软件维护验证与确认流程的成功实施,客观地正在收集证据,以评估是否:

  1. 对拟议的软件变更及其对系统的影响进行评估。

  2. 在运行过程中发现的异常情况将进行评估。

  3. 迁移需求已进行评估。

  4. 退休条件正在评估中。

  5. V&V任务被重新执行。

12.3 活动与任务

V&V工作应按照表2c中规定的选定完整性等级,执行以下内容:

软件维护验证与确认任务,详见表1c相应项活动:

  1. 软件维护验证与确认:此活动包括以下任务:

拟议的变更由管理流程中的”拟议/基准变更评估”任务进行评估。验证与确认活动。

当软件或相关文档发生变更时,软件维护流程将被启动。为响应系统维护的需求。软件维护验证与确认活动旨在解决以下软件系统流程:

  • 修改(即纠正性、适应性或完善性变更)。
  • 迁移(即,将软件移至新的运行环境)。
  • 退休(即运营与维护机构主动停止提供支持),部分或全部替换为新系统,或安装升级后的系统。

系统修改可能源于为修复软件错误(如纠正性)、适应变化的运行环境(如适应性),或响应用户的额外需求而提出的需求。请求或增强功能(例如,完善性)。对软件系统的修改应被视为:开发流程,并应通过执行与之对应的验证与确认任务进行验证和确认。修改。完整性级别分配应按照第5条所述进行评估。完整性级别

任务应根据维护流程得出的要求进行适当修订。如果软件验证与确认按照本标准执行,则维护过程应:继续符合这一标准。如果该软件未按照此标准进行验证和确认,且如果无法提供适当或充分的文档,则软件维护验证与确认工作应确定是否应生成缺失或不完整的文档。在判断是否生成缺失文档时,需遵循最低限度的验证与确认要求,即:应考虑分配的完整性级别。

所列的软件维护验证与确认任务将用于确保软件维护的正确性和有效性。ISO/IEC 12207:2008 [B11] 中描述的流程结果。IEEE 1012 V&V任务与ISO/IEC 12207软件维护过程的成果载于附录L。

13 软件处置的验证与确认流程

13.1 目的

软件处置验证与确认流程的目的是确保软件的输出结果符合预期。处置过程 7(ISO/IEC 12207:2008 [B11])已实现。

13.2 结果

由于软件处置验证与确认流程的成功实施,现已获得客观证据:

开发用于评估是否:

  1. 软件处置策略中的约束条件已纳入软件需求中。

  2. 处置使系统处于约定的状态。

13.3 活动与任务

V&V工作应按照表2c中规定的选定完整性等级,执行以下内容:

软件处置验证与确认活动及任务,详见表1c中的活动9.13:

  1. 软件处置验证与确认:此项活动包括以下任务:

此过程将终止运维组织的主动支持,或对受影响的软件产品进行停用、拆卸和移除,使其恢复至最终状态并妥善处理。环境处于可接受的状态。这一过程会破坏或存储系统软件组件,且以符合法律法规、协议规定、组织约束及利益相关方要求的方式,妥善管理相关产品。必要时,保留可供监督的记录。

所列的软件处置验证与确认任务将用于验证和确认软件处置流程。ISO/IEC 12207:2008 [B11] 中描述的成果

IEEE 1012 V&V任务与ISO/IEC 12207 软件处置流程的结果载于附件L。

13.4 表格和附录

13.5 表1c — V&V任务、输入与输出

13.6 活动:软件概念验证与确认(软件,12207 — 软件需求分析过程)

V&V任务 所需输入 所需输出
(1) 概念文档评估 概念文档、系统架构设计、供应商 8发展计划和时间表、用户需求、收购需求 任务报告——概念文档评估、异常报告
(2) 需求分配分析 概念文档、系统要求、系统架构 任务报告——要求分配分析、异常报告
(3) 可追溯性分析 概念文档 任务报告——可追溯性分析、异常报告
(4) 临界性分析 概念文档(系统要求)、开发者诚信等级分配 任务报告——关键性分析、异常报告
(5) 危害分析 概念文件 任务报告——危险分析、异常报告
(6) 安全分析 概念文档、初步TRA 任务报告——安全分析、异常报告
(7) 风险分析 概念文档、供应商发展计划与进度安排、危害分析报告、安全分析报告、V&V任务结果 任务报告——风险分析、异常报告

13.7 活动:软件需求分析验证与确认(软件,12207 — 软件需求分析流程)

V&V任务 所需输入 所需输出
(1) 需求评估 概念文档、SRS、IRS 任务报告——软件需求评估、异常报告
(2) 接口分析 9 概念文档、SRS、IRS 任务报告——接口分析、异常报告
(3) 可追溯性分析 概念文档(系统要求)、SRS、IRS 任务报告——可追溯性分析、异常报告
(4) 临界性分析 关键任务报告、SRS、IRS 任务报告——关键性分析、异常报告
(5) 软件确认与验证测试计划 概念文档(系统要求)、SRS、IRS、用户文档、软件确认测试计划 V&V软件确认测试计划(完整性等级4和3)、任务报告——软件评审 10资质测试计划(完整性等级)、异常报告
(6) 软件验收测试计划V&V 概念文档、SRS、IRS、用户文档、软件验收测试计划 V&V 软件验收测试计划(诚信等级4级和3级)、任务报告——软件评测验收测试计划(诚信等级2)、异常报告
(7) 危害分析 SRS、IRS、危害分析报告 任务报告——危害分析、异常报告
(8) 安全分析 SRS、IRS、初步TRA、安全分析报告 任务报告—安全分析、异常报告
(9) 风险分析 概念文档、SRS、IRS、供应商发展计划和时间表、危害分析报告、安全分析报告、风险分析报告、V&V任务结果 任务报告——风险分析、异常报告

13.8 表2c — 针对软件验证与确认分配的各完整性等级最低任务要求

注:当某个验证与确认任务被选为多个完整性等级的强制性要求时,该任务的实施将由其严格程度、强度及深度决定。更高完整性级别的实施需要更强的严谨性(例如,形式化方法和结构化分析方法),以及更高的强度(例如,全面考虑所有系统条件和系统环境状态),以及分析或测试的深度(例如,异常情况、边界条件,以及全面的故障与恢复场景),均高于较低层次的诚信水平的实施。

13.9 表3c — 软件技术中的可选验证与确认任务及建议应用

本条款中所述软件V&V流程的可选任务建议适用性如表3c所示。附录G提供了对每项可选验证与确认任务的说明。

实施流程 软件概念(9.1) 软件需求分析(9.2) 软件设计(9.3) 软件构建(9.4) 软件集成(9.5) 软件资格测试(9.6) 软件验收测试(9.7) 软件安装与签出(9.9) 软件操作(9.11) 软件维护(9.12) 软件处置(9.13)
算法分析 X X X X X
审计绩效 X X X X X X X X X
审计支持 X X X X X X X X X
控制流分析 X X X X
成本分析 X X X X X X X X X
数据库分析 X X X X X
数据流 11分析 X X X X
灾难恢复计划评估 X X X X X X X
分布式架构评估 X X X
探索性测试 X X X X X X X X X X
可行性研究评估 X X X X
独立风险评估 X

13.10 图1c — 软件验证与确认活动及任务概览

注1 — 流程定义(顶部图形栏)中的条款引用为ISO/IEC 12207:2008 [B11]条款编号。

注2 — 活动验证与确认定义(中间图形栏)中的条款引用为IEEE Std 1012标准的条款编号。

注3 — 图中列出的V&V任务是确保达到4级完整性的最低要求(最高完整性级别)。

注4 — 软件验收测试流程支持系统集成测试流程。

注5 — 软件安装与签出流程支持系统过渡流程。