ScholarGate
助手

软件验证与确认

软件验证与确认(V&V)是互补的过程,旨在确认软件是否根据其规范正确构建,以及是否构建了满足用户需求的正确软件。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

验证是对开发阶段的产物是否满足其开始时所施加的条件进行评估,而确认是对最终产品是否满足其预期用途和用户需求进行评估。

Scope

本主题涵盖静态V&V技术,例如评审、走查和正式检查;用于在不执行的情况下检测缺陷的静态程序分析;通过测试进行的动态V&V;V&V活动的规划和独立性;以及管理V&V过程和严格程度的标准,例如ISO/IEC/IEEE 1012。

Core questions

  • 验证和确认在问题和方法上有何不同?
  • 评审和检查能发现哪些测试遗漏的缺陷?
  • 静态分析如何补充动态测试?
  • V&V的严格程度如何与软件的关键性相匹配?

Key theories

验证与确认
验证询问我们是否根据规范正确地构建产品,而确认询问我们是否为用户构建了正确的产品;两者需要不同的证据,并贯穿整个生命周期。
软件检查
Fagan检查是一种结构化的、基于角色的评审过程,能够及早且经济地发现设计和代码中的缺陷,并且仍然是最有效的缺陷消除技术之一。

Clinical relevance

V&V活动,特别是早期评审和静态分析,可以在缺陷进入后期阶段(此时修复成本高昂得多)之前将其消除;对于安全关键型和任务关键型软件,独立V&V通常是标准和监管机构强制要求的。

Evidence & guidelines

ISO/IEC/IEEE 1012定义了V&V过程和完整性级别,而DO-178C(航空电子设备)和IEC 61508(功能安全)等领域标准则根据风险规定了V&V要求。

History

正式检查由Fagan于1976年在IBM引入,并反复证明其具有很高的成本效益;静态分析工具自1990年代以来日趋成熟,V&V成为安全关键领域中受监管的学科,并被IEEE 1012等标准编纂成文。

Key figures

  • Michael Fagan
  • Barry Boehm
  • Roger Pressman

Related topics

Seminal works

  • fagan1976
  • ieee1012
  • pressman2014

Frequently asked questions

验证与确认有何不同?
验证检查每一步是否符合规范——正确地构建产品——而确认检查最终产品是否真正满足用户需求——构建正确的产品。一个系统可能通过验证,但如果需求本身是错误的,则可能无法通过确认。
代码评审真的值得付出努力吗?
从Fagan的工作开始,实证研究一致表明,结构化评审和检查能够及早且经济地发现大部分缺陷,通常能捕捉到测试会遗漏的故障,使其成为最具成本效益的质量技术之一。

Methods for this concept

Related concepts