博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
白盒测试教程
阅读量:6314 次
发布时间:2019-06-22

本文共 2108 字,大约阅读时间需要 7 分钟。

hot3.png

总共贴了39节,后续还有很长,共122节,文章名为‘白盒测试教程’

 

1、白盒测试概念

2、测试覆盖标准

3、逻辑驱动测试

4、基本路径测试

 

白盒测试概念

1、白盒测试也称结构测试或逻辑驱动测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例。(测试用例由测试输入数据以及与之对应的输出结果组成。  测试用例设计的好坏直接决定了测试的效果和结果。所以说在软件测试活动中最关键的步骤就是设计有效的测试用例。)

2、白盒测试使用被测单元内部如何工作的信息,允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。

 

白盒测试的主要目的:

1、保证一个模块中的所有独立路径至少被执行一次;

2、对所有的逻辑值均需要测试真、假两个分支;

3、在上下边界及可操作范围内运行所有循环;

4、检查内部数据结构以确保其有效性。

 

测试覆盖标准

1、白盒法特点:以程序的内部逻辑为基础设计测试用例,所以又称为逻辑覆盖法。应用白盒法时,手头必须有程序的规格说明以及程序清单。

  白盒法考虑的是测试用例对程序内部逻辑的覆盖程度。最彻底的白盒法是覆盖程序中的每一条路径,但是由于程序中一般含有循环,所以路径的数目极大,要执行每一条路径是不可能的,只能希望覆盖的程度尽可能高些。

 

测试覆盖标准

092952_HRx6_3563297.png

 

测试覆盖标准

1、上页小程序的流程图,其中包括了一个执行达20次的循环。那么它所包含的不同执行路径数高达520(=1013)条,若要对它进行穷举测试,覆盖所有的路径。假使测试程序对每一条路径进行测试需要1毫秒,同样假定一天工作24小时,一年工作365 天, 那么要想把如图所示的小程序的所有路径测试完,则需要3170年。

 

测试覆盖标准

一、为了衡量测试的覆盖程度,需要建立一些标准,目前常用的一些覆盖标准从低到高分别是:

1、语句覆盖:是一个比较弱的测试标准,它的含义是:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。

它是最弱的逻辑覆盖,效果有限,必须与其它方法交互使用。

2、判定覆盖(也称为分支覆盖):执行足够的测试用例,使得程序中的每一个分支至少都通过一次。

判定覆盖只比语句覆盖稍强一些,但实际效果表明,只是判定覆盖,还不能保证一定能查出在判断的条件中存在的错误。因此,还需要更强的逻辑覆盖准则去检验判断内部条件。

3、条件覆盖:执行足够的测试用例,使程序中每个判断的每个条件的每个可能取值至少执行一次;

条件覆盖深入到判定中的每个条件,但可能不能满足判定覆盖的要求。

 

测试覆盖标准

1、判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。

 

判定/条件覆盖有缺陷。从表面上来看,它测试了所有条件的取值。但是事实并非如此。往往某些条件掩盖了另一些条件。会遗漏某些条件取值错误的情况。为彻底地检查所有条件的取值,需要将判定语句中给出的复合条件表达式进行分解,形成由多个基本判定嵌套的流程图。这样就可以有效地检查所有的条件是否正确了。

2、条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。

这是一种相当强的覆盖准则,可以有效地检查各种可能的条件取值的组合是否正确。它不但可覆盖所有条件的可能取值的组合,还可覆盖所有判断的可取分支,但可能有的路径会遗漏掉。测试还不完全。

 

白盒测试的主要方法:

一、逻辑驱动测试

1、语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次;

2、判定覆盖(也称为分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次;

3、条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次;

4、判定/条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的所有可能取值至少执行一次,并且每个可能的判断结果也至少执行一次,换句话说,即是要求各个判断的所有可能的条件取值组合至少执行一次;

5、条件组合覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的所有可能的条件取值组合至少执行一次;

二、基本路径测试

设计足够多的测试用例,运行所测程序,要覆盖程序中所有可能的路径。这是最强的覆盖准则。但在路径数目很大时,真正做到完全覆盖是很困难的,必须把覆盖路径数目压缩到一定限度。

 

语句覆盖

o语句覆盖”是一个比较弱的测试标准,它的含义是:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。

n如,例1:

PROCEDURE  M(VAR A,B,X:REAL);  

BEGIN

IF (A>1) AND (B=0)  THEN X:=X/A;

IF (A=2) OR (X>1)   THEN X:=X+1;

END.

 

093728_bGnu_3563297.png

093839_8uab_3563297.png

 

093908_eUQh_3563297.png

 

093936_ZX0n_3563297.png

 

 

094006_zuDJ_3563297.png

 

094054_IHcI_3563297.png

 

094121_d7yX_3563297.png

 

094146_yoBm_3563297.png

 

094217_vHGA_3563297.png

 

094241_Tmzk_3563297.png

 

094313_oh0v_3563297.png

 

094335_NGH7_3563297.png

 

094412_u7Ih_3563297.png

 

094434_2QVA_3563297.png

 

 

094454_djPc_3563297.png

 

094538_6R3R_3563297.png

 

094556_sWHQ_3563297.png

 

094616_fnQ7_3563297.png

 

094703_0FLt_3563297.png

 

 

094727_7TNl_3563297.png

 

094749_3r8Z_3563297.png

 

094814_I9kC_3563297.png

 

094831_XqVq_3563297.png

 

094902_qiAe_3563297.png

 

094918_CZFT_3563297.png

 

094939_rDUe_3563297.png

 

095016_0I7D_3563297.png

 

 

095043_hRbC_3563297.png

 

总共贴了39节,后续还有很长,共122节,文章名为‘白盒测试教程’

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3563297/blog/1618376

你可能感兴趣的文章
typeof
查看>>
Angular 4.0 内置指令全攻略
查看>>
零距离接触阿里云时序时空数据库TSDB
查看>>
阿里巴巴下一代云分析型数据库AnalyticDB入选Forrester Wave™ 云数仓评估报告 解读...
查看>>
高效管理 Elasticsearch 中基于时间的索引
查看>>
Android NDK开发之旅10 JNI JNI数据类型与方法属性访问
查看>>
taro 接口封装和调用 以豆瓣api为例
查看>>
浏览器缓存技术介绍
查看>>
java架构师之用Redis轻松实现秒杀系统
查看>>
okHttp--Retrofit网络缓存设置总结
查看>>
nvm管理node.js版本(Windows系统)
查看>>
『高级篇』docker之kubernetes理解认证、授权(37)
查看>>
Apple Watch学习之路 数据存储
查看>>
SpringBoot记录HTTP请求日志
查看>>
利用WebSocket和EventSource实现服务端推送
查看>>
Java架构-spring+springmvc+Interceptor+jwt+redis实现sso单点登录
查看>>
异步之三:Async 函数的使用及简单实现
查看>>
没有后端也能快速开发H5应用,Vue + OkayApi最佳CP开发!
查看>>
以太坊构建DApps系列教程(四):Story DAO的白名单和测试
查看>>
java B2B2C 多级分销多租户电子商城系统-服务容错保护(Hystrix断路器)
查看>>