验证错误与验证错误

Verification errors vs validation errors

我对验证错误和验证错误有点困惑。我知道验证错误可能更具灾难性,并根据 product/software 需求规范检查我们是否构建了正确的产品。 另一方面,验证意味着我们是否以正确的方式构建产品。

但是,例如我不太确定验证错误。什么样的错误是验证错误。例如:由于可能错误的用户 i/ps 或 select 和更新操作的错误序列而导致的代码内部死锁等错误场景将被视为验证错误或验证错误?

有人能举几个验证错误的例子吗?

谢谢

"Are we building the product right?" - 这是验证问题。 "Are we building the right product?" - 这是验证问题。 考虑到这一点,死锁和其他错误的编程问题都是验证错误。显然,错误的代码可能会导致错误的产品,但根本原因在于验证。验证错误的示例是一些不良功能,例如泄漏移动支持或可访问性泄漏。

软件验证涉及确认设计符合要求并且没有错误。验证错误示例包括:

  1. 要求表示当输入=A,输出=B,但在功能测试期间软件产生输出=C
  2. 软件因 运行 次错误而失败,例如整数溢出、被零除、数组访问越界、指针访问错误或类似错误
  3. 在执行过程中,软件进入死锁状态(挂起)

可以使用各种开发过程和任务来检查设计是否已经过功能测试和验证。这些包括检查需求是否正确(即不冲突、完整等)、确认设计(和软件代码)满足需求、检查设计是否通过所有功能测试以及各种附加检查确认设计没有错误(从功能和稳健性的角度来看)。

verification, validation, and test 上的 link 有更多详细信息。