4

我正在使用 Microsoft Test Manager 2012 创建和运行自动和手动测试。我定义了 2 种配置:一种用于应该在 SQL Server 上运行的测试,另一种用于应该在 Oracle 上运行的测试。

当我创建一个测试用例时,MSTM 会自动创建两个测试:一个用于 Sql Server,一个用于 Oracle。它们具有相同的 ID,这意味着它们是相同的测试。到现在为止还挺好。这就是应该发生的事情。

但我想自动化这两个测试。当我创建我的代码并将其与测试用例相关联时,两个测试都会获得自动化代码。这很糟糕,因为我希望测试 1 在 SQL 上运行,而测试 2 在 Oracle 上运行,并且它们共享相同的测试代码。

这是否意味着我必须在我的测试中加入一些逻辑,以便他们知道他们应该在哪个数据库中运行?有没有更好的方法来避免这种情况?

4

1 回答 1

1

选项 1
创建两个不同的测试用例,一个用于 SQLServer,一个用于 Oracle,然后首先由Test1自动化,第二个由Test2自动化。因此,您可以通过使用DefaultLabTemplate11的单个构建定义来运行它们。

使用建议的方法,测试代码将不必实现额外的逻辑来识别它们应该在哪个数据库上运行。

您说您希望将测试用例用于手动和自动测试,所以我想您今天拥有的测试用例包含几个描述如何手动运行测试的测试步骤。
在这种情况下,您可以克隆现有的测试用例并使用共享的测试步骤,但是当您添加/删除一些测试步骤时,您仍然需要更新两个测试用例......这将是建议方法的唯一缺点。

为了摆脱这个缺点,您可以创建“手动数据库测试”测试用例,分配您已经拥有的两个配置并将其仅用于手动测试。此测试用例将包含测试人员的所有测试步骤
然后创建我上面描述的两个测试用例,将它们自动化并仅将它们用于自动化测试。

选项 2
如果您的测试环境是虚拟机,您可以避免创建两个测试用例

  1. 将连接字符串存储在测试环境的文件中,并让测试读取该文件。
  2. 创建两个快照:第一个包含包含 SQLServer 连接字符串的文件,第二个包含 Oracle 连接字符串。
  3. 创建两个构建定义,一个将环境恢复到第一个快照,第二个将环境恢复到第二个快照。

这样,您可以保留单个测试用例,但另一方面,如果构建定义应该在部署和运行测试之前构建源代码,那么拥有两个构建定义可能会变得不方便。

嗯...第三个选项是在测试中实现额外的逻辑,以便识别它运行在哪个数据库上。
但在这种情况下,您还必须创建两个构建定义,因为您有两个配置,并且每个构建定义只能选择一个。

(我希望我已经设法很好地描述了它,不要犹豫,问它还有什么不清楚的地方)。

于 2013-10-24T07:53:25.450 回答