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)—— 函数覆盖

  • 测试是否执行了程序中的每个函数 

相关推荐

  1. 测试设计:提升测试覆盖率策略方法

    2024-06-07 09:58:05       10 阅读
  2. 设计测试

    2024-06-07 09:58:05       33 阅读
  3. 测试设计思路

    2024-06-07 09:58:05       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 09:58:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 09:58:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 09:58:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 09:58:05       18 阅读

热门阅读

  1. 2020年09月C语言二级真题

    2024-06-07 09:58:05       10 阅读
  2. 用Pip配置Pytorch环境 (Pytorch==2.3.0)

    2024-06-07 09:58:05       9 阅读
  3. oracle服务器存储过程中调用http

    2024-06-07 09:58:05       7 阅读
  4. Docker

    Docker

    2024-06-07 09:58:05      6 阅读
  5. ubuntu22.04防火墙策略

    2024-06-07 09:58:05       6 阅读
  6. Linux-用户管理与软件管理

    2024-06-07 09:58:05       9 阅读
  7. Python3 推导式

    2024-06-07 09:58:05       7 阅读