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

recursion - 递归函数的白盒和黑盒测试

我在迭代函数方面学习了白盒和黑盒测试。现在我需要对几个递归函数(在 F# 中)进行白盒和黑盒测试。对 gcd 采用以下递归算法:

对于白盒测试:我究竟如何覆盖算法的不同分支?天真地可以说有两个分支,但是当函数被多次调用时,可能的分支显然会增加。我是否应该使用导致不同数量的递归调用的参数进行测试,或者我应该如何确定要测试的值?

黑盒:我了解黑盒测试的一般概念。我们应该在不了解其内部工作原理的情况下查看我们可能想要调用该函数的可能值。在这种情况下,我只是不确定我们可能想用哪些值来调用它。一种方法可能是从 gcd = 1 的两个值 m 和 n 开始,然后对值 m 和 gcd = 2 执行相同操作,直到某个任意数 n 的某个 gcd= n。这是应该如何去做的吗?

0 投票
2 回答
491 浏览

java - 如何使用 HashMap 模拟我的 Mongo DB 存储库

我正在尝试找出一种方法来创建我的 Mongo DB 存储库的模拟实现,该存储库在幕后使用了 HashMap。这样,我就不必模拟每一个数据库调用,而可以简单地让数据库充当黑匣子,并在最后检查结果。

0 投票
1 回答
306 浏览

software-design - 黑盒/白盒测试矛盾

所以我已经知道白盒和黑盒测试之间的区别,但我正在寻找相当简单的例子,白盒说“一切正常”,黑盒测试说“这里有问题”——以及副反之亦然

这些示例将出现在相当流行的软件产品中。ie - Microsoft Windows、Word 或方程求解器(如下所示)

与此类似程度的东西:(黑盒测试失败而白盒通过)

示例:求解二次方程;

输入数据:系数A、B、C的数值;

输出数据:根 X1 和 X2 的数值

黑盒测试

黑盒测试(环境,用户):否(内部模块有错误,工作不正确)

  • 我被要求提供系数 A、B 和 C 的数值——我确实提供了要求的值。
  • 内部 SQRT 模块(求解二次方程)没有提供所需的根 X1 和 X2 的数值。
  • 结果,我得出结论,内部模块内部存在错误。

白盒测试

白盒测试(内部模块):是(我工作正确)

  • A、B 和 C 的值的输入组合是非法的,因为判别式 D 的值为负;因此,我无法计算根 X1 和 X2。
0 投票
0 回答
144 浏览

android-studio - Robotium 无法通过测试应用程序启动应用程序

我正在尝试为我只有使用 Robotium 的 APK(无源代码)的 android 应用程序编写一个黑盒测试。我正在使用安卓工作室 3.1.2。这里的代码片段,

显现

摇篮文件

执行应用程序后,我面临 InitializerError。这是错误报告,

测试运行完成。有人对这个有了解吗?

0 投票
1 回答
232 浏览

haskell - 我真的可以从同一个包中构建和运行一个可执行文件作为测试套件的一部分吗?

令我震惊的是,我真的不知道用黑盒测试与 Cabal 打包的可执行文件的方法。

例如,我可以运行任意 shell 命令,并且我当然可以连接它npm,以便转换和执行必要的源代码,并检查它们的副作用。

Stack (如此所述)构建可执行文件并将它们发布到$PATH测试套件中,因此我可以轻松运行它们。

但是对于 Cabal,测试套件显然甚至不能依赖于可执行文件,因此无法强制构建后者。(我错了吗?)即使那样,我也必须知道编译后的二进制文件的路径。

我该如何解决这个问题?

我的情况的细节是可执行文件必须广泛分析系统的状态并相应地分支,我想进行集成测试以确保它不会忘记这样做。

另请注意,我不喜欢IO直接运行相关功能,因为我发现它不够集成。或者,更确切地说,我希望能够运行单个IO函数并作为一个整体运行程序。就我而言,已经有测试 shell 脚本到位,但我真的很想“把它们烤进去”。

0 投票
1 回答
631 浏览

javascript - 使用角色时如何正确注销

在 TestCafe 中使用角色时,我似乎无法让角色正确注销。或者,更重要的是,我无法使用相同的角色执行两个连续的测试。

一点背景:

我正在测试一个需要登录的企业网站(抱歉,无法共享)。使用t.useRole(account)登录时效果很好。当我有两个连续测试使用同一个帐户登录时,就会出现我的问题。第一次登录成功,第二次登录失败。发生这种情况时,我添加了控制台日志以告知登录块何时被调用并且我没有从第二个测试中收到。在阅读用户角色文档时,它显示当初始化角色时会生成一个 cookie,随后的 userRole 调用将重新加载给定帐户的页面。由于某种原因,这在我的环境中不起作用,因为我正在测试的页面被重定向到登录页面。
此时我的解决方案是发出注销方法,但这没有帮助。作为注销的一部分,我还尝试切换到匿名用户,但同样没有成功。

示例注销代码(使用页面模型):

示例角色代码:

在这一点上,我很难过。非常感谢任何帮助或建议。

0 投票
0 回答
35 浏览

unit-testing - 单元测试总是白盒测试吗?

我最近看到一些参考文献在一篇文章中指出或提及单元测试始终是白盒测试。

由于黑盒测试只是查看该单元的规范或要求,并确保它满足这些要求,而不关心它是如何做到的,我至少认为单元测试可以是黑盒测试。事实上,如果你的目标是“干净的代码”和“干净的架构”,那么我认为你的目标是在所有测试级别上只创建黑盒测试。

如果在黑盒测试之外还有需要测试的内部结构,那么我认为规范是不完整的。另一种说法是,如果您完成了黑盒测试,并确认您的单元完成了您期望/希望它做的所有事情,并且您没有 100% 的代码覆盖率,并且必须添加白盒测试以获得 100% 的覆盖率,那么我会非常担心额外的代码会导致不符合规范的副作用(可能在边缘或极端情况下),或者只是不必要并增加不必要的复杂性。

我是否误解了白盒与黑盒测试的含义?说根据定义所有单元测试都是白盒测试是否正确?

0 投票
3 回答
1111 浏览

testing - 黑盒测试和端到端测试有什么区别?

他们都从用户的角度检查应用程序,那么,他们之间有什么区别呢?

0 投票
1 回答
2475 浏览

prometheus - 在普罗米修斯的一项工作中注册多个黑盒出口商

我在 prometheus 端配置了我的探测作业,如下所示:

目前在不同时区有 5 台服务器,每台服务器都运行其 blackbox 导出器实例。上面的例子只能解决一个。我现在要做的方式是为每个实例创建一个新作业,因为我找不到在替换字段中插入多个 url 的方法。有没有办法插入多个黑盒导出器 url,因为它们都会探测相同的目标?

0 投票
0 回答
278 浏览

docker - BlackBox 测试/监控 Kubernetes 集群

我需要设置一些 jenkins 作业,每 X 分钟探测一次集群,并确保一切正常且正常运行。是否有任何适用于 Kubernetes API 的现成黑盒探测器,无论是开源的还是由某些供应商提供的。

虽然我可以编写自己的 shell 脚本来进行测试部署并检查一切是否正常,但我正在寻找具有一些合理覆盖范围的黑盒测试套件,例如:

  • 检查部署是否正常
  • replcaSet 正在做副本
  • 服务发现和 DNS 功能正常
  • 可以创建配置映射和机密,并且机密加密正在工作
  • apiServer 延迟不算太高
  • 水平 pod 自动缩放正在工作
  • 可以创建服务并且用户可以从外部连接