1

我有一个包含多个结构实体的项目,每个结构实体都有子实体,如下图所示。

在此处输入图像描述

现在我正在尝试计划测试阶段。我检查了 UVVM、OSVVM 和 VUnit,发现 VUnit 是最简单、最快的启动方式。

我已经阅读了文档并对提供的示例进行了一些操作,然后我开始为一些子实体(如 A1、A2、...等)编写一些测试。

我的问题是如何在系统级别使用 VUnit 进行测试,我应该如何构建我的测试平台?

  • 我应该为所有子实体编写测试,然后为结构实体编写测试,然后为整个系统编写测试吗?
  • 我应该为结构实体编写测试作为交易吗?
  • 我是否应该在一个单独的架构文件中为所有子实体编写测试,并在顶级测试平台的测试套件中按顺序运行它们?
  • 还有其他建议吗?
4

1 回答 1

4

这类问题可能会因基于意见而被关闭,因此我将仅提供一些可以指导您做出决定的一般性评论。

  1. VUnit 不关心你正在测试的东西的大小。它可以是一个小功能,也可以是一个非常大的系统。基本的测试策略不是工具问题,而是您可以自由决定的问题。
  2. 无论测试理念如何,我认为大多数(如果不是全部)开发人员都同意尽早发现错误比晚发现错误更好/更便宜。这意味着您应该经常测试并从小事开始。多长时间和多小取决于测试开销和错误频率,这取决于所使用的工具、设计师的经验、问题的复杂性等。这里没有普遍真实的数字。
  3. 事务是一种编码抽象,因此它可以提高代码的可读性和可维护性。然而,对一个简单的问题使用过多的抽象并没有增加任何价值。如果你正在测试的东西有一个简单的总线接口,那么创建一个你一个接一个调用的简单的读写过程是有意义的。如果您有多个接口并希望在这些接口上执行并发事务,则需要更多。对此的 VUnit 解决方案是采用您的简单事务过程并在其之上添加消息传递。https://www.linkedin.com/pulse/vunit-bfms-simple-emailing-lars-asplund/解释了它是如何完成的
  4. 我不确定我是否理解你的最后一个问题,但如果你想只测试顶层的小东西,你需要在测试开始之前开发顶层。这将与第二名背道而驰。

免责声明:我是 VUnit 的作者之一,但我想我在这里设法避免了个人意见。

于 2020-06-16T21:28:42.997 回答