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

user-interface - Apple WebObjetcs GUI 上的回归测试

我最近在一家公司开始了一份新工作,该公司严重依赖使用 Apple Web Objects 开发的应用程序。碰巧这家公司没有办法在收到新更新、修复错误或新功能时进行自动化测试。我们无法访问代码,因为它是专有应用程序。我的想法是开发一套测试用例,让我们可以通过 GUI 进行回归测试。我已经为此寻找工具,但找不到任何能够“查看”GUI 中哪些组件的工具。

在我到公司之前,其他人已经尝试过使用 HP LoadRunner,但没有成功。我尝试使用 AutoIt 3.0 只是为了检查它是否会识别这些字段,但也没有成功。

任何有经验测试此类应用程序的人?您认为哪些工具适合此目的?

我很欣赏你的意见。

谢谢!布鲁诺

0 投票
0 回答
691 浏览

testing - 为 Selenium 测试预填充数据库的流行方法是什么?

如果我有一个需要 X 小部件作为前提条件的测试,我想避免在测试中通过前端制作 X 小部件的繁琐过程。主要的替代方案似乎是为每次测试运行加载一个声明的 DB 转储,保证预先确定的状态(转储文件是通过手动执行前提条件然后转储结果模式生成的),或者使用 ORM .

鉴于我们所有的业务逻辑都位于应用程序层,使用 ORM(Hibernate)复制它已被证明是笨拙的。我的 Selenium 框架使用 Java,应用程序使用 symfony 使用 PHP。

有什么选择?有很长的测试,以某种方式从 Java 调用 symfony/PHP 命令,或者在 repo 中有一个难以维护的转储文件?我应该在预设数据库上使用事务吗?优化测试运行时间和编写/维护简单性的权衡是关键。我一直在寻找 DbUnit 之类的工具,或许可以提供帮助。

0 投票
2 回答
317 浏览

python - 使用python的日期敏感回归测试

嘿,我正在帮助为我们的 Python Web 应用程序设置回归测试套件。我们的许多测试都是安排样式测试,其中当前日期很重要。例如:创建从 2 月 1 日开始的一个月内每周运行的重复事件。

为了测试这一点,我真正想做的是覆盖当前日期,以便我可以及时前后移动以检查应用程序的状态。例如,我可以添加一个仅测试页面,让我设置“当前”日期,该日期被传递到 python 后端并用于日期计算。

过去,当我这样做时,我从第一天开始就将它设计到应用程序架构中。不幸的是,我来晚了这个项目并且没有应用程序支持。

所以这是我的问题,有什么方法可以覆盖网络服务调用的当前日期?例如,我可以拦截当前日期的呼叫(可能是猴子补丁吗?)。我宁愿不必做整个 IOC 的事情,因为这意味着要改变数百种方法。- 戴夫

0 投票
1 回答
96 浏览

ruby - 如何验证关键字匹配是否在 Ruby 和 Rails 中突出显示

我正在使用 Ruby 和 Rails 编写测试脚本。我必须验证是否突出显示了正确的关键字。我该怎么擦。例如。“机密”是我的关键字,想验证它是否被突出显示。

0 投票
4 回答
52228 浏览

testing - 实施`make check`或`make test`

如何使用 Make 实现一个简单的回归测试框架?(如果这很重要,我正在使用 GNU Make。)

我当前的 makefile 看起来像这样(为简单起见进行了编辑):

我想要一组回归测试,例如expr.in测试一个“好”的表达式并unrecognized.in测试一个“坏”的表达式,其中expr.cmp&unrecognized.cmp是每个表达式的预期输出。手动测试如下所示:

我想在生成文件中添加一组规则,如下所示:

我的问题:
• 我在 [something] 占位符中放了什么?
• 有没有办法用diff“测试expr失败”的消息替换消息?

0 投票
2 回答
3326 浏览

testing - 测试与第三方 API 的连接如何融入持续集成?

我前段时间写了一个测试,测试我在代码和第三方 API 之间编写的集成。测试确保集成正常工作并且我们得到预期的结果。

今天正式构建失败,因为测试在尝试连接到第三方 API 时收到 500 错误。

测试这样的情况有意义吗?

0 投票
5 回答
2145 浏览

css - Web 应用程序样式和布局的回归测试

我意识到这是一项非常重要的任务,但是有没有办法对 Web 应用程序的样式和渲染布局进行回归测试?

我发现对服务器端和客户端的单元测试和回归测试功能很简单。

但是,我遇到的一个令人沮丧的问题是,为了解决一个布局问题而进行的 CSS 更改会破坏不同页面上的布局和样式。我知道如何检测这些的唯一方法是手动查看应用程序中的每个页面,并将其与我自己的预期进行比较,但显然,当应用程序可能有几十个页面时,这可能会很麻烦而且成本很高。是否有使用图像处理或其他技术自动检测此类问题的研究?

0 投票
3 回答
123 浏览

testing - 删除和组合回归测试以加快测试速度是不好的做法吗?

我正在开发一个与 3rd 方网络服务集成的应用程序。我目前有单独的集成/回归测试,它们调用 Web 服务来执行以下操作:

  • 修改策略 - 添加车辆
  • 修改政策 - 移除车辆
  • 修改策略 - 添加多辆车
  • 修改保单 - 添加被保险人
  • ...

大多数这些测试都是在发现和修复错误时创建的。3rd 方网络服务很慢,我正在尝试加快测试过程。因为每个测试都会调用 Web 服务,所以将它们组合成一个只调用一次 Web 服务的测试会使事情变得更快。

将这些测试结合起来会是不好的做法,因为每个测试都是为特定的错误编写的吗?我担心的是重构中的错误可能会导致稍后重新引入错误。

0 投票
1 回答
1095 浏览

c++ - 我试过:valgrind,_GLIBCXX_DEBUG,-fno-strict-aliasing;如何调试此错误?

我有一个非常奇怪的错误,我花了几天时间试图弄清楚,所以现在我想看看是否有人有任何评论来帮助我理解发生了什么。

一些背景。我正在开发一个软件项目,该项目涉及使用 Boost 1.45 将 C++ 扩展添加到 Python 2.7.1,因此我的所有代码都通过 Python 解释器运行。最近,我对代码进行了更改,它破坏了我们的一个回归测试。这个回归测试可能对数值波动(例如不同的机器)过于敏感,所以我应该解决这个问题。然而,由于这个回归是在产生原始回归结果的同一台机器/编译器上中断的,我将结果的差异追溯到这个数字代码片段(可验证这与我更改的代码无关):

它构造了一些数值表。注意:

  • %a prints 提供精确的 ascii 表示
  • 左侧(lhs)是 c[3],rhs 是其他 8 个值。
  • 下面的输出是 i 的值远离 f, df 的边界
  • 该代码存在于 i 上的循环中,该循环本身嵌套了多个层(因此我无法提供一个孤立的案例来重现此代码)。

所以我克隆了我的源代码树,我编译的两个可执行文件之间的唯一区别是克隆包含一些额外的代码,这些代码甚至在这个测试中都没有执行。这让我怀疑它一定是内存问题,因为唯一的区别应该是代码在内存中的位置......无论如何,当我运行这两个可执行文件时,它们产生的差异如下:

您可以看到 c[3] 中的值略有不同,而 rhs 值没有任何不同。因此,一些相同的输入会导致不同的输出。我尝试简化 rhs 表达式,但我所做的任何更改都会消除差异。如果我打印 &c[3],那么差异就会消失。如果我在我可以访问的两台不同的机器(linux、osx)上运行,则没有区别。这是我已经尝试过的:

  • valgrind(在 python 中报告了许多问题,但在我的代码中没有任何问题,也没有任何看起来严重的问题)
  • -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_ASSERT -D_GLIBCXX_DEBUG_PEDASSERT -D_GLIBCXX_DEBUG_VERIFY(但没有断言)
  • -fno-strict-aliasing (但我确实从 boost 代码中得到了别名编译警告)

我尝试在有问题的机器上从 gcc 4.1.2 切换到 gcc 4.5.2,这种特定的、孤立的差异消失了(但回归仍然失败,所以让我们假设这是一个不同的问题)。

我能做些什么来进一步隔离问题吗?以供日后参考,有没有什么方法可以更快的分析或理解这类问题?例如,鉴于我对 lhs 变化的描述,即使 rhs 没有变化,你会得出什么结论?

编辑:问题完全是由于-ffast-math.

0 投票
1 回答
739 浏览

unit-testing - 防止回归的单元测试示例

我是我的 IT 商店(一家中型零售商)中唯一编写单元测试的开发人员。管理层的任务是向我们的开发人员介绍这样做的好处。

“啊哈!”之一 导致我对单元测试上瘾的时刻是意识到单元测试套件可以防止代码中的回归,如果您手动测试,您永远不会想到重新测试(因为它似乎与您所做的更改无关)。

我正在寻找包含在演示文稿中的此类测试的示例。理想情况下,它应该是“真实世界”,足以具有可信度,但又足够独立,适合课堂环境。自制测试和指向相关文本的指针都很好。实现语言并不重要。