问题标签 [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 回答
15 浏览

testing - 在自己的文件中定义测试参数

在我的许多系统测试中,我测试了所有模式的特定功能。例如,在这个测试中,我测试了所有模式的警报功能:

如果我从每个测试中删除模式的定义并将其移动到自己的文件中,您认为这是否有效?因此,如果我的模式发生变化,我不需要更新每个测试。

0 投票
2 回答
5411 浏览

javascript - 如何停止 DataTables 实例已启动的所有当前正在进行的 Ajax 查询?

简要描述;简介

将测试服务器重置为已知状态会导致我的测试失败,因为 DataTables 实例启动的 Ajax 请求在服务器重置时正在进行。我想通过在服务器重置之前停止 DataTables 请求来防止这种情况。

详细说明

我有一个在某些页面上使用 DataTables 的应用程序。这些数据表都执行服务器端查询来填充它们的表。

当我执行系统测试时,有时会发生竞争情况:

  1. 测试运行程序启动测试服务器。

  2. 测试运行程序在测试浏览器中加载一个页面,其中某处有一个 DataTable 实例。

  3. 测试运行程序运行测试,该测试执行其检查并结束。

  4. 测试运行程序将测试服务器重置为已知状态以进行下一次测试。

  5. 页面上显示一条警报,指出 DataTables 遇到了 Ajax 错误。警报说:

DataTables 警告:table id=[some id] - Ajax 错误。有关此错误的更多信息,请参阅http://datatables.net/tn/7

  1. 我的测试系统不期待警报,即使测试实际上是成功的,它也会感到困惑并记录失败。(或者在某些情况下,它会崩溃。)

我知道这是因为服务器突然中断了 Ajax 请求。我正在寻找的是一种防止警报出现的方法。我想在服务器重置之前停止所有正在进行的 DataTables 请求。

解决方案已被拒绝

  • 告诉 DataTables 实例不要使用警报:如果 DataTables 实例遇到与重置测试服务器无关的问题,我希望我的测试大声失败。

  • 修改测试服务器:我更喜欢让服务器保持简单,而不用担心可能无法响应的请求。

  • 等待客户端所有请求结束:这会大大减慢测试速度,尤其是当这种等待重复进行数十次测试时。

  • 将测试浏览器指向一个新页面,上面没有 DataTables,因为这会中断当前请求:这又会损害测试性能。

0 投票
1 回答
280 浏览

unit-testing - KLOC在每个测试阶段的成功标准是什么

我想知道 KLOC 的每个单元/集成/系统/用户接受测试的成功标准是什么。

我听说每个 KLOC 不应该有超过 5 个编译器缺陷。每个测试阶段的成功标准是否有这样的标准值?

如果我错了,请指教我。提前感谢您的帮助。

0 投票
3 回答
328 浏览

unit-testing - 有了模拟测试,单元测试+系统测试就够了吗?

在你跳到答案之前,让我们定义我的意思(注意你可能有不同的定义,这是问题的一部分,但这是我正在使用的)

模拟测试又名基于行为的测试——测试代码是否正确,即测试验证行为。所有合作者都被嘲笑。

单元测试--- 专注于系统的一小部分(如类)的低级测试。当我们使用模拟测试时,协作者会被模拟。

集成测试---测试系统的两个或多个部分(如两个类)的交互。被测组件不会被模拟。

系统测试--- 将系统作为“黑匣子”进行测试,即从无权访问系统内部的用户的角度进行测试。使用真实组件(数据库、http 等)

我慢慢意识到,当以这种方式完成单元测试时,您可能不需要集成测试。

  • 基于行为的单元测试应该验证组件之间是否正确通信
  • 系统测试应该捕捉到使用真实组件的错误

当系统测试失败时,集成测试成为可选的故障排除工具(因为它们更细粒度)。(但是,您可能会争辩说,除了偶尔出现的边缘情况外,具有良好日志记录的系统测试就足够了。)

我错过了什么?

更新:“足够”是指这些单元测试+系统测试将捕获单元+集成+系统测试会发现的所有错误。

更新:“足够”是指单元+集成+系统测试会发现单元+系统测试找不到的错误吗?我真正在寻找的是一个显示集成测试是必要的示例。

0 投票
1 回答
220 浏览

java - SWTBot 中的剪贴板访问

运行 SWTBot 测试时如何访问剪贴板?

以下代码引发无效的线程访问。

上面的代码在 UI 线程中运行时有效。这是唯一的方法吗?

如何访问 SwtBot 线程中的剪贴板?

0 投票
3 回答
5557 浏览

javascript - Nightwatch.js 循环遍历表

我正在使用 Nightwatch.js 编写一些系统测试。现在我想遍历表的所有元素并检查它们的值。我如何使用 Nightwatch.js 做到这一点?该表有一个<tbody>包含几行的元素<tr>。每行有几列<td>。我想获取<td>每一行中每个第一个元素的值。

0 投票
3 回答
6723 浏览

javascript - Nightwatch.js 不执行单击选项卡

我正在使用 Nightwatch.js 来测试一个网站。我希望 Nightwatch.js 单击网站上的选项卡,但单击不起作用。至少没有影响...

要单击的元素的 HTML 代码如下所示。

在 Nightwatch.js 中,我写道:

但什么也没有发生。选项卡未打开。Nightwatch 中的下一个命令失败了。这意味着 Nightwatch 正在执行单击,但选项卡未打开。但是,当我手动单击它时,我可以打开它。这里可能是什么问题?

0 投票
1 回答
22 浏览

web-services - 如何确保输出更改的 Web 服务正常工作?

我想确保我们的网络服务正常工作,但我不知道该怎么做,因为网络服务数据由后台控制,并且数据每天都会多次更改。

Web 服务加载的数据不是来自数据库,而是来自动态加载和分发的 json 文件。我已经考虑替换这些文件来测试行为,但不良数据是导致功能异常的常见原因,所以我宁愿同时测试这些文件,或者至少有一些方法来确保数据对当前部署的源有效。

我也欢迎对书籍提出建议。

0 投票
0 回答
662 浏览

python - 系统/集成测试 Flask Web 应用程序

我有一个使用 Flask 并在后端与数据库对话的 Web 应用程序。它还使用 Amazon AWS S3。我已经为这个包编写了单元测试。

问题是我想在测试外部依赖项的地方编写集成测试。我一直在阅读有关集成测试和系统测试的信息。我是否要创建一个新包让说 FooSystemTests 或 FooIntegrationTests 或者它们应该是我的应用程序包的一部分?我计划将此作为我的部署过程的一部分。我的计划是在集成测试中我将测试我的外部依赖项,在系统测试中我将测试诸如如果我去一个路线我会得到什么(测试就像系统是一个黑匣子一样)。我还阅读了有关硒测试的信息,那应该是系统还是集成?

任何想法/想法都会非常有帮助。

0 投票
1 回答
663 浏览

kubernetes - Kubernetes 中的端到端系统测试

我有兴趣了解是否有任何框架使用 kubernetes 或其他可用于编写端到端系统测试的框架,以及在更复杂的系统中相互通信的一系列模块/应用程序。

或者,我很想知道是否可以从第一原理方法使用 kubernetes 编写系统测试。

我的用例是,有问题的模块可能是用许多不同的框架和语言编写的,但它们都可以单独停靠。

我知道fabric8声称支持使用 kubernetes 和 arquillian 进行系统测试,但这似乎有一个明显的缺点,即所有应用程序都需要用 java 编写,这对我来说是非常不可行的。

更新:看起来确实可以在 kubernetes 中为特定示例/用例编写端到端测试,请参阅https://github.com/kubernetes/kubernetes/issues/6183。然而,这个问题似乎有一段时间没有被触及。虽然这确实给了我一些希望,我所追求的并不是不可能的。

理想情况下,我不介意浏览/指向可能有助于我查看“hello world”kubernetes 示例的 e2e 测试示例,例如 k8petstore 或更简单的示例。

特别是,kubernetes 项目的相关部分似乎是https://github.com/kubernetes/kubernetes/tree/master/test/e2e