4

我在所有自动测试(单元测试、系统测试等)中都使用 AAA 语法(Arrange、Act、Assert)。最近我开始编写 Coded UI 测试。现在我想知道 AAA 语法是否适合这里。与单元测试不同,在单元测试中,每个测试都有一个动作和断言(或多个断言),我可以有数百个运行不到几分钟的单元测试,编码的 UI 测试将运行更长的时间。因此,如果我以与编写单元测试相同的方式编写编码 UI 测试,它们将需要几个小时(如果不是更长时间)来运行。

如果我将编码的 UI 测试与手动 UI 测试进行比较,那么菜单测试不使用 AAA 语法以节省时间(不是一遍又一遍地执行相同的“排列”操作,只是为了在再次单击后检查字段的值)。

你在你的应用程序中做什么?您如何推荐编写 Coded UI 测试?

4

1 回答 1

1

是的。在这里也使用相同的方法。手动测试人员在一次测试中进行大量验证。在自动化时,最好将多个验证测试用例拆分为更小的测试用例,并且只对每个测试用例进行最少的断言。这将使您的测试用例维护在未来变得容易。一旦您已经在测试方法中进行了断言,再继续使用另一组 AAA 并不是一个好习惯。

时间不是问题。UI 自动化应该运行缓慢。CodedUI 测试通常在具有测试控制器和测试代理的测试实验室上运行。在这里,您的数百个测试将在所有测试代理上并行运行,从而减少整体执行时间。

我的 CodedUI 测试方法是这样的:

[TestMethod]
public void VerifyWhenThisThenThis() 
{
   // Prepare test data, Perform prerequisite action

   // Do test

   // One or more assertions to verify one major requirement only. 

   // If other major verification exist then split the test case 
   // and write a new test method for it.
}

如果测试用例很大,那么请手动测试人员将其拆分(或自己拆分并通知测试人员)。维护一个单独的自动化测试包,其测试用例比手动测试人员的测试用例短。

于 2014-03-20T06:40:06.433 回答