我的任务是开发用于自动GUI测试的系统,我可以使用一些建议。幸运的是,我们正在进行GUI的重大重新设计,并且从事此工作的开发人员对使他们的代码对自动化更友好的态度是开放的。我的问题是我不确定要问他们添加什么。无论添加什么钩子(Hook),都不会影响接口(interface)的功能,外观或安全性,也不会对性能产生明显影响。除此之外,天空无极限!

有问题的应用程序是通过AJAX访问的基于Web的Java应用程序。现有的大多数功能都是使用jsp,Javascript和少量Flash 8进行编码的。下一波功能将使用YUI Javascript library完成。我非常喜欢Selenium作为测试工具,因为它具有灵活性和价格标签(免费)。要点:我的目标是实现测试的可重用性和易维护性。我更喜欢编写检测,验证和练习页面元素的代码,而不是使用记录和回放系统进行测试开发。

谁能提供一些指导,说明可以在代码中放置哪些钩子(Hook)或一些最佳实践,以使测试开发变得更容易并且测试本身更加健壮?

最佳答案

基本指导原则:如果测试人员希望您进行测试,则他们需要一种使应用程序进入该状态的方法,一旦进入该状态,就需要一种验证该状态正确的方法。

因此,第一件事就是确保他们了解自动化是编程,而UI是您的API。

  • 同意不随意更改UI —如果测试人员Bob看到该组件从按钮更改为链接,并且符合规范,则单击并继续。尽管自动化中的代码更改相对容易,但是可能必须在多个位置进行更改。 (作为测试人员,您的工作是了解更改会发生并最大程度地降低维护成本;他们的工作是仅进行重要更改并了解其影响)
  • 一种确定您在哪个页面上的方法。...Bob可以告诉您登录和订单输入之间的区别,但是自动化如何知道?如果输入字段带有“用户名”标签,则为登录页面。如果输入字段带有订单号,则为订单字段。

  • 不好-更好的做法是使用一致的UI元素来识别页面-页面标题,隐藏的组件等。
  • 一种唯一标识与之交互的每个元素的方法(单击,键入,验证等),而不是INPUT_42...。
  • 询问开发人员测试人员可以向他们提供哪些信息以加快调试速度,并要求他们将其放入日志文件
  • 能够转储程序
  • 的状态
  • 一致的错误处理和报告(也是很好的UI设计)
  • 09-04 23:46
    查看更多