javascript - (单元)测试网站界面的方法

标签 javascript testing user-interface

我想知道测试网站“界面功能”的最佳实践是什么。

我对哪些方法可用于测试界面和动态生成的内容感兴趣。特别是,我很难弄清楚是否可以为需要用户交互的操作创建自动化测试,或者这是否只是浪费时间,我应该让一些 Beta 测试人员来做这类工作。

我会尝试举一些例子:

  1. 在 SO 上,当您键入新问题的标题时,会出现一些“相关问题”。显然,您可以实现某种测试,告诉您相关问题的数量正确,并且它们得到显示,但是您如何测试链接的“正确性”?你会设置一组模拟问题(总是相同的)并检查返回的问题是否是一些预先设定的问题?当然,这会奏效,但它很难测试您的搜索算法的稳健性。当其他问题被添加到池中时会发生什么?返回的结果是否仍然“相关”?

  2. 点击某个按钮会调用一个 JS,生成一个“popup div”,用户可以在其中四处移动。同样,您如何自动测试这种接口(interface)?外观可以考,机芯怎么考?

  3. 您有一个界面可以将文件上传到站点以嵌入到您的消息中(如 SO 上的图像图标)。因此,用户需要 1) 按下按钮 2) 浏览文件 3) 等待上传 4) 按下确定,最后他/她将在消息中看到图像。同样,我可以看到如何自动执行上传测试(例如,尝试上传一个“正常”文件,然后上传一个太大、格式不受支持的文件等等)。但是接口(interface)的使用呢?如果 OKBrowse 按钮因任何原因不起作用,上传工作没有用,最终,您仍然无法上传文件并在您的消息中看到它。

显然,以上所有内容都非常容易进行 Beta 测试(只需告诉一群用户测试您的网站,他们会注意到是否有任何问题),但您能做到吗(更重要的是,您会花时间实现) 对这类事情进行自动化测试?此外,在进行 Beta 测试时,您是否会让测试人员“狂奔”并在网站上为所欲为,或者更确切地说,告诉他们您希望他们测试哪些功能。我倾向于第一个,但我愿意接受建议。

最佳答案

我们这里用的是Selenium .它有一些怪癖,但总的来说,它使我们能够极大地增加测试覆盖率,我认为有几千个新系统测试正在点击。请注意,有人可能会争论这是否真的是“单元”测试。我想这取决于你的堆栈。我们必须为此运行我们的系统,所以它是更多的集成测试。

对于 JS 的纯单元测试,我们使用 QUnit , 和 HTMLUnit对于不使用真实浏览器但仍为您提供 DOM 和诸如此类的东西的“中间道路”测试,也证明有些流行。

关于javascript - (单元)测试网站界面的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191263/

相关文章:

javascript - Three.js + Threex + Javascript : "fromArray is not a function"?

c++ - 必须在 GUI 线程中创建小部件错误!。如何更正代码?

Android System Trace [跟踪标记]

javascript - 正则表达式匹配提取命令

javascript - 在特殊事件上添加多个变量并输出到特定的 div。 (jQuery 和 Javascript)

javascript - 将 getJSON 包装到一个函数中,以便能够返回一个值

ruby-on-rails - rails : test a helper that needs access to the Rails environment (e. g。请求.完整路径)

testing - 带有测试服务器的 Git 工作流程

python - DOCTEST==argv[0] 作为约定?

java - 添加到第三个面板时,我的两个面板连接在一起