白盒测试

白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部代码的逻辑进行的测试。进行白盒测试一定是可以直接看到程序内部代码是如何运作的,然后再依据用于实现程序的代码结构进行测试用例设计和执行,从而完成检测产品内部是否符合规定运行的白盒测试。白盒测试方法主要应用于单元测试、重点逻辑测试、代码输入&输出的详细测试等更“透明”的测试,所以对测试人员的代码阅读能力有一定的要求。

采用白盒测试方法时必须遵循以下几条基本原则,才能达到测试的目的:
⦁ 通过代码走查,检查程序内部的数据结构,保证其结构的有效性和完整性。
⦁ 保证一个模块中的所有独立路径至少被测试覆盖一次。
所有逻辑值均需测试真 (true) 和假 (false) 两种情况下的运行逻辑。
⦁ 在参数的上下边界及可操作范围内运行所有循环

由上面的特点可看出,白盒测试的优点是在测试中可以实现对模块代码有更高的覆盖率,缺点则是设计测试用例较复杂、业务功能覆盖不全面、测试人员资源消耗大。

白盒测试的方法

1.静态

研发技术方案评审,功能代码走查,代码审查,通过工具扫描代码静态分析等

2.动态

逻辑覆盖法、基本路径测试法

逻辑覆盖法 是通过对程序逻辑结构和代码的遍历实现对程序有更高覆盖率的测试方法。逻辑覆盖其实是一系列测试过程的总称,有了各种测试过程的辅助就可以进行越来越完整的业务通路测试。
我们根据覆盖目标的不同和覆盖源程序语句的详尽程度,将逻辑覆盖分为:语句覆盖,判定覆盖,条件覆盖,条件/判定覆盖,条件组合覆盖,路径覆盖(以下例题将依次讲解)

基本路径测试法是在程序控制流图的基础上,通过分析程序的环路复杂性,导出基本可执行路径集合,从而设计出测试用例,这也是测试人员最常使用的测试方法。(以下例题有详解)

3.实例讲解

应用逻辑覆盖法的实例
题目:根据如下代码实例画出程序流程图,并用逻辑覆盖法设计详尽的白盒测试用例。

if (a>1) and (b = 0){x = x / a;}
if(a = 2) or (x > 1){x = x+ 1;}

解题:代码对应的程序流程图如下

白盒测试的测试用例如下:
1)语句覆盖:即以上四个可执行语句至少都覆盖一次

例-- a = 2, b = 0, x = 3 覆盖路径:a-c-e

2)判定覆盖:以上两个判定的“真”和“假”至少都执行一次

例-- a = 2, b = 0, x = 3 覆盖路径:a-c-e
a = 1, b = 0, x = 1 覆盖路径:a-b-d

3)条件覆盖:两个判定的的每个条件都取得各种可能的结果

例-- a = 2, b = 0, x = 3 取到判定条件1中a>1且b = 0,判定条件2中 a=2和 x/a >1的结果
a = 1, b = 1, x = 1 取到判定条件1中a不大于1且b != 0,判定条件2中a!=2和 x不小于1的结果

4)判定/条件覆盖:两个判定的“真”和“假”至少执行一次且两个判定的的每个条件取得各种可能的结果

例-- a = 2, b = 0, x = 3
a = 1, b = 1, x = 1 (由前面3,4的举例可知,这两条用例适合)

5)条件组合覆盖:两个判定的每种条件组合至少都被执行一次

例-- a = 2, b = 0, x = 3 覆盖组合(a > 1, b = 0)和(a = 2, x > 1)
a = 2, b = 1, x = 1 覆盖组合(a>1, b != 0)和(a = 2, x不大于1)
a = 1, b = 0, x = 3 覆盖组合(a 不大于1, b = 0)和(a != 2, x > 1)
a = 1, b = 1, x = 1 覆盖组合(a 不大于1, b != 0)和(a != 2, x 不大于1)

6)路径覆盖:每条通路的路径至少执行一次

例-- a = 2, b = 0, x = 3 覆盖路径:a-c-e
a = 1, b = 0, x = 1 覆盖路径:a-b-d
a = 2, b = 1, x = 1 覆盖路径:a-b-e
a = 3, b = 0, x = 3 覆盖路径:a-c-d

应用基本路径测试法的实例
题目:根据如下代码实例画出程序流程图,并用基本路径法设计详尽的白盒测试用例。

 void  Sort ( int  iRecordNum, int iType ){  int  x=0;int  y=0;while ( iRecordNum > 10 ){if ( iType== 0 ){x=y+2;} else if(iType== 1 ){x=y+10;}else{x=y+20;}}}

解题:以上代码对应程序流程图如下

经以上流程图进行路径分析,得到下面四个基本路径并设计测试用例如下:

路径1覆盖语句: 1-7;测试用例-- num=10,type为任意值
路径2覆盖语句: 1-2-3-1…;测试用例-- num=11,type=0
路径3覆盖语句: 1-2-4-5-1…;测试用例-- num=11,type=1
路径4覆盖语句: 1-2-4-6-1…;测试用例-- num=11,type为非1的任意值

【软件测试】应用白盒测试实例相关推荐

  1. 【软件测试】白盒测试方法与黑盒测试方法的区别

    软件测试方法一般分为两种:白盒测试与黑盒测试.其中,白盒测试又称为结构测试.逻辑驱动测试或基于程序本身的测试,着重于程序的内部结构及算法,通常不关心功能与性能指标.黑盒测试又被称为功能测试.数据驱动测 ...

  2. 软件测试--静态白盒测试

    软件测试–静态白盒测试 静态测试是指测试非运行部分-检查和审查.静态白盒测试是指在不执行软件的条件下条理地仔细审查软件设计.体系结构和代码,从而找出软甲缺陷的过程,又称为结构化测试. 静态白盒测试的好 ...

  3. 软件测试条件覆盖怎么画流程图,软件测试流程图白盒测试条件覆盖路径覆盖.doc...

    软件测试流程图白盒测试条件覆盖路径覆盖.doc 上传人:ms****95 文档编号:43341421 上传时间:2020-01-21 格式:DOC 页数:7 大小:235.50KB 下载提示(请认真阅 ...

  4. 软件测试知识——白盒测试

    软件测试知识--白盒测试 什么是白盒测试 白盒测试的方法 语句覆盖 分支覆盖 条件覆盖 判定条件覆盖 组合覆盖 路径覆盖 总结 白盒测试的优劣 什么是白盒测试 白盒测试也称结构测试或逻辑驱动测试,是把 ...

  5. 软件测试 黑盒白盒测试方法总结

    白盒测试-语句覆盖 设计测试用例,让程序的每个可执行的语句都执行一次.在分支处通过不同的用例,让分支的有执行的方向都执行过都执行过.这里需要注意,是让语句去执行,下图中之所以说1-2-4是完全语句覆盖 ...

  6. 【软件测试】白盒测试与黑盒测试

    白盒测试与黑盒测试 测试用例 定义 生成的基本准测 设计步骤 作用 测试数据和测试用例的区别 黑盒测试 定义 优点 缺点 黑盒测试的实施过程 等价类划分法 边界值分析法 错误推测法 因果图 判定表 判 ...

  7. 【测试岗】快来抄模板,3W字41个软件测试超常见实例问题(附带答案)

    码字太难了,这些问题保存在我的word文档中,但是CSDN有特殊的模板格式,结果还是一行行粘贴过来的 大家看着这份文章上,多给点关注收藏呀~~~~~~ 另外需要更多的面试题可以点击并且输入暗号:CSD ...

  8. 软件测试年月日白盒测试,软件测试方法 白盒测试

    <软件测试方法 白盒测试>由会员分享,可在线阅读,更多相关<软件测试方法 白盒测试(64页珍藏版)>请在人人文库网上搜索. 1.Chp3 软件测试方法软件测试方法 ch2 软件 ...

  9. 【软件测试】白盒测试

    文章目录 黑盒测试与白盒测试 分支语句的白盒测试 测试用例设计方法 举例 画流程图 设计语句覆盖测试用例 设计分支覆盖测试用例 设计路径覆盖测试用例 循环语句的白盒测试 简单循环 嵌套循环 连锁循环 ...

  10. 【软件测试】白盒测试与黑盒测试的区别(不同)

    黑盒测试是将被测试软件看做一个黑盒子,只考虑系统的输入和输出,完全不考虑程序内部逻辑结构和处理过程.白盒测试是将黑盒子打开,研究源代码和程序内部的逻辑结构. 黑盒测试的依据是各阶段的需求规格说明.白盒 ...

最新文章

  1. 公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档
  2. 【Verilog HDL 训练】第 01 天
  3. 如何办理夫妻间的房屋产权转移手续?
  4. 【学习笔记】吴恩达机器学习 WEEK1
  5. 今天收到 OCP 证书
  6. 【渝粤教育】国家开放大学2018年春季 0434-22T高级英语口语 参考试题
  7. oracle dba 命令行,Oracle DBA常用命令
  8. 水晶报表中的主从表结构
  9. 聊聊测试工程师的核心能力模型
  10. 第九十六章 SQL函数 MOD
  11. 大数据与信息安全(六)天网系统与大数据 大数据
  12. UE4项目聚集—为所有创意人开放的虚幻引擎
  13. Android小心心动画
  14. 《编译原理-龙书》练习第2章
  15. 联合分析法(Python实现)
  16. Linux通过终端打开应用程序(自用)
  17. qt控制程序打开记事本_基于QT记事本源代码
  18. android thumbnail获取图片,系统获取视频缩略图的getThumbnail()真的那么快吗?
  19. TO BE A BETTER MAN(纪念时光)
  20. 【文章导读】CartoonGAN: Generative Adversarial Networks for Photo Cartoonization

热门文章

  1. oracle的varchar用法,Oracle数据库中的varchar,varchar2,nvarchar,nvarchar2区别及用法
  2. win7旗舰版和纯净版系统哪个好
  3. cpu测试软件一等奖,图吧里捡垃圾的老哥们,制作出了一款超牛 X 的电脑工具箱!...
  4. linux如何查看系统崩溃日志,Linux系统日志及日志分析
  5. 视频解码测试软件,视频解码:视频解码性能测试_平板电脑评测-中关村在线
  6. 仿今日头条项目——登录注册
  7. 死磕 Java8 新特性,17 种日期处理方式!
  8. php和tp中生成二维码电子名片
  9. 三维扫描仪为媒,虚拟试衣间下嫁普通制衣生产厂家
  10. 安卓一键新机_「科技犬」三星华为频发新品对标iPhone12,稳固安卓生态