AAA是编码UI测试的好习惯吗?

时间:2014-03-14 18:51:07

标签: coded-ui-tests ui-testing

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

如果我将编码的UI测试与手动UI测试进行比较,那么这些测试不会使用AAA语法来节省时间(不会做同样的事情'安排'一遍又一遍的行动在另一次点击后查看字段的值。

您在应用中做了什么?您如何推荐编写编码UI测试?

1 个答案:

答案 0 :(得分:0)

是的。这里也使用相同的方法。手动测试仪在单个测试中进行大量验证。自动化时,最好将多个验证测试用例拆分为较小的测试用例,并且仅对每个测试用例进行最小断言。这将使您的测试用例维护变得简单。一旦你在测试方法中完成了断言,继续使用另一组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.
}

如果测试用例很大,请让手动测试仪将其拆分(或自行拆分通知测试人员)。保持一个单独的自动化测试包,其测试用例短于一个手动测试仪。