首页 > 其他分享 >软件测试,黑盒白盒

软件测试,黑盒白盒

时间:2023-03-29 15:33:33浏览次数:46  
标签:黑盒 覆盖 白盒 路径 程序 测试 条件 软件测试

黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么事情,只能通过输入输出看是否能得到我们所需的来测试。
而白盒测试可以当盒子是透明的,里面的一切代码都看的清楚,从而我们可以通过去测内部结构来测试。

白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。
根据程序的控制结构设计测试用例
白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。但即使每条路径都测试过了,仍然可能存在错误。因为:
穷举路径测试无法检查出程序本身是否违反了设计规范,程序本身就是一个错误的程序
穷举路径测试不可能查出程序因为遗漏路径而出错
穷举路径测试发现不了一些与数据相关的错误

白盒测试:检查程序的内部结构、逻辑、循环和路径。常用测试用例设计方法有:
逻辑覆盖:以程序的内部逻辑结构为基础,分为语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖等
基本路径测试:在程序控制流程的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。

语句覆盖是指选择足够多的测试用例,使得程序中的每一条可执行语句至少被执行一次。它以程序中每条可执行语句是否都被执行到为测试终止的标准
判断覆盖也叫分支覆盖,即设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。

以一段程序为例,画出流程图,图上标注了路径,abcde

条件覆盖的思想是使每个判断中每个条件的可能取值至少满足一次,对上面的判断覆盖进行了细化,将括号里面的x,y进行了细化

上面的测试用例在达到条件覆盖的同时也达到了 100%的判断覆盖标准。但是并不能保证达到 100%条件覆盖标准的测试用例都能达到 100%判断覆盖标准
如下表,两个用例下,P1和P1是相同的

所以条件覆盖的同时,又满足了判断覆盖,就出现了下面这种
判断-条件覆盖:判断条件实际上就是将前两种方法结合起来的设计方法,它是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判定条件中的所有条件可能取
值至少执行一次,同时,所有判断的可能结果至少执行一次
达到 100%判断-条件覆盖标准一定能够达到 100%条件覆盖,100%判定覆盖和100%语句覆盖。

条件组合覆盖
基本思想是使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。它与条
件覆盖的差别是它不是简单的要求每个条件都出现“真”与“假”两种结果,而是让这些结果的所有可能组合都出现一次。
a.条件组合只针对同一个判断语句内存在多个条件的情况,让这些添加的取值进行笛卡尔乘积组合。
b.不同的判断语句内的条件取值之间无需组合
c.对于单条件的判断语句,只需要满足自己的所有取值即可

基本路径覆盖
设计所有的测试用例,来覆盖程序中所有可能的独立的执行路径
即遍历所有可能的路径

普遍认为六种逻辑覆盖的强弱关系,从弱到强的是:
语句覆盖——>判定覆盖——>条件覆盖——>判定-条件覆盖——>条件组合覆盖——>路径覆盖,但路径覆盖不好在图中画出

黑盒测试
测试软件产品已经实现的功能是否符合功能设计要求,不需测试软件产品的内部结构和处理过程。
黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打
开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序
是否能适当地接收输入数锯而产生正确的输出信息。
“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷
多个,因此不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。

“黑盒”的两种基本方法
黑盒测试有两种基本方法,即“通过测试”和“失败测试”。
在进行“通过测试”时,实际上是确认软件能做什么,而不会考验其能力如何。软件测试员只运用最简单、直观的测试案例。
在设计和执行测试案例时,总是先进行通过测试。在进行破坏性试验之前,看一看软件基本功能是否能够实现。
在确信了软件正确运行之后,就可以采取各种手段通过搞垮软件来找出缺陷。
纯粹为了破坏软件而设计和执行的测试案例,被称为失败测试或迫使出错测试。

黑盒测试的优、缺点
(1)优点
a.比较简单,不需要了解程序内部的代码以及实现。
b.与软件内部实现无关。
c.从用户角度出发,很容易的知道用户会用到哪些功能,会遇到哪些问题。
d.在做软件自动化测试时较为方便。
e.基于软件开发文档,所以也能知道软件实现了文档中的哪些功能。
(2)缺点
a.不可能覆盖所有代码,覆盖率较低,大概只能达到总代码量的 30%,因为只测试功能代码,还有很多辅助功能实现的代码不测试
b.自动化测试的复用性较低。

黑盒测试的测试用例设计方法
(1)等价类划分法
分为有效等价类和无效等价类,无效等价类其实就是不合法输入集合
(2)边界值分析法
(3)错误推测法
(4)因果图法
(5)判定表
(6)功能图法

标签:黑盒,覆盖,白盒,路径,程序,测试,条件,软件测试
From: https://www.cnblogs.com/lxzbky/p/17268194.html

相关文章

  • 章一 软件测试的背景
    章一软件测试的背景一、软件失败的术语缺点defect,偏差variance,故障fault,失败failure,问题problem,矛盾inconsistency,错误error,特殊feature,事件incident,缺陷bug,异常anomaly。......
  • 软件测试之道二
    有时一个地方的bug太多,并且反复修改也没有改好,那么就停止测试,让开发仔细思考问题所在并且重新设计代码。要根据实际的开发来调整自己的测试过程,有些项目就是不能提供完整......
  • 软件测试常见的七种认识误区
    随着软件测试对提高软件质量重要性的不断提高,软件测试也不断受到重视。但是,国内软件测试过程的不规范,重视开发和轻视测试的现象依旧存在。因此,对于软件测试的重要性、......
  • 软件测试--详细判断电话号码
    目录一、作业要求二、需求分析1、电话号码类型2、座机号码地点3、手机号码的种类常用运营商虚拟运营商号段物联网号段卫星电话号段其它号段4、手机地点5、国外号码6、测试......
  • 白盒测试
     1白盒测试2测数据库?软件测试怎么刷数据库早读 晚读。学习就是快乐。人生就是学习。活到老,学到老。学cad建筑制图。想学都能学会。我喜欢截图知识点,那就记住。 ......
  • 如今软件测试人员的作用和重要性
    在软件开发领域中,测试人员是至关重要的一环。他们的主要职责是通过各种测试方法来检测和识别软件缺陷,确保软件在发布之前达到高质量标准。那么今天就由我来为大家介绍一下,软......
  • 零基础转行软件测试首先需要学习哪些内容?
    随着现在互联网行业的迅猛发展,越来越多的人想涌入进来,因为大家都觉得IT行业工资高,做测试门槛又低,是的,入门门槛确实比较低,但是要做好的话,还是有点难的,毕竟术业有专攻嘛,......
  • 想入门软件测试该如何开始
    有一些朋友会问到软件测试入行难不难,该怎么做,觉得自己就像一个无头苍蝇一样完全找不到方向。跟好几个朋友聊了不少,那么今天就具体整理总结一下,关于学习、入门直到完全......
  • 软件测试算吃青春饭的吗?
    软件测试和软件开发同属于计算机软件行业,属于技术活。当你的技术掌握很精通、实际工作经验积累足够,怎么会有青春饭的想法呢?各个行业都有自己的技术点,俗话说一技之长......
  • 专业、免费、超好用的软件测试题库《柠檬班》使用教程(二)--搜索题目答案
    功能介绍:题目搜索位置:“首页”、“题库”导航菜单进入的主页适用场景:大家在面试的时候,遇到了不会的题目,可以掏出手机,在搜题这里输入关键字,搜索答案。  ......