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

unit-testing - React 应用程序单元测试

我目前正在测试一个使用 Selenium 进行功能测试的 React 应用程序。Selenium 用于在浏览器上启动应用程序,并模拟用户操作并在每个步骤中保持断言/验证。

然而,调试这些测试变得非常繁琐,因为 UI 自动化很繁重,因为它必须实际启动浏览器,等待页面加载(考虑到不稳定的环境,这有时会很痛苦)。

我读到了一些框架,比如 chai,它们非常轻量级且速度非常快,因为我不必等待页面加载。

在类似的行中,谁能建议我对这个应用程序进行完整的功能测试的方法,我可以绕过 UI 操作(如 Selenium 所做的那样),例如。而不是让 selenium 在 UI 上单击和模拟用户操作,有什么方法可以加载一个反应组件并尝试通过代码模拟某些用户操作,然后从数据库进行功能验证,并且还有数据提供程序为我的测试。例如 - 我有一组数据要传递给我的测试函数,这个测试将对所有数据集运行并分别保持断言。

单元测试/白盒测试之类的东西会起作用吗?像 chai 这样的测试框架会帮助我满足这个要求吗?

如果您知道,请向我建议任何其他方法。

0 投票
2 回答
63 浏览

java - 绘制程序图:在不调用条件或循环后访问哪一行?

只是想检查一下我的思维方式是否正确。这是一个示例方法:

如果我要绘制这种方法的程序图(每条线是一个节点,它们的路径是边),其中的变量不满足条件,例如 M = 1,m = 0。程序会从第 3 行 -> 行6,或从第 3 行 -> 第 5 行(条件结束)。我会认为第 3 行到第 6 行,但我不确定。

0 投票
1 回答
2680 浏览

unit-testing - 主要路径测试和路径测试有什么区别?

我得到以下类型的白盒测试列表:

谁能通过代码给我举个例子,说明主要路径测试和路径测试有什么区别?

0 投票
1 回答
398 浏览

testing - 白盒测试的目的

我已阅读有关白盒测试的信息。语句覆盖、分支覆盖、单元完成的路径覆盖、集成级别。在此,我们派生测试用例以获得对语句、分支和路径的最大覆盖率。但是我想问一下我们如何处理白盒测试期间构建的测试用例?我的意思是在黑盒测试中,我们在被测应用程序上执行测试用例,以检查它们是通过还是失败。但是我们如何处理白盒测试的测试用例呢?

我的第二个问题是在白盒测试中发现了哪些类型的缺陷?

0 投票
1 回答
870 浏览

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

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

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

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

0 投票
2 回答
1902 浏览

java - Coverage:分支和路径覆盖测试用例

我需要以一种方法实现除零操作,以便(1)实现 100% 路径覆盖率的每个测试套件都显示故障,并且(2)可以创建一个实现 100% 分支的测试套件覆盖范围并且不显示故障。

由于除以零是非常简单的操作,我想知道这种方法的实现,以便可以满足这两个要求。目前,我无法做到,因为我的分支和路径覆盖测试用例都显示了错误( ArithmeticException) 并且是相同的。

这是我当前的代码,但它是错误的。

谢谢

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 投票
1 回答
155 浏览

java - 带中断的白盒测试

有人能告诉我我的白盒测试是否正确吗?我可以为语句 8 输入 2 个箭头吗?

正在测试的代码:

正在测试的代码

白盒测试:

白盒测试

0 投票
0 回答
312 浏览

c - 如何使用签名“__ASM volatile rbit(x)”抑制解析、预处理代码

我正在对主机环境(vectorcast)上的嵌入式代码进行单元测试。

该代码是在目标硬件上使用 arm-eabi 编译器开发的。我们在没有任何模拟器或硬件接口的桌面上对其进行测试。

我正在使用 mingw - 4.5 gcc 编译器。头文件中通常有很多汇编代码,例如:

在测试我的源单元说 x1.c 时,它在包含的头文件中调用了上面定义的函数。当我尝试编译它时,我收到以下错误:

错误:没有这样的指令:`rbit %ebx,%eax'

是否有任何 gcc 开关在用于选项时会忽略以 __asm 为前缀的代码?

也欢迎任何其他解决方案。

0 投票
1 回答
840 浏览

unit-testing - 在 @AfterMethod 中撤消 Whitebox.setInternalState 而不设置原始状态

我有一个类,由于接口的强制实现,我不能轻易地使用依赖注入来模拟 - 简而言之,因此我将使用 Whitebox,我在这里关心的问题与设计无关,而只是弄清楚如何正确“拆除”由 Whitebox 引起的行为。请耐心等待,我会给你更多细节——这是主要的虚拟类:

假设我想介绍如果在这里发生异常会发生什么,我看到的唯一方法是使用Whitebox.setInternalState。这里是测试:

如您所见,由于白盒(它不起作用),我无法将 Dummy 类中的映射器定义为静态的。话虽如此,在执行testA()之后,我们对映射器进行了模拟:

在此处输入图像描述

问题是:在执行testB时,我不再想要模拟 - 它应该是最初包含在 Dummy 中的旧实例化 ObjectMapper。但是出现了什么:

在此处输入图像描述

现在,我的问题:

撤消的正确方法是什么

PS:我考虑过使用这样的 tearDown() :

但是,在这种情况下,我最讨厌(突变测试)会认为我没有涵盖 ObjectMapper 的初始化,所以:有没有办法在不手动设置旧测试的情况下撤消其余测试的白盒?

抱歉,描述太长了,在此先感谢。

问候,