设计验证与确认过程
设计验证
设计验证是对软件产品进行评估以满足最终用户或利益相关者的确切要求的过程。设计验证的目的是在开发后测试软件产品,以确保它在用户环境中的应用方面符合要求。
验证关注的是证明设计与用户需求的一致性和完整性。这是您实际构建产品版本并根据用户需求进行验证的阶段。
下图展示了设计验证过程。
目的是通过客观证据证明产品满足用户需求文档。客观证据就是任何输出的物理证明,例如图像、文本或音频文件,表明该过程已完成。
通过客观证据,该过程将持续检查产品是否满足预定义的要求。该过程涉及测试活动、检查和分析等。
设计验证
设计验证是一种通过检查和提供证据来确认设计软件产品的输出是否符合输入规范的方法。软件开发过程中设计验证的目标是确保设计的软件产品与规范一致。
设计输入是任何作为设计基础的物理和性能要求。设计输出是每个设计阶段以及整个设计工作结束时的结果。最终设计输出是设备主记录的基础。
设计验证与确认的区别
验证(verification)和确认(validation)之间总是存在误解。它们是在开发过程的每个阶段执行的不同活动。
设计验证 | 设计验证 |
---|---|
设计验证用于实际设计输出应与预期设计输出相同,且满足产品规格的情况。 | 设计确认用于定义最终设计是否符合用户期望的需求。 |
设计验证问:你是否正确地设计了产品? | 设计确认问:你是否设计了正确的产品? |
设计验证包括单元和初级集成级别测试。 | 设计确认包括二级或更高级别的集成和系统级别测试。 |
设计确认的某些方面可以在设计验证期间完成,但设计验证不能替代设计确认。 | 设计确认在设计验证成功后进行。 |
设计验证可以在任何条件下对单个模块或完整系统进行。 | 设计确认应根据用户要求在指定条件下进行。 |
设计验证可以使用静态技术。它包括系统检查、分析和正式验证(测试)活动。 | 设计确认包括经过审查、批准和签署的最终报告(测试执行结果)。这些文档将被存储以备将来参考。 |
设计验证过程
识别和准备
- 在规范的开发阶段,验证活动的识别是并行进行的。这使得设计人员能够确保规范是可验证的。因此,测试工程师可以开始详细的测试计划和程序。规范的任何更改都应进行沟通。
- 确定进行验证的最佳方法,定义测量方法、所需资源、工具和设施。
- 完成的验证计划将与设计团队进行审查,以在计划最终确定之前识别问题。
规划
- 验证规划是与核心团队和开发团队并行进行的活动。这贯穿于项目生命周期。每当设计输入发生任何更改时,此计划都会更新。
- 在此阶段,被测软件或系统应在范围内进行文档记录。
- 在此阶段制定初步测试计划和测试计划细化。测试计划捕捉关键里程碑,从而降低项目风险。
- 工具、测试环境、开发策略以及通过检查或分析识别需求。
开发
- 测试用例开发将与项目团队实施的SDLC 方法同步进行。在此阶段确定了各种测试方法。
- 必须开发设计输入,包括最简单的、明确且可验证的验证活动。
- 当相似的概念按顺序进行时,验证时间会缩短。甚至一个测试的输出也可以用作后续测试的输入。
- 在测试用例和相应的设计输入之间创建可追溯性链接,以确保所有需求都经过测试,并且设计输出符合设计输入。
执行
- 在开发阶段创建的测试程序将按照测试计划执行,在验证活动中严格遵循。
- 如果出现任何无效结果或任何程序需要修改,记录更改并获得适当的批准非常重要。
- 在此阶段识别并记录任何问题作为缺陷。
- 可追溯性矩阵的创建是为了验证验证测试计划中识别的所有设计输入都已测试,并确定通过率。
报告
- 此活动在验证执行的每个阶段结束时执行。
- 设计验证报告提供了验证结果的详细摘要,其中包括配置管理、每种测试类型的测试结果以及验证活动期间发现的问题。
- 在需求和相应的测试结果之间创建设计验证可追溯性报告,以验证所有需求都已测试并提供了适当的结果。
- 任何不合格项都将进行记录并适当处理。
- 设计验证活动完成后进行审查并分别批准。
设计确认过程
- 某些设计可以通过与执行类似目的的类似设备进行比较来验证。这种方法尤其适用于验证现有基础设施的配置更改,或将要整合到新系统或应用程序中的标准设计。
- 演示和/或检查可用于验证产品的要求和其他功能。
- 可以通过数学建模、可以重现所需功能的模拟等方式分析设计。
- 对最终设计进行测试,以验证系统是否能够按照指定设计运行。
- 测试计划、执行和结果应作为设计记录的一部分进行文档化和维护。因此,验证是所有验证活动结果的集合。
- 当最终设计验证中使用等效产品时,制造商必须记录其相似性以及与初始生产的任何差异。
示例
- 让我们以一个简单的产品为例,一块防水手表。
- 产品需求文档可能声明“手表在游泳时必须防水”。
- 设计规范可能声明“即使用户长时间游泳,手表也应正常运行”。
- 测试结果应确认手表应满足这些要求,否则将进行重新设计迭代,直到满足要求。
设计验证和确认的优势
- 我们可以持续监控设计,使我们能够在每个阶段满足用户定义的需求。
- 验证设计将指出功能如何工作与预期如何工作之间的差异。
- 记录验证程序将有助于在将来发生任何更改或增强时,在任何阶段轻松理解功能。
- 开发时间将持续缩短,从而提高生产力,使产品按预期交付。
- 此过程包括所需采用的每种验证方法的范围和领域。
- 验证可以使用代表最终用户需求的详细设计数据进行。
- 必须捕捉结果与用户需求文档之间的任何差异。
- 验证设计的更改会导致重新验证活动。
- 重要的是记录验证过程中发生的每一项活动,这充分证明设计满足用户要求。