黑盒白盒测试方法 黑盒白盒

黑盒白盒(黑盒白盒测试方法)人人都是产品经理2021-02-04 09:48:15

编辑导语:我们在日常工作中 , 特别是交流的时候 , 逻辑是其中重要的一点 。很多时候我们都需要逻辑图来说明自己的用意 , 逻辑图可以帮助我们表达的更加流畅和清晰 。上一篇文章中作者给大家介绍了描述要素大小的属性(粒度与分层) , 本篇作者继续分享说明描述要素状态的属性 , 希望能够给你带来一定的启发 。
看到了“黑盒/白盒” , 可能认为在讨论软件的测试工作?错了 , 在分析方法中借用了软件测试的黑/白盒概念 , 利用这个概念可以对理解逻辑图中要素的表达方式起着很好的帮助作用 。当然 , 这个概念不仅仅对绘制逻辑图有用 , 它对训练分析师的思维能力、观察能力和叙述能力也都有着非常好的效果 。
属性2:黑盒与白盒 , 是对要素所处状态的描述 。
一、黑/白盒的概念黑盒、白盒是对要素两个相反状态的描述 。
前面讲过 , 要素是可以再拆分的 , 当讨论的对象由复数的要素构成时 , 注意讨论要素的粒度要相同 , 将小粒度的要素暂时隐蔽起来 , 避免发生因要素的粒度不同而造成讨论结果难以收敛的情况 , 为了便于解释这个情况 , 就引入了黑盒/白盒的概念 。
1. 黑盒的概念黑盒:将盒子盖起来 , 从外面看不到里面的内容(要素)时的状态 。
【黑盒白盒测试方法 黑盒白盒】原指一个只知道输入输出关系而不知道内部结构的系统或设备的状态 。在这里借用了这个概念 , 意思是指当研究几个同粒度要素之间的关系时 , 不需要同时关注其中某个要素的内部细节 , 此时 , 就可以将这些“看不到里面细节”的要素称之为处在“黑盒状态”(因为盒子是盖着的 , 所以看不见盒子里面的内容) , 参见图1(a) 。
黑盒白盒测试方法 黑盒白盒

文章插图
图1 黑盒/白盒的状态示意图
比如 , 以图1(a)为例:从企业管理这个对象中拆分出来了财务、销售、计划、设计等同粒度的要素(=部门) , 在讨论部门级的问题时不必去关注财务所包含的“收入”和“支出”等小粒度业务细节 , 此时可以将“财务”看成是一个整体(黑盒) , 专注于财务与销售、设计、生产等具有相同粒度要素之间的关系研究 。
2. 白盒的概念白盒:打开盒子 , 让盒子里面的内容(要素)的暴露出来时的状态 。
白盒与黑盒的定义相反 , 比如 , 见图1(b):打开财务这个“黑盒”后 , 里面小粒度的要素就显示出来了 , 这时财务就不是处于“黑盒”的状态 , 而是处于“白盒”的状态了 , 同时财务也就从要素变为了对象 , 而白盒中的“收入”、“支出”、“预算”等内容又成为了构成财务对象的要素 , 此时 , 财务中的诸要素(预算、支出、收入等)之间又可以彼此看成是黑盒状态了 。
图1(b)中只有财务盒子被打开处于了白盒状态 , 其余的销售、生产等要素仍处于黑盒状态 。
二、黑盒/白盒概念的作用黑盒与白盒概念在绘制逻辑图时起着什么作用呢?
在绘制逻辑图 , 特别是复杂业务关系的图形时 , 要特别注意图上展示要素要是同等粒度的内容 , 如果要素粒度不相同 , 则图中表达要素间的关系就会变得非常复杂 , 传递的意图就可能变得混乱 。下面举例说明黑盒/白盒概念在绘制生产流程图时的应用 。
假定一条生产流程上有6个节点 , 每个节点为一个要素 , 即:销售、设计、采购、生产、物流、结算 , 这6个要素是同一粒度的 。本案例重点研究节点“4.生产”分别处于黑盒状态和白盒状态时的不同 。
图2 生产流程
研究一:“4.生产=黑盒”的场景研究节点“4.生产”与它的上游节点1、2、3以及下游节点5、6之间的关系 , 如图3所示 。
因为要研究“4.生产”与其他上下游节点的关系 , 所以其他节点也都看作是处于“黑盒”状态 。此时“4.生产”的输入端和输出端的关系表达分别是
  • 输入端:上游的1、2、3节点分别向“4.生产”节点提供了①订单、②图纸、③计划;
  • 输出端:“4.生产”节点向下游的5、6节点分别输出了④合格单、⑤结算单;
图3 “4.生产”节点处在黑盒的状态
研究2:“4.生产=白盒”的场景如果要表达“4.生产”内部的情况 , 就要将“4.生产”节点看成是“白盒” , 将它的内部细节显示出来 , 那么上游的输入(订单、图纸、计划)就要直接与其内部的内容发生关联 , 如图4所示:
黑盒白盒测试方法 黑盒白盒

文章插图
图4 “4.生产”处在白盒的状态
“4.生产”打开后(=白盒) , 分别会与输入内容发生如下关系(不限于此) 。
  1. 订单:要与“4.生产”节点内的生产流程、设备情况等发生关系;
  2. 图纸:要与生产的工艺、工法、质量等发生关系;
  3. 计划:要与生产的计划、交付、材料价格等发生关系;
可以看出 , 如何将包括“4.生产”在内的各个节点都看成是“黑盒” , 那么图形中要素之间的关系表达就比较简单 , 如图3所示 。一旦打开“4.生产”的内部 , 就会暴露出很多细小的要素 , 这些细小要素和输入内容之间的逻辑表达就会变得比较复杂 , 因此在绘制逻辑图时就要思考:黑盒状态是否满足表达要求?如果够了 , 就不要打开“4.生产” 。如果必须进行详细的表达 , 则就要让“4.生产”处于白盒状态 。
三、扩展说明除去绘制逻辑图 , 黑盒与白盒的概念在需求分析时也起着非常重要的作用 。
为什么当遇到复杂的问题时新手会感到束手无策 , 而经验丰富的老手则可以从容地找到解决问题的路径呢?下面也尝试用黑/白盒的概念来解释一下 。
1)没有经验的新手
在观察问题时缺乏经验 , 他们看到问题(对象、要素)的状态 , 既有呈黑盒状态的、也有呈白盒状态的 , 结果会感到问题非常的多、盘根错节 , 一团混乱 。原因就是新手的眼睛不会“只抓取同粒度的要素去观察” , 而是同时看到了所有不同粒度的问题 。
2)有丰富经验的老手
首先搞清楚粗粒度要素(=黑盒)之间的关系 , 如果关注某个要素的详细情况 , 则可以将其打开成为白盒状态 , 再对该白盒内的细节问题进行深入的研究 , 这样就避免了黑白盒同在的状态 , 大幅度地降低了研究的难度(当然 , 有经验但缺方法的老手也会犯与新手一样的初级错误) 。
要素的粒度越粗 , 理解时需要的业务知识就越少 。反之 , 要素的粒度越细需要的业务知识就越多 。不同分类的黑盒同时打开 , 不但造成了大量的细节同时出现 , 同时需要具有多种多样的业务知识 , 而且不同黑盒中的要素之间还可能存在着复杂关联 , 这就使得判断的工作量和难度达到了难以把握的程度 。
因此可以说 , 理解了黑盒/白盒的概念 , 不但可以帮助软件工程师正确地绘制逻辑图、而且还可以帮助提升交流和分析的水平 。
#相关阅读#如何绘制逻辑图——逻辑图构成的三元素(1)
如何绘制逻辑图——要素的属性(2)
如何绘制逻辑图——要素的属性:粒度与分层(3)
本文由 @李鸿君 原创发布于人人都是产品经理 , 未经许可 , 禁止转载
题图来自 Unsplash , 基于 CC0 协议

    推荐阅读