问题标签 [system-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
574 浏览

ruby-on-rails - 在系统测试中设置 current_user

我正在使用系统测试来验证以下流程是否按用户预期工作:

  1. 在表格中注册
  2. 登录
  3. 访问帐户页面
  4. 更新账户信息

但是,创建用户后出现错误:

错误指向设置的current_user代码application_controller

我的假设是否正确,即无法在测试中访问会话?如果是这样 - 那么我该如何设置current_user以便我可以测试上面的场景?如果不是这样 - 什么可能导致错误?

0 投票
1 回答
200 浏览

ruby-on-rails - 水豚has_content?堵塞

有时我真的需要检查数据库中的某些内容,

但是,如果我立即使用 u = User.last 进入数据库,那么 AJAX 请求可能不会完成并且在 User.last 中 - 我会找到旧记录。

所以为此我需要一些解决方法,例如,

断言 has_content? 'Success' do # 这里我们访问数据库端

我们检查成功消息,哪个服务器响应,这是我们可以进入数据库的标志。我怎样才能做到这一点?提前谢谢大家。

0 投票
1 回答
252 浏览

unit-testing - TFS - 自动机测试的执行顺序

假设我有系统测试:A 和 B,其中 A 包含数据库的记录,B 尝试修改它。当 A 失败时,B 也会失败。A 和 B 被编写为“单元测试”(测试方法),A 和 B 也是 TFS 中的测试用例,是自动化的,与这些“单元测试”相关联。我把它们都放在了一个测试计划、测试套件中。我想通过“运行功能测试”步骤来执行它们。

我如何告诉 TFS 以正确的顺序执行它们?

开发此类测试的最佳实践是什么?

0 投票
1 回答
37 浏览

java - 功能 API 测试:表单驱动的应用程序

我的应用程序要求我的用户通过一系列表格,以便我可以收集数据并最终在最后对一系列表格中的所有数据进行操作(例如保险申请或类似的东西)。在整个过程中存在一些不容易进行单元测试的要求,我想知道我可以采用哪些好的实践来测试我的 API 以保持我的测试套件 DRY 并促进尽可能简单的测试过程-继续写作。

作为一个我要测试的需求示例:用户在应用程序的一个阶段(地址、dob 等)输入一些关于他们自己的个人元数据。用户有一个仪表板,他们可以随时访问以查看其帐户的基本概览。我需要确保在填写申请表的过程中,他们可以移动到他们的仪表板并查看浮出水面的值。

我可以采用哪些测试模式来保持 DRY?我认为,如果我只是隔离每个功能测试并重新编写整个测试设置以使用户进入填写应用程序的阶段,事情会很简单,但这肯定会减慢测试过程。

0 投票
2 回答
1077 浏览

unit-testing - 您如何用两种流行且看似矛盾的解释来定义功能测试?

我一直在研究功能测试的定义,无法找到具体的解释,希望能提供一些额外的信息来帮助协调这一点。

我遇到的两个主要想法是:

  1. 功能测试作为一种测试类型,由以下测试级别组成:单元测试、集成测试、系统测试和验收测试。

在此处输入图像描述

  1. 功能测试作为与单元测试和集成测试(有时是系统测试的一个子集,其他时间在它之前)分开的级别,它使用黑盒方法对产品进行端到端测试。目的是验证定义的所有功能规范。

在此处输入图像描述

0 投票
0 回答
296 浏览

maven - 如何设置 Jenkins 进行构建、单元测试和系统测试

我想为控制机械臂和其他硬件的 JavaFX 应用程序设置一个像样的构建链:

  • 我们将 BitBucket 与 Git Flow 模型一起使用。
  • 我们在使用 Maven 构建的 IntelliJ 中有 2 个开发模块和 1 个系统测试模块。
  • 我们有单元测试、集成测试和系统测试。单元和集成测试使用 JUnit,可以在 Jenkins 主机上运行,​​对于系统测试,我们使用 TestNG,它们可以在 Jenkins 代理上运行 TestFX 测试。(我认为 TestNG 比 JUnit 更适合系统测试)

开发构建项目(构建、单元+集成测试)已经到位。最近通过复制开发项目、添加系统测试并忽略单元/集成测试来建立测试链。(所以构建应用程序完成了两次)

我们有两种类型的系统测试:

  1. 相当简单并在应用程序本身上运行的测试
  2. 更复杂的测试,在与机器人手臂的多个模拟器交互的应用程序上运行

现在我需要设置第二种类型的测试。我的问题是:在 Jenkins 中进行设置的最佳方法是什么?

我在这里阅读有关 Jenkins Pipelines 和 Blue Ocean 插件的信息,有关矩阵配置项目的信息。对我来说,什么是实现目标的理想方式有点令人困惑。

我不知道如何从 SystemTest 模块中的 testng.xml 文件扩展到灵活的测试。我可以在测试中放置一种功能标签,以便设置正确的先决条件吗?例如,对于类别 1 中的测试,只需要为 TestFX 启动主应用程序。但是,对于类别 2 中的测试,需要启动和配置多个模拟器。我认为使用一种功能标签将使这更易于维护。

我的目标:

  • 易于维护 Jenkins 流程
  • 高效的构建,因此更喜欢复制工件而不是第二次构建
  • 可以将系统测试拆分到多个代理上,最好不用我担心在哪里运行(类似于 Selenium Grid)
  • 如果测试需要它们,则启动正确的依赖项(模拟器等)
  • 由于应用程序中使用了画布,我们正在考虑在具有 OpenGL 3D 加速的 VM 上运行测试。如果测试能够按需分配、启动、停止虚拟机,那就太棒了(但只会节省一些电力)
  • 从所有代理收集所有测试结果的轻松报告。请注意,我更喜欢 JUnit 报告,该报告突出显示哪些测试被@Ignored。TestNg 报告格式,没有提及@Ignored 测试。
0 投票
1 回答
2028 浏览

ruby-on-rails - 功能规格和系统规格之间的区别

功能规格系统规格之间有区别吗?两者似乎都使用 Capybara 来测试完整的应用程序,但他们在 RSpec 上有不同的文档。

0 投票
0 回答
31 浏览

github - 如何在 GitHub 上自动修改 Pull Request?

我想让 TravisCI 或其他一些 GitHub 应用程序根据我提供的脚本自动修改拉取请求。我怎样才能做到这一点?(或者也许有比我想出的更好的解决方案。)

原因:

我正在尝试向 GitHub 项目添加集成测试,以便它自动运行项目并将输出与已知的良好输出进行比较。如果有差异,它应该报告错误。

但是,我的测试在多个平台上运行并使用不同版本的库。平台和库的不同组合导致不同的输出,都是有效的。例如,旧版本的库可能会进行与新版本不同的优化,因此输出不同但都有效。

由于难以为每种可能的库组合生成输出,我认为 TravisCI 可以生成它们并代表 PR 作者将它们添加到拉取请求中。

或者一个完全不同的系统测试解决方案也可以。谢谢!

一个更具体的例子:

我正在从事的项目是pcb2gcode。它将电路板布局 (gerbers) 转换为 CNC 机器 (g 代码) 的指令来铣削和钻孔板。根据某些库的版本,例如boostgerbv,输出可能略有不同但仍然有效。

我想要一个测试 gerbers 目录,该目录会自动运行并与已提交到 github 的预期输出进行比较。如果实际输出与预期输出匹配,则测试通过。

但是预期的输出取决于库。一种解决方案是为不同的库组合提供预期的输出。然后与正确的预期输出集进行比较。

生成这些预期输出很困难,因为开发人员需要使用所有库组合运行代码。TravisCI 正在运行测试并生成输出,因此它也可以将这些新的预期输出写入 PR。然后所有测试都将通过,并且可以在代码审查期间与 PR 的其余部分一起检查预期的输出。

或者其他更好的系统测试方法!

0 投票
1 回答
39 浏览

ruby-on-rails - 为什么在我单击按钮后,rails 测试会恢复到初始路径?

我有以下系统测试(Rails 后端、React/Redux 前端单页应用程序):

它应该在成功注册后将用户引导到“/books”页面。然而这个测试失败了。当我将断言更改为:

它通过了。检查这类事情的正确方法是什么?

0 投票
0 回答
519 浏览

ruby-on-rails - Rails5 系统测试期间的 LDAP 错误:机架应用程序错误处理请求 { POST /login }

LDAP 身份验证是在 Rails 中使用https://github.com/plataformatec/devise/wiki/How-To:-Authenticate-via-LDAP实现的,并且工作正常。

在系统测试期间尝试使用 LDAP http://guides.rubyonrails.org/testing.html#system-testing失败:

由于ldap.yml文件而发生错误,似乎测试无法从 extern 文件中读取配置。替换 LDAP 参数的解决方法

将避免错误。

请告知这是否是一个错误。