软件测试-白盒测试

一、逻辑覆盖
有选择地执行程序中某些最有代表性的通路是对穷尽测试的惟一可行的替代办法。

从覆盖源程序语句的详尽程度分析,大致有以下一些不同的覆盖标准:

  1. 语句覆盖

含义:选择足够多的测试数据,使被测程序中每个语句至少执行一次。

特点:语句覆盖对程序的逻辑覆盖很少。语句覆盖只关心判定表达式的值,而没有分别测试判定表达式中每个条件取不同值时的情况。语句覆盖是很弱的逻辑覆盖标准。

  1. 判定覆盖

含义:不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次。

  1. 条件覆盖

含义:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。

特点:条件覆盖通常比判定覆盖强,因为它使每个条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达式的值。

判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。

  1. 判定/条件覆盖

含义:使得判定表达式中的每个条件都取到各种可能的值,每个判定表达式也都取到各种可能的结果。

  1. 条件组合覆盖

含义:要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。

特点:条件组合覆盖是前述几种覆盖标准中最强的。满足条件组合覆盖标准的测试数据,也一定满足判定覆盖、条件覆盖和判定/条件覆盖标准。

但是,条件组合覆盖标准的测试数据并不一定能使程序中的每条路径都执行到。

从对程序路径的覆盖程度分析的逻辑覆盖标准

  1. 点覆盖

含义:选取足够多的测试数据,使得程序执行路径至少经过流图的每个结点一次。

特点:由于流图的每个结点与一条或多条语句相对应,因此点覆盖标准和语句覆盖标准是相同的。

  1. 边覆盖

含义:选取足够多测试数据,使得程序执行路径至少经过流图中每条边一次。

特点:通常边覆盖和判定覆盖是一致的。

  1. 路径覆盖

含义:选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。
在这里插入图片描述

二、控制结构测试

  1. 基本路径测试

    基本路径测试是Tom McCabe提出的一种白盒测试技术。

    首先计算程序的环形复杂度;

    以该复杂度为指南定义执行路径的基本集合;

    从该基本集合导出的测试用例可保证程序中的每条语句至少执行一次,而且每个条件在执行时都将分别取真、假两种值。

  2. 循环测试

    循环测试是一种白盒测试技术,它专注于测试循环结构的有效性。

    在结构化的程序中通常只有3种循环,即简单循环、串接循环和嵌套循环。
    在这里插入图片描述

(1) 简单循环

应该使用下列测试集来测试简单循环,其中n是允许通过循环的最大次数。

■跳过循环。

■只通过循环一次。

■通过循环两次。

■通过循环m次,其中m<n-1。

■通过循环n-1,n,n+1次。

(2) 嵌套循环

从最内层循环开始测试,其他循环都设置为最小值。

对最内层循环使用简单循环测试方法,而使外层循环的迭代参数取最小值,并为越界值或非法值增加一些额外的测试。

由内向外,对下一个循环进行测试,但保持所有其他外层循环为最小值,其他嵌套循环为“典型”值。

继续进行下去,直到测试完所有循环。

(3) 串接循环

如果串接循环的各个循环都彼此独立,则可以使用测试简单循环的方法来测试串接循环。

如果两个循环串接,而且第一个循环的循环计数器值是第二个循环的初始值,则这两个循环并不是独立的。当循环不独立时,建议使用测试嵌套循环的方法来测试串接循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值