首页 > 其他分享 >计划测试_白盒测试

计划测试_白盒测试

时间:2023-03-21 09:34:13浏览次数:32  
标签:语句 覆盖 白盒 路径 计划 判定 测试 条件 取值

穷举测试
image
一次循环中,从程序入口到出口,假设有5条路径,循环次数假定为20次。
穷举测试总路径数为: \(5^{20}=9.53674E+13\)
假定每执行1次测试花费1ms,那么穷举测试时间为: 3024.1年

如何实现路径压缩、问题简化

逻辑覆盖 和 基本路径测试

逻辑覆盖

逻辑覆盖的类型

  1. 语句覆盖:每条可执行语句
  2. 判定(分支)覆盖:每条分支路径
  3. 条件覆盖:每个判断的每个条件的所有可能取值
  4. 判定/条件覆盖:每个分支路径和每个判断的每个条件的所有可能取值
  5. 条件组合覆盖:每个判断的所有可能的条件取值组合
  6. 路径覆盖:每条可能的路径

:判定 就是选择(菱形框);条件是 选择的条件(菱形框内的条件)

由于类型容易混淆,因此需要分类设计、严卡概念,为了方便理解,对分类在进行分类:

案例程序3.1:连锁选择结构

function js(float A,float B,float X)
{
     if(A>1&&B==0) X=X/A;
     if(A==2||X>1) X=X+1;
}

注意:

  1. 不是由程序推出的测试用例
  2. 测试用例没有特殊要求,随意取值

(一)、只考虑整体

  1. 语句覆盖:每条可执行语句

  2. 判定(分支)覆盖:每条分支路径

  3. 路径覆盖:每条可能的路径

(二)、只考虑局部

  1. 条件覆盖
  2. 条件组合覆盖

(三)、兼顾整体局部

  1. 判定/条件覆盖

(一)、只考虑整体

1.语句覆盖:每条可执行语句
image

优点:

缺点:

  • 无法预测隐藏条件和分支
  • 无法检查出条件语句错误
  • 无法检查出逻辑运算错误
  • 无法检查出循环语句错误

2. 判定覆盖:每个判定的所有可能取值
判定覆盖比语句覆盖严格,能消除隐式分支,但是仍不能保证判断条件的正确性。

对于两个连锁选择结构有两种情况:

  1. 同真同假(发现错误能力较弱)
    image

  2. 交叉取值(发现错误能力较强)
    image

优点

  1. 比语句覆盖具有更强的测试能力;
  2. 具有简单性,无须细分每个判定即可得到测试用例

缺点
往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径

3. 路径覆盖:每条可能的路径
对于连锁选择结构就是覆盖所有的路径:
image

优点:根据多缺陷,覆盖完全。
缺点:效率低。

(二)、只考虑局部

1. 条件覆盖:每个判定中每个条件的所有可能取值

对于两个连锁选择结构有两种情况:

  1. 同真同假(发现错误能力较弱)
    image
    关注的是 D1和D2 的T和F,对于c1、c2、c3、c4取值随意。

  2. 交叉取值(发现错误能力较强)
    image

优点:增加了对符合判定情况的测试,增加了测试路径
缺点:需要足够多的测试用例,但条件覆盖并不能保证分支覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果

注:条件覆盖和判定覆盖 两者不是包含关系,但是有交集;两者各有优点和缺点

标签:语句,覆盖,白盒,路径,计划,判定,测试,条件,取值
From: https://www.cnblogs.com/kingwz/p/17238776.html

相关文章

  • Go语言:利用 TDD 驱动开发测试 学习结构体、方法和接口
    环境安装:(新手向)在Linux中使用VScode编写"Hello,world"程序,并编写测试-Ubuntu20.4上一篇相关随笔:Go语言:利用TDD测试驱动开发帮助理解数组与动态数组(切片)的区别......
  • 使用python来模拟端口被占用的测试场景
    一、测试场景拿到一个运维如软件,做安装部署测试。其中,测试过程中存在一种场景:由于环境清理不干净等原因,导致软件安装部署时,某个组件的端口号被占用,而导致部署失败的情况。......
  • 如何自动化测试你的接口?—— Rest Assured
    前言不知道大家的项目是否都有对接口API进行自动化测试,反正像我们这种小公司是没有的。由于最近一直被吐槽项目质量糟糕,只能研发自己看看有什么接口测试方案。那么在本文......
  • [算法课]全面翻新计划!第二周全解
    文章目录​​上课内容​​​​试题A:组队​​​​数据​​​​详细分析​​​​颜老板版本暴力枚举​​​​吐槽​​​​更新版​​​​思路​​​​枚举版本​​​​思路......
  • [算法课]全面翻新计划!第十一周全解
    文章目录​​上课内容​​​​贪心法​​​​例1兑换货币​​​​颜老板代码​​​​更新版​​​​测试数据​​​​博主提示:​​​​注意:​​​​贪心算法的思路:​​​​......
  • 日常测试进行beans比较的简单方法
    日常测试进行beans比较的简单方法摘要想每天把有变化的bean抓取出来有新增的beans时能够及时进行分析和介入保证beans都是符合规范的.方式和方法开启actuator打......
  • 性能测试
    一、性能测试的学习目的:1、所有公司的项目都要进行性能测试,不管是蒙混过关、还是性能压力需求少2、测试工程师要完成企业的性能测试3、多用户并发、负载等......
  • 性能测试基本知识
    一、软件项目中性能测试的概念: 性能测试是指通过特定方式,对被测系统按照一定策略事假压力,获取系统响应时间、TPS(TransactionPerSencond)、吞吐量、资源利用率等性能指标,......
  • WebSocket 测试工具
    WebSocket测试工具 一、WebSocket简介WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端......
  • Go语言:利用 TDD 测试驱动开发帮助理解数组与动态数组(切片)的区别
    ArrayVSSlice数组允许你以特定的顺序在变量中存储相同类型的多个元素。对于数组来说,最常见的就是迭代数组中的元素。我们创建一个Sum函数,它使......