问题标签 [black-box]
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.
unit-testing - 单元测试应该是黑盒测试还是白盒测试?
假设我有三种方法,它们都非常相似,但输入类型不同:
这三个都使用相同的底层逻辑。例如:也许double
版本是唯一比较数字的版本,而另外两个只是将它们的输入转换为double
.
我们可以想象一些不同的单元测试:第一个输入更大,第二个更大,两个输入都是负数,等等。
我的问题
如果所有三种方法都有完整的测试集(黑盒,因为我们不假设核心实现是相同的)
或者
是否应该只对double
版本进行大量测试而对其他两个版本进行轻微测试以验证参数转换(白盒测试,因为我们知道它们共享相同的实现并且已经在测试中进行了double
测试)?
php - 在 $a == md5($b . $secret) 中找到 $secret
一个函数是:
- 您可以选择 $a 和 $b
- 你不知道 $secret
- 您将获得 $a 和 $b 的函数值,您选择 true 或 false。
一般来说,有没有比蛮力更好的攻击来找到 $secret?使用PHP 的 md5 函数找到 $secret 是否有比蛮力更好的攻击?
从我在网上找到的内容来看,我认为没有,尽管 md5 在其他一些用例中已被弃用。所以只是为了确定......
亲切的问候
proxy - 通过代理稳定脆弱的 Web 应用程序
我有一个不稳定的动态 Web 应用程序,我想通过在此设置下运行来稳定它:
- 给定一个对 url 的 GET 请求,
U
我会- 在缓存中查找
U
- 如果它已经存在 - 从缓存中获取它 - 如果不是,请从 Web 应用程序生成缓存。
- 在缓存中查找
- 管理员将能够直接访问 Web 应用程序。每当他将访问网页时 - 生成的网页将用于更新缓存。
这样,我确信即使 Web 应用程序关闭,大部分页面仍然可以访问。并且管理员很容易更新缓存(每当他在那里编辑某些内容时 - 它会自动更新,因为他通常会在之后访问此页面)。
是否有具有类似行为的通用缓存?在不更改其源代码的情况下稳定现有 Web 应用程序的任何更好的想法?
design-patterns - 你能装饰一个黑盒子吗?
我有一个关于装饰器模式的快速、非常不了解的问题。如果我有一个名为 BlackBox 的类,我不能以任何方式编辑它——不能添加接口,不能使任何方法成为虚拟方法等——可以使用装饰器模式装饰这个对象吗?如果是这样,怎么做?
unit-testing - 方法的单元测试“结构”?
抱歉发了这么长的帖子...
在被介绍给一个棕地项目时,我对某些单元测试集和思考什么有疑问。假设您有一个存储库类,包装了一个存储过程,并且在开发人员指南中,有一套特定的指导方针(规则),描述了应该如何构造这个类。该类可能如下所示:
现在,我当然会编写一些集成测试,测试 SP 是否可以被调用,以及行为是否符合预期。但是,我会编写单元测试来断言:
- 调用带有输入参数“someKey”的 SomeProfiler 的构造函数
- PersonStoredProcedure 的构造函数被称为
- 存储过程上的 addNameArgument 方法是用参数 personName 调用的
- 存储过程上的 addCityArgument 方法使用参数 cityName 调用
- 在存储过程上调用调用方法 -
如果是这样,除了行为之外,我可能会测试方法的整个结构。我最初的想法是它是矫枉过正的。然而,关于团队强制执行的编码实践,这些测试确保了统一且“正确”的结构,并且下一层被正确调用(从 DAL 到 DB,从 BLL 到 DAL 等)。
在我的例子中,这些类型的测试是针对应用程序的每一层执行的。
后续问题 - SomeProfiler 类的使用对我来说有点像约定 - 相反为此创建显式测试,是否可以通过使用静态代码分析或 unittest + 反射来创建约定样式的测试?
提前致谢。
.net - 实体框架 SaveChanges - 自定义行为?
因此,您实例化一个 EF 上下文,将对象推入或拉出,它会跟踪对象更改的完整状态(如果更改跟踪打开)。到目前为止,开发人员一直负责进行这些修改。但是一旦调用 SaveChanges,所有这些记录都会被批量提交,开发人员被剥夺了最终结果的权利,在错误时保存错误消息或在完成时成功调用。
有没有办法自定义 SaveChanges 过程,使其不是这样的黑匣子?理想情况下,能够自定义流程真的会为我打开很多东西,尤其是对于我的应用程序架构。
谢谢。
optimization - Mathematica:黑盒函数数值优化期间的评估顺序
我正在尝试对 Mathematica 中的“黑匣子”函数进行数值优化。示意图是这样的:
其中 comb[x,y,z] 的定义与此类似:
但是,我尝试过的所有最小化函数似乎都没有立即为 comb[x,y,z] 提供数值,它最终尝试使用 x,y,z 的符号值来评估 FindMaximum(这很容易验证因为 Print[x,y,z] 也象征性地计算)。Findmaximum 因此失败(FindMaximum::nrnum:函数值 blah blah 不是实数),因此最小化失败。
如何确定评估顺序,以便用数值评估 comb 的子功能?
dll - DLL 是“黑盒”代码的唯一方法吗?
我的 DAL 和 BLL 将用作类似 Web 表单的基类。但是,我希望这些基类被“隐藏”起来,只是继承自。如果需要进行更改,请从一个地方完成,然后重新分发 dll(或其他解决方案)。我知道你可以用 DLL 做这样的事情,但我想知道 .NET 3.5 是否有其他方法来做同样的事情。
testing - 对于基于桌面的应用程序的安全测试,我应该在哪些方面更加重视?
我正在测试一个基于桌面的客户端服务器应用程序。我想对该应用程序执行安全测试。
谁能解释我在执行桌面应用程序的安全测试时可以考虑哪些要点?
ios - 在 initWithCoder 中:NSCoder(UINibDecoder)中的键是什么?(对于 UIImageView)
具体来说,我正在尝试查找图像路径。这将是一件非常有用的事情,据我所知,没有人知道如何获得。我查看了生成的 nib 文件中的密钥,并且可以在其中看到图像 URL (test.jpg),但找不到获取它的密钥。键“UIImage”返回实际已经构造的图像(通过调用上述初始化调用initWithCGImageStored:(CGImageRef)cgImage scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
的神秘 UIKit 函数调用构造),所以这没有帮助。GetImageAtPath
我还尝试使用 NSKeyedArchiver 将 UIImageView 写入磁盘,但这些值似乎都不正确,test.jpg 值也不存在那里。
如果没有人能弄清楚 - 任何人都知道如何将二进制文件作为文本读取?我可以通读笔尖并解析出 URL,这总比没有好,但是无论我尝试什么格式,NSString 的构造函数都会失败。