软件测试-黑盒测试,白盒测试,灰盒测试

黑盒测试

概述
实际上就是功能测试,不关心程序的内部结构,只关心输入输出。基于产品需求和用户观点出发的测试,查看界面规划是否符合界面需求,查看是否有功能遗漏,是否有人机交互错误,数据库结构错误,检测行为和性能是否能满足要求,对不同场景所返回的结果集是否正确

测试用例涉及方法
1.等价类划分
可分为有效等价类和无效等价类。根据产品需求把所有可能输入的数据划分为若干互不交集的子集,既等价类,再从这些等价类从挑选代表性的数据进行测试

2.边界值分析法
选取正好等于、刚刚大于或刚刚小于等价类边界的值作为测试数据,而不是选取等价类中的典型值或任意值做为测试数据

3.因果图法
借助图形,着重分析输入条件的各种组合,每种组合条件就是“因”,输出的结果就是“果”。可通过绘制程序的逻辑流程分析输入输出结果。实质上是使用简化记号表示数字逻辑图,不仅能发现输入、输出中的错误,还能指出程序规范中的不完全性和二义性。

4.错误推测法
根据经验、知识和直觉来发现软件的错误,来推测程序中可能存在的各种错误,从而有针对性地进行测试

5.场景设计法
事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流,场景的不同触发顺序构成了用例。

6.功能图分析方法
功能图法就是使用功能图形式化地表示程序的功能说明,并机械地生成功能图的测试用例

优缺点
1.优点
a.比较简单,不需要了解程序内部的代码以及实现。
b.与软件内部实现无关。
c.从用户角度出发,很容易的知道用户会用到哪些功能,会遇到哪些问题。
d.在做软件自动化测试时较为方便。
e.基于产品需求文档,所以也能知道软件实现了文档中的哪些功能。

2.缺点
a.不可能覆盖所有代码,覆盖率较低,大概只能达到总代码量的30%。
b.自动化测试的复用性较低。

白盒测试

概述
白盒测试也称逻辑测试或内部结构测试,是针对单元内部如何进行工作的测试。白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行测试,主要用于软件或程序验证。
要正确使用白盒测试的代码覆盖方法,就要从代码分析和代码调研入手,根据调研的结果,可以选择上述方法中的某一种,或者好几种方法的结合,设计出高效的测试用例,尽可能全面地覆盖到代码中的每一个逻辑路径。
测试用例涉及方法
1.逻辑覆盖
以程序内部逻辑结构为基础,分为以下几种
a.语句覆盖
基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次
b.判定覆盖
设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。 一个判定往往代表着程序的一个分支,所以判定覆盖也被称为分支覆盖。
c.条件覆盖
设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。
d.判定-条件覆盖
判定-条件覆盖是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次。
e.条件组合覆盖
使得程序中每个判断的所有可能的条件取值组合都至少出现一次。

2.路径覆盖
在程序控制流程的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合

3.代码检查法
从检查程序的代码逻辑着手,得出测试数据

优点
a.迫使测试人员去仔细思考软件的实现
b.可以检测代码中的每条分支和路径
c.揭示隐藏在代码中的错误
d.对代码的测试比较彻底
e.最优化

缺点
a.昂贵
b.无法检测代码中遗漏的路径和数据敏感性错误
v.不验证规格的正确性

局限
a.但即使每条路径都测试了仍然可能有错误。可能出现的情况如下:
b.穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。
c.穷举路径测试不可能查出程序中因遗漏路径而出错。
d.穷举路径测试可能发现不了一些与数据相关的错误。

灰盒测试

概述
灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
灰盒测试,也称作灰盒分析,是基于对程序内部细节有限认知上的软件调试方法。测试者可能知道系统组件之间是如何互相作用的,但缺乏对内部程序功能和运作的详细了解。

优点
a.提供了白盒测试和白盒测试的综合优势。
b.同时包括开发人员和测试人员的输入值,以提高产品的整体质量。
c.减少了长时间功能和非功能测试的时间消耗。
d.为开发人员提供了足够的时间来修复产品缺陷。
e.包括用户观点,而不是设计师或测试者的观点。
f.深入涉及用户观点的要求检查和规格确定。

三者区别

黑盒测试 白盒测试 灰盒测试
不需要了解内部工作结构(代码)。测试用例只需要GUI(图形用户界面)。 测试需要了解内部工作结构(软件编码) 部分了解内部工作结构
黑盒测试也称为功能测试,数据驱动测试和封闭盒测试。 白盒测试也称为结构测试,透明盒测试,基于代码的测试和透明测试。 灰盒测试也称为半透明测试,因为测试人员对编码知识有限。
测试方法包括试验技术和错误猜测方法,因为测试人员不需要知道软件的内部编码。 通过验证软件中固有的系统边界和数据域来进行白盒测试,因为不缺乏内部编码知识。 如果测试人员具有编码知识,则通过验证软件的数据域和内部系统边界来进行。
输入表的测试空间(用于创建测试用例的输入)非常庞大,在所有测试空间中最大。 与黑盒测试相比,输入表的测试空间(用于创建测试用例的输入)较少。 输入表的测试空间(用于创建测试用例的输入)小于黑盒和白盒测试。
发现软件的隐藏错误非常困难,因为错误可能是由于黑盒测试未知的内部工作造成的。 发现隐藏错误很简单,因为它可能是由于内部工作,这在白盒测试中得到了深入探索。 很难发现隐藏的错误,可在用户级测试中找到。
黑盒测试中的时间消耗取决于功能规范的可用性。 由于冗长的代码,白盒测试需要很长时间来设计测试用例。 测试用例设计可以在短时间内完成。
测试人员,开发人员和最终用户可以参与测试。 最终用户不能涉及。 只有测试人员和开发人员才能参与测试。 测试人员,开发人员和最终用户可以参与测试。
这是所有测试过程中耗时最少的过程。 在所有测试过程中,整个测试过程是最耗时的。 比白盒测试耗时更少。
黑盒测试涵盖了抵御病毒攻击的弹性和安全性。 白盒测试不包括针对病毒攻击的弹性和安全性。 灰盒测试不包括针对病毒攻击的弹性和安全性。
黑盒测试的基础是外部期望内部行为未知。 白盒测试的基础是编码,负责内部工作。 基于高级数据库图表和数据流图进行测试。
它不像白盒和灰盒测试方法那么详尽。 黑盒和灰盒测试方法之间最为详尽。 部分详尽; 取决于基于编码或基于GUI的测试用例的类型。

来源:YaMokey

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月3日
下一篇 2021年10月3日

相关推荐