[白盒测试学习] 从逻辑覆盖实例学起

1. 什么是白盒测试

白盒测试也称结构测试、逻辑驱动或基于程序的测试,是一种测试用例设计方法。

一般用于分析程序的内部结构。

针对特定的条件和循环设计测试用例,对程序的逻辑路径进行测试。

用这种发方法进行程序设计时,测试者可以看到被测程序,并分析其内部结构,白盒测试要求对被测程序的结构特性做到一定程度的覆盖。

从这个角度上说,白盒测试也是基于覆盖的测试技术。

2. 白盒测试方法概述

白盒测试通常分为静态和动态两种类型,包含很多常用的方法。

静态分析:

按照一定步骤直接见车源代码或代码的测试方法。

包括-代码审查、桌面检查、代码走查等方法

动态测试:

指按照一定步骤生成测试用例并驱动被测程序运行来发现错误。

包括-基本路径测试、符号测试、逻辑驱动覆盖、循环测试、数据流测试等方法。

3. 逻辑覆盖法

这里就从逻辑覆盖法开始了我的白盒测试学习历程。

逻辑覆盖是白盒测试中以程序内部的逻辑结构为基础的设计测试程序用例的技术。

是一系列测试过程的总称。

根据测试覆盖目标不同,以及覆盖源程序的详尽程度分析由高到低排序,可以分为:

语句覆盖

判定覆盖

条件覆盖

判定/条件覆盖

条件组合覆盖

路径覆盖

-------------------------分割线----------------------------------

[从实例开始说起]

程序流图如下:

路径:

p1 = {a,c,e}

P2 = {a,c,d}

P3 = {a,b,e}

P4 = {a,b,d}

判断条件

M = {A > 0 && B = 0}

N = {A = 2 || X > 1}

1. 语句覆盖

语句覆盖是选择足够多的测试用例,使得程序中每一条可执行语句至少被执行一次。

可以说是最弱的逻辑覆盖准则

测试用例id 测试用例输入 输出 判定M的取值 判定N的取值 覆盖路径
001 A=2,B=0,X=4 A=2,B=0,X=3 T T P1

2. 判定覆盖

使得程序总每个判定至少都获得一次“真”一次“假”,每次可以同时真或假,保证总共有真有假就好了。

测试用例id 测试用例输入 输出 判定M的取值 判定N的取值 覆盖路径
002 A=2,B=0,X=4 A=2,B=0,X=3 T T P1
003 A=1,B=1,X=1 A=1,B=1,X=1 F F P4

3.条件覆盖

使得程序中每个判定中包含的每个条件都至少获得一次“真”一次“假”。

对判定M:

T1: A>1, 假为F1

T2: B=0, 假为F2

对判定N:

T3: A=2, 假为F3

T4: X>1, 假为F4

设计用例如下

测试用例id 测试用例输入 输出 取值条件 具体取值条件 覆盖路径
004 A=2,B=0,X=4 T1,T2,T3,T4 A>1,B=0,A=2,X>1 P1  
005 A=1,B=1,X=1 F1,F2,F3,F4 A<=1,B!=0,A!=2,X<1 P4  

4. 判定/条件覆盖

每个判定和判定包含条件的真假结果都出现一次

测试用例id 测试用例输入 输出 覆盖条件取值 覆盖条件组合 覆盖路径
006 A=2,B=0,X=3 T1,T2,T3,T4 1,5 P1  
007 A=2,B=1,X=2 T1,F1,T2,F2 2,6 P3  

5. 组合覆盖

所有条件组合都有一次

测试用例id 测试用例输入 输出 覆盖条件取值 覆盖条件组合 覆盖路径
008 A=2,B=0,X=4 A=2,B=0,X=3 T1,T2,T3,T4 1,5 P1
009 A=2,B=1,X=1 A=2,B=1,X=2 T1,F1,T2,F2 2,6 P3
010 A=1,B=0,X=3 A=1,B=0,X=4 F1,T2,F3,T4 3,7 P3
011 A=1,B=1,X=1 A=1,B=1,X=1 F1,F2,F3,F4 4,8 P4

6.路径覆盖

顾名思义每个路径都走一次

测试用例id 测试用例输入 输出 覆盖条件取值 覆盖条件组合 覆盖路径
012 A=2,B=0,X=4 A=2,B=0,X=3 T1,T2,T3,T4 1,5 P1
013 A=1,B=0,X=1 A=1,B=0,X=1 T1,F2,T3,F4 2,6 P4
014 A=2,B=1,X=1 A=2,B=1,X=2 F1,T2,F3,T4 3,7 P3
015 A=3,B=0,X=1 A=3,B=0,X=2 F1,F2,F3,F4 4,8 P2
时间: 2024-10-17 15:42:53

[白盒测试学习] 从逻辑覆盖实例学起的相关文章

白盒测试——逻辑覆盖法

  白盒测试又称结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.白盒测试是一种测试用例设计方法方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的."白盒"法全面了解程序内部逻辑结构.对所有逻辑路径进行测试."白盒"法是穷举路径测试.在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据.   白盒测试法的覆盖标准有逻辑覆盖.循环覆盖和基本路径测试.今天我们主要研究逻辑覆盖,逻辑覆盖包括语句覆

白盒测试中的几种逻辑覆盖

白盒测试又称为结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.就是在知道软件代码,和内部逻辑结构后进行的一项测试.主要目的是检查内部结构,逻辑.方法是检查每一条路径.与黑盒测试相比,黑盒测试更偏向用户,白盒测试更偏向于开发者.黑盒测试只需要输入和结果.而白盒测试更需要测试,软件内部是如何运行的. 今天我想说一说,白盒测试中的几种逻辑覆盖 白盒测试,为了保证测试的完整性,就要测试软件内部的每一条路径.逻辑覆盖方法能帮助我们设计测试用例,以减少不必要的消耗: 逻辑覆盖包括语句覆盖.判定覆盖.条件

白盒测试的逻辑覆盖法

逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术.它属白盒测试.逻辑覆盖包括语句覆盖.判定覆盖.条件覆盖.判定/条件覆盖.条件组合覆盖和路径覆盖. 六种覆盖标准发现错误的能力呈由弱到强的变化: 1.语句覆盖 2.判定覆盖 3.条件覆盖 4.判定/条件覆盖 5.条件组合覆盖 6.路径覆盖 对上述6种覆盖标准的具体介绍: 1.语句覆盖(Statement Coverage):就是设计若干个测试用例,运行被测程序,使得程序中每一可执行语句至少执行一次.这里的“若干个”,意味着使用测试用例越少越

白盒测试之逻辑覆盖法

白盒测试之逻辑覆盖法 白盒测试又叫逻辑驱动测试或结构测试. 与黑盒测试区别:关注代码内部结构 白盒测试的前提:已知代码内部逻辑 测试方法:逻辑覆盖法 逻辑覆盖法包括六种,从弱到强依次是:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖. 逻辑覆盖法 语句覆盖 将要测试的代码块中的每个语句都至少执行一遍.不关心语句的执行结果,只要执行了某个语句,就说该语句被覆盖了. 判定覆盖 判定可以看做是一个if语句,在程序流程图中用一个菱形表示,这个if语句只有两种结果:真.假.所以判定覆

设计模式学习总结系列应用实例

1.单例模式 应用实例:1.一个党只能有一个主席.2.Windows是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行.3.一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件. 2.工厂模式 应用实例:1.你需要一辆汽车,你可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现 2.Hibernate换数据库只需换方言和驱动

浅析白盒测试中的逻辑覆盖测试

在白盒测试中,逻辑覆盖测试是使用较多的方法.按照其对测试的有效程度,又将其划分为由弱到强的6种:语句覆盖.判定覆盖.条件覆盖.判定-条件覆盖.条件组合覆盖.路径覆盖. 在这里,不深究各个覆盖的优缺点,仅仅根据一个实际例子来看看如何写出6种覆盖的测试用例. public void function(int a, int b, int c) { if ((a > 1) && (b == 0)) { c /= a; } if ((a == 5) || (c > 1)) { c +=

【bb平台刷课记】wireshark结合实例学抓包

[bb平台刷课记]wireshark结合实例学抓包 背景:本校形势与政策课程课需要在网上观看视频的方式来修得学分,视频网页自带"播放器不可快进+离开窗口自动暂停+看完一集解锁下一集(即不能同时刷多集)"的神奇技能,鉴于视频一共有十多集每集30多分钟,广大学子苦不堪言(此乃背景~) 身为技术人,当然不能容忍这种浪费时间的事情发生!时间是最宝贵的应该用来学习!学习!学习!(滑稽)所以我最初做了一个基于按键精灵+图像识别的小(刷)助(课)手(器),但是明显缺点就是课虽然能自动刷了,但是电脑要

Selenium2学习-014-WebUI自动化实战实例-012-Selenium 操作下拉列表实例-div+{js|jquery}

之前已经讲过了 Selenium 操作 Select 实现的下拉列表:Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select,但是在实际的日常网页开发中,实现下拉列表的方法.样式.特效有 N 多种,但是无论实现的方法有多少不同,其都会遵循一定的规律,在此我就不再赘述了(有兴趣的小主,可以找有经验的前段请教一下).同时,此类实现的下拉列表在使用 Selenium 进行定位时,往往不尽如人意,定位比较繁琐. 此文仅以 淘宝网账户注册时选择手

逻辑覆盖

参考内容: 百度词条 https://baike.baidu.com/item/%E9%80%BB%E8%BE%91%E8%A6%86%E7%9B%96/3231015?fr=aladdin#1_1 逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术.它属白盒测试. 逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖.它是一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试. [1] 根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为: 1.语句覆盖(SC) 2. 判定