验证(verification)活动在项目中经常造成困惑,不理解验证工作到底应该做什么,有人把它理解为评审,有人把它理解为测试。那么,验证工作到底应该做什么,怎么才算做好验证,理解清楚其概念非常关键。
1.什么是验证
在系统工程标准ISO/IEC/IEEE15288中,验证过程的目的:
The purpose of the verification process is to provide objective evidence that a system or systemelement fulfills its specified requirements and characteristics.
验证过程的目的是提供证明系统或系统元素满足其特定需求和特征的客观证据。
这句话中包括三层含义:
-
系统或系统的元素指构成系统的如系统需求、功能、输入/输出流、系统组件、接口、设计特性、验证程序。这些元素满足其规定的要求和特征需要经过验证,证明系统的每个转换过程由输入到输出,没有引入误差/缺陷/错误;
-
验证需要根据需求及选择的验证方法确认这种转换过程是正确的;
-
验证过程需要提供客观的证据,即验证的过程,根据系统各阶段的不同特点,证据可能是评审记录,检查表,测试报告,仿真分析等。
正如通常说的,
验证用来确保“产品被正确地实现(product is built right)”,是一个内部过程;确认用来确保“正确的产品被实现(right product is built)”,是一个外部过程。因此,有可能产品被验证通过,但在确认时会失败。因为当产品按需求设计,设计过程没有问题,但产品需求无法满足用户需求时,就会发生验证通过,确认不成功的情况。
2.验证方法的选择
在理解验证概念的基础上,有哪些验证方法就容易得出来了。常用的验证方法有检查、分析、演示或测试,分析具体又包括建模、仿真和模拟。在系统的V模型开发周期的左半边,需求、架构、设计实现阶段,常用检查和分析,建模、仿真方法进行验证,在右半边,常用测试、演示、类比方法进行验证。
-
检查
英文是inspection,也称为检验。这主要依靠人的经验去进行检查,比如对文档进行审核,对照标准进行核对,或者对设备进行简单的测量。检查这种验证技术较主观,依赖于检查人的技术背景和经验能力;
-
分析
在设计前期,采用数学计算、建模和仿真的分析方法用于前期对需求和设计的验证;在产品已有实物的实现阶段,在进行测试不具备成本效益的情况下,也会利用分析的方法进行验证。例如在硬件设计中对热设计、高速信号质量进行仿真分析,系统设计中对系统的反应时间进行计算。
-
演示
演示也称为"现场测试",不需要专门的测试设备,按照实际应用场景进行演示。它一般使用一组选定的测试组合,观察系统的预期反应。例如通过操作员对设备维修操作时间的统计来预估平均维护时间,在现场演练车辆运行的各项功能。
-
测试
测试需要专用的测试设备或仪器来获得精确的数据,作为对系统功能、可测量特性、可操作性、可保障性或性能能力进行定量验证。
-
类比
基于已经验证过的证据进行对比,它对于通过预测背景环境不变,结果是可转换的情况是有必要的。
-
抽样
基于选取的样品对其特性进行的验证。
通过对基本的验证方法的解释,下面介绍下硬件设计和软件设计常用的验证方法,以航空航天、轨道交通、汽车行业的安全关键产品开发标准为例。
3.硬件设计的验证方法
硬件设计可以通过评审、分析和测试的组合方式来进行验证,适航标准RTCA DO-254 机载电子硬件设计指南提供了一个硬件验证的良好示范。验证活动的要求为:
-
应识别需要有验证活动的要求。并不需要在每个层级上对要求进行验证,要求可以在较高的层级上验证。
-
验证方法,如测试、仿真、原型化、分析和评估等应进行选择和执行。
-
应建立在要求、实施和验证程序与结果之间的追溯性。
-
应进行验证覆盖分析来确定验证过程的完整性。如
-
每个要求在一些层级上通过评审、分析或测试进行了验证;
-
每个要求的验证方法,尤其对于安全性是适当的;
-
与每个要求的验证相关的结果都是正确的,而且对实际结果与预期结果的差异进行了分析;
5.验证过程的结果应进行记录;
6.应将疏忽和错误反馈到适当的过程以便处理。
硬件测试方法无需多言,其要求基本都了解。
对于硬件分析,用于特定硬件项目特性的评价以证实某个特定要求被满足的一种详细的、可重复的、分析性的方法。硬件仿真是一种重要的设计分析工具,用于仿真来分析生产变动对硬件参数的影响,这种影响很难用其它验证手段来分析。
常用的硬件分析方法有:
-
热效应分析:验证当暴露于工作温度环境时,设计实现满足要求。
-
应力分析:验证部件在要求的工作范围满足额定值减少的条件。
-
可靠性分析:确定设计实现是否满足产品的可靠性要求。
-
设计边界分析:验证设计实现满足了其给出的部件可变性的功能要求
-
还有共模失效分析、最坏情况分析和测试覆盖率分析等。
评审是硬件设计的定性验证方法,在开发的计划、需求、设计数据、设计概念或设计实现阶段进行。它需要参与者具备完成评审所需的知识,评审的过程应予以记录。
4.软件设计的验证方法
在轨道交通安全软件开发要求EN50128中,将软件测试从验证中分离出来,作为安全软件的独立活动管理,因此该标准中软件验证的主要方法为分析,软件测试的主要方法为各种测试技术。
以下表为例:
标准列举的验证活动有形式化证明、静态分析、度量、追溯性、软件错误影响分析,属于分析类的验证方法;动态分析和测试、黑盒测试、性能测试、接口测试属于测试类的验证方法。
在汽车功能安全标准ISO26262中,也对产品开发的概念阶段、设计阶段、测试阶段、生产和运行阶段的验证方法进行了规定,目的是确保工作成果符合它们相应的要求。在测试阶段,验证是在测试环境下对工作成果的评估,以确保其满足要求,确认则需要在整车的最终环境中进行测试。
5.总结
通过以上标准中对于验证方法的解读,相信读者可以理解在产品开发应该如何选择合适的技术组合作为产品开发符合要求的必要手段。另外,对于验证人员的能力素质也非常关键,在项目内部,只有选择合适的人员做相应过程的验证,才能达到效果。
的
本文始发于微信公众号(薄说安全):验证工作到底做什么
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论