[PPT模板]白盒测试逻辑覆盖.ppt

上传人:音乐台 文档编号:1996377 上传时间:2019-01-29 格式:PPT 页数:30 大小:427.50KB
返回 下载 相关 举报
[PPT模板]白盒测试逻辑覆盖.ppt_第1页
第1页 / 共30页
[PPT模板]白盒测试逻辑覆盖.ppt_第2页
第2页 / 共30页
[PPT模板]白盒测试逻辑覆盖.ppt_第3页
第3页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[PPT模板]白盒测试逻辑覆盖.ppt》由会员分享,可在线阅读,更多相关《[PPT模板]白盒测试逻辑覆盖.ppt(30页珍藏版)》请在三一文库上搜索。

1、白盒测试方法,逻辑覆盖法,测试用例,测试用例由测试输入数据以及与之对应的输出结果组成。 测试用例设计的好坏直接决定了测试的效果和结果。所以说在软件测试活动中最关键的步骤就是设计有效的测试用例。 测试用例可以针对黑盒测试设计用例,也可以针对白盒测试设计用例,我们今天开始讲针对白盒测试的用例设计方法。,白盒测试方法,为什么要进行白盒测试? 如果所有软件错误的根源都可以追溯到某个唯一原因,那么问题就简单了。然而,事实上一个bug 常常是由多个因素共同导致的,如下图所示。,假设此时开发工作已结束,程序送交到测试组,没有人知道代码中有一个潜在的被 0 除的错误。若测试组采用的测试用例的执行路径没有同时经

2、过x=0和y=5/x进行测试,显然测试工作似乎非常完善,测试用例覆盖了所有执行语句,也没有被 0 除的错误发生。,白盒测试方法(续),程序结构分析; 逻辑覆盖; 基本路径测试; 白盒测试根据程序的控制结构设计导出测试用例,主要用于软件程序的验证。 需要全面了解程序内部的逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。,穷举路径仍然存在遗憾,穷举路径测试法无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序; 穷举路径测试不可能查出程序因为遗漏路径而出错; 穷举路径测试发现不了一些与数据相关的错误;,白盒测试原则,保证一个模块中的所有独立路径至少被测试一次; 所有逻辑值均

3、需测试真(True)和假(False)两种情况; 检查程序的内部数据结构,保证其结构的有效性; 在取值上、下边界,即可操作范围内运行所有循环.,白盒测试方法(续),白盒测试主要是检查程序的内部结构、逻辑、循环和路径。常用测试用例设计方法有: 逻辑覆盖法(逻辑驱动测试) 基本路径测试方法,覆盖测试,主要是测试覆盖率,以程序内在逻辑结构为基础的测试。包括以下6种类型: 语句覆盖 判定覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 修正-判定条件覆盖,逻辑覆盖法,int function1(int a,int b,int c) int x; x=0; if(a ,1、语句覆盖(Statement Co

4、verage),原理:如果语句中有错误,仅靠观察不执行可能发现不了 在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次 若干个 - 尽量少 语句覆盖、程序段覆盖、程序块覆盖,语句覆盖率,语句覆盖率 已执行的可执行语句占程序中可执行语句总数的百分比 复杂的程序不可能达到语句的完全覆盖 语句覆盖率越高越好,语句覆盖测试用例,达到语句覆盖100%的测试用例 A = 1 B = 1 C = 1,未达到语句覆盖100%的测试用例 A = 0 B = 1 C = 3,语句覆盖的优点,检查所有语句 结构简单的代码的测试效果较好 容易实现自动测试 代码覆盖率高 如果是程序

5、块覆盖,则不涉及程序块中的源代码,语句覆盖不能检查出的错误,逻辑运算(&、|)错误 判定的第一个运算符“&”错写成“|”,或第二个运算符“|”错写成“&”,这时使用上述的测试用例仍然可以达到100%的语句覆盖。,语句覆盖不能检查出的错误,循环语句错误 循环次数错误 跳出循环条件错误,语句覆盖不能检查出的错误,循环语句例子 for(i=0;i3) statement; ,for(i=0;i3 ,语句覆盖率的问题,能达到很高的语句覆盖率 语句覆盖率看似很高,却有严重缺陷 if(x!=1) statements; ; else statement; ,99句,1句,测试用例 x = 2 语句覆盖率9

6、9% 50%的分支没有达到,2、判定覆盖(Decision Coverage),比语句覆盖稍强的覆盖标准是判定覆盖。 判定覆盖的含义是:设计足够多的测试用例,使程序中的每个判定至少都获得一次“真值”或“假值”。,除了双值判定语句外,还有多值判定语句,如case语句,因此判定覆盖更一般的含义是:使得每一个判定获得每一种可能的结果至少一次。,构造测试用例如下可实现判定覆盖标准 a=T,b=T,c=T; a=F,b=F,c=F; 不仅满足了判定覆盖还满足了语句覆盖,因此比语句覆盖稍强。但,仍然无法发现程序段中存在的逻辑判定错误。,3、条件覆盖(Condition Coverage),在设计程序中,一

7、个判定语句是由多个条件组合而成的复合判定,判定(a)&(b|c)包含了三个条件:a,b和c。为了更彻底的实现逻辑覆盖,可以采用条件覆盖。 条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。,测试用例如下: a=F,b=T,c=F a=T,b=F,c=T 仔细分析可发现,该用例在满足条件覆盖的同时把判定的两个分支也覆盖了,这样是否能说达到了条件覆盖也就必然实现了判定覆盖呢? a=F,b=T,c=T a=T,b=F,c=F 上述用例满足条件覆盖的但并未满足判定覆盖,为解决这一矛盾,需要多条件和分支兼顾,4、判定/条件覆盖(CDC),含义:设计足够的测试用例,使

8、得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。,测试用例如下: a=T,b=T,c=T a=F,b=F,c=F 但,若把逻辑运算符“&”错写成“|”或第二个运算符“|”错写成“&”,该用例仍然无法发现上述逻辑错误,5、组合条件覆盖(MCC),含义:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。 显然满足组合条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和判定/条件覆盖的。,判定语句中3个逻辑条件,每个逻辑条件有2种可能取值,共238种可能组合。,6、修正条件判定覆盖(MCDC),修正条件判定覆盖是由欧美的航空/航天制

9、造厂商和使用单位联合制定的“航空运输和装备系统软件认证标准”,目前在国外的国防、航空航天领域应用广泛。 有资料表明,波音777整体设计费用的25%都花在了软件的MC/DC测试上。 含义:需要足够的测试用例来确定各个条件能够影响到包含的判定的结果,即要求满足两个条件: 每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次; 程序的判定被分解为通过逻辑操作符(&,|)连接的逻辑条件,每个条件对于判定的结果值是独立的。,通过上表可以看出,布尔变量a可以通过用例1和5达到MCDC的要求(用例2和6或用例3和7也可以满足相应要求),变量b可以通过用例2和4达到MCDC的要求,变量c可以通过用例3和4达到MCDC的要求,因此使用用例集1,2,3,4,5即可满足MCDC的要求。显然,这不是唯一的用例组合。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1