【刷题】测开-黑盒测试&白盒测试及其测试用例设计方法
黑盒测试
-
定义:
- 黑盒测试又称为功能测试,主要检测软件的每个功能是否可以正常使用。
- 在测试过程当中,将程序当作不能打开的黑盒子,不考虑程序内部结构和特性的基础上经过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定可以正常打开使用。
- 不须要了解具体代码,对测试工程师要求不高。
-
测试用例与依据
- 黑盒测试用例设计方法:基于用户需求的测试、等价类划分方法、边界值分析方法、错误推测方法、因果图方法、断定表驱动分析方法、正交实验法、场景法。
- 依据:用户需求规格说明书,详细设计说明书。
-
方法细节
- 等价类划分:是把程序的输入域划分红若干部分,而后从每一个部分中取少数具备表明性数据做为测试用例。
- 边界值分析法: 是对输入或输出的边界值做为测试用例
- 错误推测设计方法:基于经验和直觉推测程序中全部可能存在的各类错误,从而有针对性地设计测试用例的方法。
- 因果图法:利用图解法分析输入的各类组合关系,写出断定表,从而设计相应的测试用例
- 断定表驱动:是把做为条件的全部输入的各类组合值以及对应输出值都列出来造成的表格称为断定表
- 正交试验设计:从大量的实验数据中挑选适量的、有表明性的点来设计测试用例
白盒测试
-
定义:
- 白盒测试也称为结构测试,主要用于检测软件编码过程当中的错误。
- 程序员的编程经验、对编程软件的掌握程度、工做状态等因素都会影响到编程质量,致使代码错误。
- 对测试人员要求高:测试人员须要具有必定的编程经验;白盒测试工程师须要具有广博的知识面
-
测试用例与依据
- 白盒测试用例设计有以下方法:语句覆盖、断定覆盖、条件覆盖、断定/条件覆盖、条件组合覆盖和路径覆盖。
- 依据:代码结构。
-
方法细节
- 覆盖:至少执行一次
- 语句覆盖每条语句至少执行一次。
- 断定覆盖每一个断定的每一个分支至少执行一次。
- 条件覆盖每一个断定的每一个条件应取到各类可能的值。
- 断定/条件覆盖同时知足断定覆盖条件覆盖。
- 条件组合覆盖每一个断定中各条件的每一种组合至少出现一次。
- 路径覆盖使程序中每一条可能的路径至少执行一次。
-
静态白盒测试
- 不须要实际运行被测软件,而是直接对软件形式和结构进行分析。
- 静态白盒测试主要包括:代码检查、静态结构分析、代码质量度量等。
-
ps:

灰盒测试
- 灰盒测试,是介于白盒测试与黑盒测试之间的一种测试
- 灰盒测试多用于集成测试阶段,不只关注输出、输入的正确性,同时也关注程序内部的状况。
- 灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,经常是经过一些表征性的现象、事件、标志来判断内部的运行状态。
辨析
-
简单辨析:
- 黑盒测试:关注程序的功能是否正确,面向实际用户;
- 白盒测试:关注程序源代码的内部逻辑结构是否正确,面向编程人员;
- 灰盒测试:介于白盒测试与黑盒测试之间的一种测试。
-
具体辨析
- 测试目标和依据:
- 黑盒面对的是产品设计,白盒针对的是程序功能的实现,灰盒针对兼而有之,既要考虑产品设计要求,又考虑到功能实现的效果。
- 实现者:
- 测试模块颗粒度:
- 白盒在乎的是代码实现层面,而灰盒更加侧重模块之间,颗粒度大于白盒。
- 版本:
- 白盒测试通常发生在debug版本,灰盒大多通常在release版本进行。
- 测试效果:
- 大量的bug在黑盒测试阶段测试出来,而白盒和灰盒测试的bug数目相对较少。
- 耗时:
- 在同等时间内,通常白盒和灰盒的耗时长,bug数量少,通常表现为时间产出比较低,很难大范围普及白盒。
- 黑盒相对bug时间投入产出比较高。
- 入门:
- 黑盒入门较为容易,其次是灰盒,白盒入门门槛教黑盒高不少。
END
欢迎关注本站公众号,获取更多信息