Tessy学习系列(二):测试用例的设计与覆盖率介绍

相关内容参考自《软件测试的艺术》

一、测试用例的设计

1.黑盒测试的测试方法

(1)等价类划分

  • 将输入数据分为有效等价类无效等价类每个等价类中的数据被认为是等效的只需要测试一个代表值
  • 目的是确保每个等价类至少有一个测试用例

(2)边界值分析

  • 测试输入域输出域边界条件
  • 通常在等价类划分的基础上对边界值进行额外的测试

(3)因果图分析

  • 使用因果图来表示输入条件输出结果之间的关系,帮助设计覆盖所有功能的测试用例。

(4)错误推测法

  • 基于经验直觉推测程序中可能存在的错误,并设计测试用例来检测这些错误。

2.白盒测试的测试方法

(1)语句覆盖

  • 确保程序中的每条语句至少执行一次。

(2)判定覆盖

  • 确保程序中的每个分支(if、switch、while、for等)的每个可能的结果(真和假)都被测试到。

(3)条件覆盖

  • 确保每个条件表达式(如if语句中的条件)的所有可能结果都被测试。

(4)判定/条件覆盖

  • 同时满足判定覆盖和条件覆盖

(5)条件组合覆盖

  • 每个判定中各条件的每一种组合至少出现一次

(6)路径覆盖

  • 使程序中每一条可能的路径至少执行一次

3.测试用例的设计

        一般用黑盒测试方法设计,用白盒测试方法来补充测试用例

例子1:针对可白盒测试内容,用条件覆盖设计测试用例

Public void foo(int a, int b, int x) 
{
    if (a>1 && b == 0) 
    {
        x=x/a;
    }
    
    if (a==2 || x>1) 
    {
        x=x+1;
    }
}

  通过2个if的内容可以判断,测试用例必须覆盖以下几种组合:

  • 1. A>1,B=0
  • 2. A>1,B<>0
  • 3. A<=1,B<>0
  • 4. A=2,X>1
  • 5. A=2,X<=1
  • 6. A<>2,X>1
  • 7. A<>2,X<=1

  通过针对满足上述组合的条件对测试用例进行输入设计。

例子2:针对黑盒测试内容,用边界值分析设计测试用例

  • 如果输入条件规定了一个输入值范围,那么应针对范围的边界设计测试用例,针对刚刚越界的情况设计无效输入测试用例。举例来说,如果输入值的有效范围是-1.0 至+l.0,那么应针对-1.0、1.0、-1.001 和 1.001 的情况设计测试用例
  • 如果某个输入文件可容纳 1~255 条记录那么应根据 0、1、255 和 255条记录的情况设计测试用例

        

二、覆盖率介绍

        代码覆盖率(Code Coverage)是衡量测试质量的一种指标,它用来描述测试用例执行时覆盖到的代码范围。高代码覆盖率意味着更多的代码被测试用例执行到,但这并不等同于测试的质量高或者软件没有缺陷。代码覆盖率是一个有用的度量,但它应该与其他测试指标和实际测试结果一起使用。

1.C0(Statement Coverage)—— 语句覆盖

  • 测试是否执行了程序中的每条语句

2.C1(Branch Coverage)—— 分支覆盖

  • 测试是否执行了程序中的每个分支的所有可能结果

 

3.DC(Decision Coverage)—— 判断覆盖

  • 同 C1 分支覆

 

4.MC/DC(Modified Condition/Decision Coverage)—— 修正条件/判定覆盖

  • 确保每个条件独立地影响决策的输出,即每个条件至少一次导致不同的结果

 

5.MCC(Multiple Condition Coverage)—— 条件组合覆盖

  •  确保程序中所有可能的条件组合都至少被一次测试用例执行到

6.CPC(Call Pair Coverage)—— 调用对覆盖

  • 评估程序中函数调用关系的测试情况
  • CPC 的目的是确保程序中所有可能的函数调用对(即一个函数调用另一个函数的每一种方式)都至少被执行一次

 

7.EPC(Entry Point Coverage)—— 入口点覆盖

  • 确保程序中所有可能的入口点(函数或方法的开始处)都被至少执行一次

8.FC(Function Coverage)—— 函数覆盖

  • 测试是否执行了程序中的每个函数 
  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃鱼的猫丿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值