彩票走势图

parasoft资讯|嵌入式软件中的验证与审定的区别

原创|行业资讯|编辑:况鱼杰|2020-11-24 11:14:07.640|阅读 181 次

概述:确保嵌入式软件的正确操作,质量,安全性和安全性是嵌入式系统软件活动的重要组成部分。在很大程度上,团队通过软件测试以及整个开发过程中的分析,可追溯性,文档等来完成此任务。关键安全软件具有严格的验证和确认方法,这些方法通常被编入行业标准。这就引出了一个问题:有什么区别?

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:


测试自动化如何加快验证和确认的速度

确保嵌入式软件的正确运行、质量、安全和保障,是嵌入式系统软件活动的重要组成部分。在很大程度上,团队通过软件测试以及在整个开发过程中通过分析、可追溯性、文档等方式来完成。安全关键型软件有严格的验证和确认方法,这些方法通常被编入行业标准。这就引出了一个问题:有什么区别?


验证和审定的区别是什么?

验证和审定的官方定义在《IEEE标准软件工程术语表》中进行了定义。

  • 验证:确定软件开发周期中某一阶段的产品是否满足前一阶段建立的需求的过程。
  • 审定:在软件开发周期的某一阶段,确定产品是否满足前一阶段建立的需求的过程。在软件开发过程结束时评估软件的过程,以确保符合软件需求。
  • 验证: "我构建的产品是否正确?"
  • 审定:"我构建的产品是否正确?"我是否构建了正确的产品?"

这些定义抓住了这两个测试关键方面的区别的核心。


验证和审定的目标

最终目标是打造正确的产品。更多的是要确保产品的质量、安全和保障,确保它仍然是正确的产品。

验证是软件开发过程的一部分,它可以确保工作的正确性。软件核查通常包括:

  • 符合行业标准,确保工艺和工件符合准则。
  • 审查、演练、检查。
  • 对开发过程中产生的工件进行静态分析和其他活动。
  • 执行架构、设计和编码标准。

审定是证明最终产品符合要求。这些要求包括功能加上可靠性、性能、安全和保障。

对于物理产品来说,审定包括客户亲自看到、试用和测试产品。但对于软件来说,审定包括软件的执行和软件运行的演示。它通常包括:

  • 执行代码以展示正确的功能。
  • 在目标环境中执行。
  • 压力、性能、渗透和其他非功能测试。
  • 直接并经常向客户进行验收测试。
  • 使用验证过程中的工件来说明需求到最终功能的可追溯性,特别是针对特定的安全和安保功能。

理解验证和审定目标之间的区别很重要,软件开发需要这两个目标。这些活动是软件开发工作的主要部分。组织一直在寻求在不影响安全、保安或质量的情况下简化它们。


如何进行验证和审定

V模型显示了开发安全关键型软件所使用的更正式的验证和审定方法。它说明了开发的每个阶段的活动以及它们之间的关系。




V模型很好地说明了开发阶段和审定阶段之间的关系。在每一个测试阶段,软件中更完整的部分都要对照定义它的阶段进行审定。然而,V模型可能意味着瀑布式开发方法。有一些方法可以将敏捷、DevOps和CI/CD融入到这种类型的产品开发中。另一方面,审定可以确保每个阶段都是完整的、正确的。




验证包括审查、演练、分析、可追溯性、测试和代码覆盖率等活动,以确保团队正确构建流程和产品。举个例子,单元测试的执行是验证活动,确保单元测试的可追溯性、代码覆盖率和测试进度就是验证。验证的关键作用是确保构建交付的工件从上一阶段到规范,并符合公司和行业准则。


验证和审定命名的混乱

各个组织可能会以稍微不同的方式使用验证和审定。通常的做法是将审定视为软件开发接近尾声时发生的活动,在这一过程中,团队向客户(或作为其代理的测试人员)展示产品并证明满足所有需求。嵌入式开发仍然使用工厂验收测试(FAT)的概念。

另一个显著的理念差异是DO-178B/C和相关标准,用于开发安全关键型航空电子软件,审定不是一个已知的术语。事实上,如果验证完成,审定被认为是多余的。

"审定是确定软件需求是正确和完整的过程。DO-178C没有为软件验证测试提供指导,因为按理说,经过验证正确的软件,理论上在软件集成测试中应该不会出现审定问题,除非软件需求不完整或不正确。" - 根据DO-178C和DO-278A对安全关键软件进行认证,Stephen A. Jacklin,NASA艾姆斯研究中心。

用于安全关键型软件的混合型DevOps管道

在许多嵌入式软件组织中,完全敏捷流程的实施与行业安全保障标准对其的限制并不兼容。工件、代码、测试结果和文档通常有要求和设定的交付日期。进展是基于这些可交付成果(里程碑)。

在某些情况下,如大型军事和国防项目,里程碑式的交付成果被纳入合同和付款安排中。虽然这意味着瀑布法,但没有理由将软件开发局限于此。团队可以使用混合模式,在内部使用迭代和敏捷方法来实现交付物的里程碑。

在讨论验证和审定时提出这个问题的原因是,团队可以在复杂的安全关键型应用上使用持续集成和测试的许多好处。其中一部分是将左验证和审定转移到开发过程中尽可能早的位置。例如,没有理由将单元测试推迟到所有单元都编码完毕,也没有理由等着用静态分析来分析代码,直到它准备好进行集成。

同样,一旦有单元测试的组件准备好,开发人员就应该尽快尝试集成测试。将自动化与持续、迭代的方法结合起来,可以为软件验证和审定带来巨大的好处。Parasoft拥有在SDLC的所有阶段解决测试、质量和安全问题的工具,如下所示。

V模型显示了开发安全关键软件所使用的更正式的验证和审定的方法。



加速验证

验证包括确保开发的每个阶段都满足上一步的规范的工作。在软件编码和测试方面,验证就是确保代码满足模块设计,最终满足高层设计和上面的要求。

此外,验证还要确保满足项目级需求。这些要求包括符合行业标准、风险管理、可追溯性和指标(代码覆盖率和合规性)。Parasoft的软件测试自动化工具通过自动化记录保存、文档、报告、分析和报告等许多繁琐的环节来加速验证:

  • 在开发人员编写代码时,尽早使用静态分析来确保质量和安全。此外,静态分析可以防止未来的错误和漏洞,减少检查和测试期间遗漏的错误对下游的影响。
  • 自动化编码标准合规性,减少人工劳动,加快代码检查速度。
  • 所有工件的双向可追溯性,以确保需求有代码和测试来证明它们被满足。指标、测试结果和静态分析结果可追溯到组件,反之亦然。
  • 代码和测试覆盖率,以确保所有的需求都得到了实现,并确保实现是按要求进行测试的。
  • 报告和分析有助于决策和跟踪进度。决策需要基于从自动化流程中收集的数据。
  • 从分析和测试结果中自动生成文档,以支持流程和标准合规性。
  • 标准遵从自动化,通过自动化最重复、最繁琐的流程来降低开销和复杂性。而且,工具可以跟踪项目历史,并将结果与需求、软件组件、测试和记录的偏差进行关联。


加速审定

审定是证明产品符合其要求,在这里,代码的执行是必要的,无论是在单元测试中的隔离,还是在集成的各个阶段。自动化这些测试套件对于嵌入式软件的开发来说是一个巨大的时间节省。

审定需要在目标硬件上执行。优化回归测试可以充分利用现有的资源、人员和硬件。Parasoft测试自动化工具通过减少对手动测试的依赖性来加速审定--保持所有结果的可追溯性和代码覆盖率。

  • 所有测试套件的自动化最大限度地减少了手动测试,并降低了因硬件可用性有限而造成的测试瓶颈。
  • 基于目标和主机的测试执行根据需要支持不同的审定技术。
  • 左移测试在团队开发代码时就开始了。它利用单元测试框架,并在代码准备好后自动生成线束进行测试。随着组织流程的成熟,可支持测试驱动开发和持续测试。
  • 通过智能测试执行来管理变化,只专注于对已更改的代码和任何受影响的依赖程序的测试。
  • 代码、测试、静态分析结果和需求之间的双向可追溯性,并支持公司范围内的应用程序生命周期管理(ALM)工具。

软件审定可确保团队构建正确的软件,以满足客户和市场的需求。验证是您满足要求的证明,并且您的产品可靠,安全,可靠,可以保护客户。

软件验证可确保团队根据组织自身的流程和标准以及市场要求的标准来构建产品。换句话说,验证可证明产品有效,而验证可确保您划过所有t并加点所有i。

验证和审定会消耗嵌入式产品开发中的大部分资源。Parasoft的软件测试自动化套件提供了一套统一的工具来加速测试,方法是帮助团队将测试移至开发的早期阶段,同时保持可追溯性,测试结果记录保留,代码覆盖率详细信息,报告生成和合规性文档。


标签:软件测试技术C/C++

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP