一、实验目的

1.巩固所学的条件覆盖和条件组合覆盖测试方法;
2.提高运用条件覆盖和条件组合覆盖测试方法的能力。

二、实验前提

1.掌握逻辑覆盖的基本方法、概念;
2. 熟悉程序语言的逻辑结构与基础知识;
3. 选择一段程序语言。

三、实验内容

以银行内部转账为实例,针对内部转账业务逻辑代码进行分析,运用条件覆盖进行测试用例设计。
内部转账用于处理发起户口号和接收户口号都是内部账户的系统内资金转账业务,主要用于财务资金的划拨、未实现自动清算业务的清算资金的划拨。
(1)内部转账发起是指:发起行发出内部资金交易,并换人复核,满足条件时需会计主管授权。
(2)内部转账接收是指:内部资金交易接收方根据接收方确认方式,对交易进行接收经办,满足条件的需复核或授权。
确定接收方的入账流程,“确认方式”分为以下三种:
(1)不需接收方确认,即发起方发起后自动记发起方和接收方的一套账务,接收方无须再做接收动作。
(2)需接收方确认,即接收方接收时不能更改接收信息,只能依据发起方输入的信息入账或退发起方。以目前的处理方式,接收经办→入账(金额小于100万元),大于100万元时为接收经办+接收授权→人账。
(3)需接收方经办,即接收方接收时可以更改接收信息,执行入账或退发起行。以目前
的处理方式,接收经办+接收复核→入账(金额小于100万元),大于100万元时为接收经办+接收复核十接收授权→人账。

内部转账控制表如下:

以下为银行内部转账控制的部分伪代码实现:

四、实验环境

  1. 首先要让学生了解银行内部转账业务,能够模拟操作转账流程;
  2. 能够将业务场景与代码逻辑关系对应;
  3. 根据代码画出程序流程图,并分析各判定节点;
  4. 根据代码流程图分析出条件覆盖与条件组合覆盖。

五、实验过程简述

  1. 明确被测试对象使用的测试方法;
  2. 小组讨论业务场景并进行分析;
  3. 测试实施工作安排;
  4. 评审程序流程图和测试用例;
  5. 执行测试,根据测试用例带入各条件测试数据,给出测试结果。

六、实验过程实施
1.测试分析
(1)根据银行内部转账业务描述,分析内部转账流程,包括主流程、分支流程以及正常流程、异常流程。
(2)模拟内部转账场景:触发内部转账的条件,不同条件是否走不同的转账流程。
(3)数据项检査:数据项的计算规则,数据项后台判断逻辑。
2.测试设计
根据内部转账业务需求,设计出程序流程图,如图2-1所示,并对程序流程图做节点标记,分析流程图的判定条件与结果
3.测试执行
根据业务场景与流程逻辑判定,运用条件覆盖法进行用例设计。
条件覆盖即设计足够多的测试用例,运行被测程序,使得每一判定语句中每个逻辑条件的可能取值至少满足一次。条件覆盖率的公式是:条件覆盖率=被评价到的条件取值的数量/条件取值的总数×100%。具体地说,就是在各种条件中,不考虑条件组合的因素,对每个条件变量分别只取真假值一次,使得被测试程序中的每个条件取值至少被覆盖一次。
条件组合覆盖是通过设计足够多的测试用例,使得被测试程序中每个判断的所有可能条件取值的组合至少出现一次。
注意:
(1)条件组合只针对同一个判断语向内存在多个条件的情況,让这些条件的取值进行笛卡儿乘积组合。
(2)不同的判断语句内的条件取值之间无须组合。
(3)对于单条件的判断语句,只需要满足自己的所有取值即可。
测试的依据是需求与设计文档,根据程序流程图实现。

(1)条件覆盖
银行内部转账流程在不考虑判定、仅考虑条件分支的情况下,条件分支数为5,即T1~T5。在条件覆盖中只考虑每个判定语句中的每个表达式,没有考虑各个条件分支。
根据图2-1所示的流程图,标记出节点。根据条件覆盖方法来进行分析,得到如表2-2所示的符合条件覆盖标准的测试用例。
条件覆盖的测试用例

(2)条件组合覆盖
对于判定1
①条件转账金额>100W取真为T1
②条件转账金额<=100W取假为F1
对于判定2
①条件“确认方式”==1取真为T2
②条件“确认方式”==2取真为T3
③条件“确认方式”==3取真为T4
④条件T2、T3和T4都不成立取假为F2
对于判定3:
①条件“确认方式”==2取真为T5
②条件“确认方式”==3取真为T6
③条件T5和T6都不成立取假为F3B
通过设计足够多的测试用例,使得被测试程序中的每个判断的所有可能条件取值的组合至少出现一次。在这个银行内部转账流程上,判定1的条件和判定2、3中的条件分别构成组合。由于业务特定的逻辑,其组合简化为7个,而不是14个
①判定1的条件T1和判定3中的各个条件构成组合,即3个组合,而不是2×3=6个组合;
②判定1的条件F1和判定2中的各个条件构成组合,即4个组合,而不是2×4=8个组合。
因此根据条件组合覆盖,总共有7个测试用例完成组合覆盖,如表2-3所示。这里不考虑异常情况,如转账金额<=0的情况。遇到这种情况会直接异常退出,也无法进入下个判定2或判定3,和组合也没关系。
条件组合覆盖的测试用例

七、实验小结
通过实验巩固所学的条件覆盖和条件组合覆盖测试方法,提高运用条件覆盖和条件组合覆盖测试方法的能力。通过简单程序白盒测试,熟悉测试过程,对软件测试行程初步了解,并养成良好的测试习惯。熟练掌握如何运用基路径测试方法进行测试用例设计。
条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。

软件测试实验二条件覆盖和条件组合覆盖相关推荐

  1. 详解软件测试中白盒测试基本概念及四种白盒测试方法以及六种逻辑覆盖法(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)

    在这篇文章中,我们将讲解白盒测试的基本概念,以及四大常用的白盒测试方法. 一.白盒测试基本概念 1.白盒测试的定义 白盒测试又称为结构测试或逻辑驱动测试,它是把测试对象看成一个透明的盒子,它允许测试人 ...

  2. python多个条件组合覆盖_白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖...

    ·昂贵 ·无法检测代码中遗漏的路径和数据敏感性错误 ·不验证规格的正确性 六种覆盖方法 首先为了下文的举例描述方便,这里先给出一张程序流程图.(本文以1995年软件设计师考试的一道考试题目为例,图中红 ...

  3. 设计测试用例实现语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖.

    第一题: 设计测试用例实现语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖. [1]语句覆盖(设计若干个测试用例,使程序中的每个可执行语句至少执行一次) (x>3)& ...

  4. 【大学生软件测试基础】白盒测试 - 条件组合覆盖 - 02

    任务1.依据源代码画出程序流程图: 任务2.找出需求中所有的逻辑条件: 任务3.列出所有逻辑条件组合情况: 任务4.设计条件组合覆盖用例: 1.流程图 2.找出需求中所有的逻辑条件: S1:x> ...

  5. 什么是条件组合覆盖_什么是综合评价?高中生报名有哪些好处?

    速看丨2020浙江考试说明出炉(含题型示例),新高考地区一定要参考! 看过来,高中各学科免费资料汇总,有你需要的吗?(点击查看) 2020高考化学二轮复习专题共21个专题,赶紧收藏 历年高考题中找规律 ...

  6. 什么是条件组合覆盖_物史政组合分析,新高考最终受益者丨选科17期

    导读 ,规划 物理历史政治是新高考3+3模式下存在的选科组合,为了给马上面临选科问题的高一.高二考生提供有效帮助,自主选拔在线选科模型解读第17期就来分析一下该组合的学科特性.适合人群.优势劣势.专业 ...

  7. 数电实验二 常用中规模组合逻辑电路的设计及应用

    3.1 利用实验一设计的 4 位串行(或超前)进位二进制并行加法器电路作为组件, 设计 4 位二进制可控加减法器,并验证:(说明:用 K 作为控制信号,当 K=0 时,电 路做加法:当 K=1 时,电 ...

  8. 软件测试(二)软件测试之黑白盒

    一.简介 任何工程产品都可以使用白盒测试和黑盒测试两种方法进行测试 1.黑盒测试 黑盒测试:已知产品的功能设计规格和用户手册,可以进行测试证明每个功能是否实现,每个实现了的功能是否符合要求,以及产品的 ...

  9. 软件测试实验一 语句和判定覆盖测试设计

    一.实验目的 1.巩固所学的语句和判定覆盖测试方法: 2.提高运用语句覆盖和判定覆盖测试方法的能力. 二.实验前提 1.掌握语句覆盖和判定覆盖的基本方法.概念: 2. 熟悉程序语言的逻辑结构与基础知识 ...

  10. 软件测试实验三 修正条件/判定覆盖测试设计

    一.实验目的 1. 巩固所学的修正条件/判定覆盖测试方法: 2.提高运用语修正条件/判定覆盖测试方法的能力. 二.实验前提 1. 掌握逻辑覆盖的基本方法.概念: 2.熟悉程序语言的逻辑结构与基础知识: ...

最新文章

  1. Flutter使用CupertinoAlertDialog 报 'alertDialogLabel' was called on null.
  2. 修复计算机怎么操作系统,如何巧妙恢复被误删的操作系统分区
  3. 行内块元素有哪些标签_html的行内元素与块级元素总结
  4. nginx 常见参数以及重定向参数配置
  5. PYPL 二月榜单发布:最受欢迎的编程语言、IDE 和数据库都是哪些
  6. JMH:如何设置和运行JMH基准
  7. 前端学习(361):svn操作后续
  8. sata接口测试软件,如何查看电脑是否支持USB 3.0?Hwinfo32检测SATA端口的方法
  9. 3-1:HTTP协议之应用层协议了解
  10. 常见数据结构List之LinkedList
  11. 查看环境列表_西门子COMOS软件开发定制学习8-查询列表间的数据交互
  12. GHOST系统(迅雷下载集合)
  13. python怎么去掉视频字幕_用Python处理字幕文件
  14. 安科瑞无线测温装置,多点温度在线测温装置
  15. 2021安防视频监控运维市场回顾和展望
  16. 从宜宾天原看中国氯碱百年史:初心未改 工业赋能迈向强国序列
  17. (Nginx出现403 forbidden)nginx权限问题failed(13:Permission denied)
  18. GPS卫星同步时钟,GPS卫星时钟,GPS时钟
  19. rails连接Mysql的数据库
  20. esp8266 AP模式控制继电器开关

热门文章

  1. Windows10查看便签
  2. 门禁系统java_java实现门禁系统
  3. libtorrent源码分析(一)整体框架
  4. Xshell常用功能
  5. 用matlab进行函数插值的几种方法
  6. VBA代码宝工具箱(陈表达)
  7. 思维导向树6级节点_树形图或思维导图类似的数据结构中如何删除特定节点?
  8. Unity 卡通渲染 part-1
  9. latex 数学公式_推荐一款编写数学公式的国产神器:AxMath,可与LATEX双向转换
  10. matlab数据取整方法小结