白盒测试

  • 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。


方法:

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

语句覆盖


优点

  • 可以很直观地从源代码得到测试用例,无须细分每条判定表达式。

缺点

  • 由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的。如在多分支的逻辑运算中无法全面的考虑。语句覆盖是最弱的逻辑覆盖

分支覆盖


这样就只需要一半

优点

  • 判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

缺点

  • 往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。

条件覆盖

优点

  • 增加了对条件判定情况的测试,增加了测试路径。

缺点

  • 条件覆盖不一定包含判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。

条件组合覆盖

路径覆盖

黑盒测试

  • 测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性
  • 只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明
  • 又叫做功能测试或数据驱动测试

等价类划分


简单例子


边界值分析


常见的边界值

  • 对16-bit 的整数而言 32767 和 -32768 是边界
    屏幕上光标在最左上、最右下位置
    报表的第一行和最后一行
    数组元素的第一个和最后一个
    循环的第 0 次、第 1 次和倒数第 2 次、最后一次

例子

  • 例如,如果程序的规格说明中规定:“重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……”。作为测试用例,我们应取10及50,还应取10.01,49.99,9.99及50.01等。
  • 比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
  • 例如,某程序的规格说明要求计算出"每月保险金扣除额为0至1165.25元",其测试用例可取0.00及1165.25、还可取-0.01及1165.26等。
  • 再如一程序属于情报检索系统,要求每次“最少显示1条、最多显示4条情报摘要”,这时我们应考虑的测试用例包括1和4,还应包括0和5等。

状态测试


案例



静态分析


参考
参考

通俗理解白盒测试、黑盒测试相关推荐

  1. 通俗理解条件熵-数学

    就是决策树里面选划分属性用到的计算 条件熵越小表示划分之后各个集合越纯净 前面我们总结了信息熵的概念通俗理解信息熵 - 知乎专栏,这次我们来理解一下条件熵. 我们首先知道信息熵是考虑该随机变量的所有可 ...

  2. 通俗理解tf.nn.conv2d() tf.nn.conv3d( )参数的含义 pytorhc 卷积

    20210609 例如(3,3,(3,7,7))表示的是输入图像的通道数是3,输出图像的通道数是3,(3,7,7)表示过滤器每次处理3帧图像,卷积核的大小是3 x 7 x 7. https://blo ...

  3. 通俗理解tf.name_scope()、tf.variable_scope()

    前言:最近做一个实验,遇到TensorFlow变量作用域问题,对tf.name_scope().tf.variable_scope()等进行了较为深刻的比较,记录相关笔记: tf.name_scope ...

  4. dft变换的两幅图_离散傅立叶变换DTFT、DFT和FFT在工程与数学结合的通俗理解

    1.离散时间傅里叶变换DTFT 何为DTFT?就是对连续时间非周期信号进行抽样(乘积),得到的离散时间非周期信号再求傅里叶变换的过程就是DTFT.其实等同于信号频谱与脉冲信号频谱的卷积,这样得到的就是 ...

  5. 通俗理解kaggle比赛大杀器xgboost + XGBOOST手算内容 转

    通俗理解kaggle比赛大杀器xgboost    转 https://blog.csdn.net/v_JULY_v/article/details/81410574 XGBOOST有手算内容 htt ...

  6. 通俗理解注意力机制中的Q、K和V表示的具体含义

    https://www.jianshu.com/p/7a61533fd73b 通俗理解讲解一 以翻译为例 source:我 是 中国人 target: I am Chinese 比如翻译目标单词为 I ...

  7. 白盒测试黑盒测试和单元测试集成测试和系统测试的关系

    下图为白盒测试黑盒测试和单元测试集成测试和系统测试的关系 UT--Unit testing IT--Integration testing ST--system testing UT---White- ...

  8. 对于随机森林的通俗理解

    原文:http://blog.csdn.net/mao_xiao_feng/article/details/52728164 对于随机森林的通俗理解 一.决策树 决策树是机器学习最基本的模型,在不考虑 ...

  9. CNN笔记:通俗理解卷积神经网络

    通俗理解卷积神经网络(cs231n与5月dl班课程笔记) http://blog.csdn.net/v_july_v/article/details/51812459 1 前言 2012年我在北京组织 ...

最新文章

  1. MapReduce-流量统计求和-排序-Mapper和Reducer编写
  2. Upload-Labs(1-5)
  3. 肖申克的救赎,阅后瞎想...(zz)写的不错
  4. [LintCode] 翻转二叉树
  5. 小米 redmibook 14 锐龙版 安装linux ubuntu 20 19 18 deepin 无线网卡驱动问题解决方案
  6. Android 微信、QQ、微博分享问题汇总
  7. 将虚幻引擎5与Perforce Helix Core集成使用吧!
  8. Excel自动插入jpg图片或png图片 VBA 工具 模块
  9. [SSL_CHX][2021-08-19]前缀和
  10. 手机数据安全成为315晚会重灾区
  11. IP防护等级解释说明
  12. 人脂肪前体细胞,研究糖尿病胰岛抵抗、肥胖的优秀体外模型
  13. Java 之父求职被嫌年纪大,硅谷公司现在喜欢“小鲜肉”,不爱“老古董” 作者:程序媛Adele
  14. python正整数平方根_python怎么求一个数的平方根
  15. mysql 获得元素的数量_一个递归获取祖先元素值的MySQL函数范例
  16. 当我发现Python字典中不同key可以有相同哈希值后——问渠那得清如许
  17. 大学生对计算机的认识调查报告,大学生电脑使用情况调查报告
  18. 简化datax源码,以便于datax二次开发、调试
  19. mysql数据库中的自增字段会不会溢出,我用的是int,万一超过这个int的表示范围会怎样
  20. 计算机缓存加速网络,技术员细说win7系统清理缓存为电脑提速的处理次序

热门文章

  1. 果蝇优化算法(FOA)
  2. 31 个Python代码实现的常用功能(附案例源码)
  3. python 列表 常用操作 列表的循环遍历
  4. 病原微生物高通量测序:第二节 应用场景
  5. Redis 如何实现防止超卖和库存扣减操作?
  6. Windows PE 第四章 导入表
  7. 04以太坊测试网(Testnets)
  8. 基于MFC的圆环的消隐实现
  9. 停止抱怨的力量是多么强大!
  10. 用 jQuery.ajaxSetup 实现对请求和响应数据的过滤