应该通过自动UI测试来测试哪些功能?


12

最近,我们有一位顾问告诉我们,如果某个功能只能通过自动UI测试(例如Selenium,编码UI)进行测试,则存在基础架构问题。虽然这种说法可能有点极端,但它与测试金字塔的思路相同,因为UI测试应占整个自动化测试套件的一小部分。

那么,哪些类型的功能应该进行自动UI测试?具有令人信服的体系结构的系统是否仍具有只能通过UI测试才能验证的功能,或者这些测试应仅用作一组单元和服务测试的“备份”?


除了UI的所有功能外,我猜想吗?

Answers:


11

大概您拥有某种将按钮和其他小部件连接到动作的体系结构-单击保存并应调用保存功能,依此类推。

假设您已经通过单元或集成测试对操作本身进行了很好的测试覆盖,那么自动化UI测试的目标是确保小部件都对底层操作进行了正确的调用,并正确显示了这些操作的结果。

换句话说,它们验证UI是否正确反映了模型的状态,并正确地连接到控制器。

另一个组件是UI代码中包含某些业务逻辑时。例如,也许您需要在密码字段中输入某些字符。您需要以某种方式测试这些功能,因为通过单元测试很难或不可能做到。


3

应该通过自动UI测试来测试哪些功能?

所有ui功能。

您应该测试:

  • 用户可以执行的所有功能。
  • 用户在其使用的所有浏览器(及其版本)中执行的功能。
  • 高兴(在每个步骤中做正确的事)和悲伤(用户犯错误)这两种路径。
  • 有效和无效数据。
  • 大号和小号。
  • 所有角色和特定于角色的功能角色。
  • 用户和管理界面。
  • 尝试闯入。
  • 创建与更新数据的工作符合预期。
  • Delete的工作并删除其他表中的关联数据库数据。
  • 键盘与鼠标样式的用户。
  • PC,电话,ipad等的不同设备或模拟器。

0

没有什么功能只能通过自动UI测试来测试。 诸如硒之类的工具只是模仿人类的行为,而不会使人类感到自杀。问问自己(或您的顾问)一个问题:“ 程序将如何测试一个人无法完成的UI方面? ”下一个问题是:“ 如果这样,您为什么要关心他们的工作?

另一方面,如果您具有这样的功能,是的,我要说您有一个潜在的体系结构问题。:-)


1
我认为“仅”它们是指自动化UI测试与单元测试或集成测试。我认为不可能创造出某种硒可以测试人类无法做到的东西(以人类的速度与硒的速度做模)
Bryan Oakley 2013年

抱歉,我可以看到您从问题中得到的答案。尽管您已经向我提出了挑战,要求开发一个只能由Selenium使用的应用程序-只是将其坚持到我们的UX团队即可:)
mragh 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.