模块和盒子之间的区别

马赫迪

我想知道框和模块在编程中的区别是什么?有人问过我这个问题,现在我有点困惑

在网络和文档上阅读,什么是编程框,我在下面找到了链接
https://www.nbs-system.com/en/blog/black-box-grey-box-white-box-testing-what-differences/

如果该框是顶部链接和类似链接,则该框是对程序的测试,而模块是proram

程序化

“框”只是您从现实世界中知道的对象的常用词。它作为类比服务器,将代码组合在一起以形成某种软件组件。这是因为它的内部部分彼此之间,在责任和沟通,内部数据使用,总体目标上都如此相关,因此将它们组合在一起是有意义的。我们将其命名为模块,并且很多时候它都映射到源文件(但不是必须),但是相同的分组概念适用于类,包(通常将模块/类分组在一起),库甚至整个应用程序或系统。

Box术语最常指的是在Box内部的内容和与外界(用户或其他系统)进行交互的参与者之间存在边界的事实。

盒子必须提供与外界的公共接口,以便变得可用或有用。必须对此进行记录,否则您将不知道如何使用它。当您仅基于此信息使用它来实现您的目标,而不了解内部情况时,我们说您正在使用“黑匣子”。

这具有很多优点,因为它可以使框成为易于使用的强大抽象,并将可能的复杂实现包装在内部。它封装事物并将其对用户隐藏。

如果作为外部参与者,您以某种方式使用该盒子,因为您知道内部的处理方式,就违反了这种封装原理。您可能正在进入“灰色框”使用模式。这是危险的,因为如果更改此框,您的假设(和代码)可能会失败。

当将其用作“白盒”时,您确实会完全了解它的内部构造,因此您可以在代码中做出非常明智的决定,但是现在盒式代码无法真正使用。因此,进行了抽象。

进行编码时,出于抽象,内聚和模块化的原因,您通常希望针对黑盒进行编码,并且还希望构建自己的黑盒。

当需要测试您编写的代码时(希望从一开始),灰色和白色的框最有意义。在这里,您仍然希望将系统作为黑匣子进行测试,但也希望使用白盒测试,因为您希望可观察到的行为和内部详细行为都正确。

灰色测试尤其适用于当您测试使用其他模块或库编写的代码而通常不希望进行测试(其他代码已经过测试)的情况下进行的测试,但是您仍然了解其内部结构和知识。您需要进行其他测试以覆盖您的代码,从而探索了这一知识。

编辑:因此,除非他们希望您将模块区分为内部代码,并将框区分为模块的包装公共接口,否则实际上没有区别。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章