【问题标题】:Best practices in testing a website测试网站的最佳实践
【发布时间】:2011-06-09 01:26:10
【问题描述】:

在我们的 QA 团队中,我们会针对开发人员所做的每个提交运行一套自动化测试。由于每天都有相当多的此类提交,并且没有开发人员愿意等待超过几分钟才能获得反馈,因此我们仅限于 5 分钟的测试。在这 5 分钟内,我们希望运行尽可能多的测试。

我们发现硒测试最适合我们的需求:主要是因为它们可靠。如果 selenium 测试报告了一个 JS 错误,那么你有 95% 的把握这是一个真正的错误。 (这是我们从使用 HTMLUnit 的经验中学到的极其重要的属性)。但是,运行 selenium 测试又慢又重。 (我们维护了一个小型 cpu 场,因此我们可以异步运行许多 selenium 服务器和许多脚本)。

最近我们提出了一种新方法 - 仅在您真正需要它的地方使用 selenium:弹出窗口、ajax、一般的 JS,.. 在其他地方使用“文本浏览器”。例如,如果您想检查以下链接是否“有效”:

<a href='/somewhere'> link </a>

你真的不需要硒。您可以对页面执行 GET 请求,然后使用正则表达式/解析页面并使用 xpath/.. 底线 - 您不需要 JS 引擎。显然,这是一个更轻、更快的测试。

我们在这种方法上取得了很大的成功,我们遇到了以下链接:

<a href='/somewhere-1' onclick="foo()" > link 1 </a>
<a href='/somewhere-2' onclick="foo()" > link 2 </a>
... many more such links ...

因此,在这种情况下,您实际上不必运行按下每个链接的 selenium 脚本。只需使用 selenium 单击其中一个(因此您可以测试 JS 函数 foo() 的功能),然后使用文本浏览器验证其他链接的 hrefs。

我的问题是你认为我们应该在哪里划清界限?我很乐意听取您的意见 - 是否有“文本浏览器”工具(我们尚未使用 WebDriver)?

【问题讨论】:

    标签: selenium-rc web-testing


    【解决方案1】:

    在我看来,您正在做的事情与我期望您的开发人员所做的事情之间的界限有点​​模糊。

    在我看来,开发人员应该对他们的foo() 函数进行单元测试。 TDD in Javascript 对工具的支持有点低,但应该会发生。

    如果函数是单元测试,那么 selenium 将成为更多针对用户需求而不是在代码单元级别进行测试的地方。

    也就是说,QA 和开发团队之间的互动在社交方面非常复杂,可能很难就采用这种方法达成一致。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-10
      • 2011-06-29
      • 2020-02-05
      • 2010-10-17
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多