软件测试用例设计方法之因果图法

基本概念

因果图是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

设计测试用例的步骤

  1. 分析软件规格说明描述中, 哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。
  2. 分析软件规格说明描述中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。
  3. 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。
  4. 把因果图转换为判定表。
  5. 把判定表的每一列拿出来作为依据,设计测试用例。

需要掌握的知识

原因和结果之间的关系
(NOT、AND、OR、 NAND、NOR、恒等)
恒等:如果原因为真,那么结果必定为真。
例如:动物园运来大熊猫,动物 园一定有大熊猫

与:只有2个原因都为真,那么结果为真
例如:北京姑娘,必须有车且有房

或:2个原因中有一个为真时, 结果就为真。
例如:长沙姑娘,你有车或者有房

非:只有原因为假,结果才为真。
例如:你不好好学习,找到好工作

原因和原因的关系
各个原因之间不能同时为真,但可以同时为假
(例如:小明不是11班学生,也不 是12班学生)

实例1

有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。
原因:① 投入1元5角硬币; ② 投入2元硬币;③ 按“可乐”按钮; ④ 按“雪碧”按钮; ⑤ 按“红茶”按钮。
中间状态:① 已投币; ② 已按钮。
结果:① 退还5角硬币; ② 送出“可乐”饮料③ 送出“雪碧”饮料; ④ 送出“红茶”饮料。
 

实例2

有一个处理单价为 5 角钱的饮料自动售货机, 软件测试用例的设计规格说明如下: 若投入 5角钱或 1 元钱的硬币,押下 〖橙汁〗或〖啤酒〗的按钮,则相应的饮料 就送出来;若售货机没有零钱找,则一个显示 〖零钱找完〗的红灯亮,这时在投入 1 元硬 币并押下按钮后,饮料不送出来而且 1 元硬 币也退出来;若有零钱找,则显示〖零钱找 完〗的红灯灭,在送出饮料的同时退还 5 角 硬币。 ”

分析:
条件的组合,适用因果图

  • 条件桩
  • 投入5角 c1
  • 投入1元 c2
  • 按下橙汁c3
  • 按下啤酒c4
  • 有零钱找c5
  • 无零钱找c6
  • 动作桩
  • [零钱找完]的红灯灭,退还5角钱,送出橙汁 e1
  • [零钱找完]的红灯灭,退还5角钱,送出啤酒 e2
  • [零钱找完]的红灯灭,送出橙汁 e3
  • [零钱找完]的红灯灭,送出啤酒 e4
  • [零钱找完]的红灯亮,退出1元钱,饮料不送出来 e5

小结

  • 步骤
    1. 分析输入输出条件(确定因果关系)
    2. 画因果图
    3. 出判定表(分析、简化)
    4. 得出测试用例
  • 核心要点
    • 条件和规则
  • 适用范围
    • 适用于多种条件的组合
  • 局限性
    • 软件规模
    • 条件的顺序问题

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/66583.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务04-elasticsearch

1、es概念 1.1 文档和字段 elasticsearch是面向**文档(Document)**存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为json格式后存储在elasticsearch中: 而Json文档中往往包含很多的字段(Field),类似于数据库中的列。 1.2 索引和映射 索引(…

【go语言学习笔记】05 Go 语言实战

文章目录 一、 RESTful API 服务1. RESTful API 定义1.1 HTTP Method1.2 RESTful API 规范 2. RESTful API 风格示例3. RESTful JSON API4. Gin 框架4.1 导入 Gin 框架4.2 使用 Gin 框架4.2.1 获取特定的用户(GET)4.2.2 新增一个用户(POST&am…

手机app测试

一、安装、卸载、更新、运行 1.安装、卸载 应用是否可以正常安装(命令行安装;apk/ipa安装包安装)(有网,无网是否都正常)卸载过程中出现死机,断电,重启等意外的情况&…

加载并绘制时间域内的心电图信号,并实施Q因子为1的陷波滤波器以去除50 Hz频率研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

「量化」快乐:UC Berkeley 利用 AI 追踪多巴胺释放量及释放脑区

内容一览:多巴胺是神经系统中重要的神经递质,与运动、记忆和奖赏系统息息相关,它是快乐的信使,当我们看到令人愉悦的东西时,体内就会分泌多巴胺,诱导我们向它追寻。然而,多巴胺的准确定量分析目…

直接在html中引入Vue.js的cdn来实现一个简单的博客

摘要 其实建立一个博客系统是非常简单的&#xff0c;有很多开源的程序&#xff0c;如果你不喜欢博客系统&#xff0c;也可以自己开发&#xff0c;也可以自己简单做一个。我这次就是用Vue.js和php做后端服务实现一个简单的博客。 界面 代码结构 代码 index.html <!DOCTYP…

2009年下半年 软件设计师 上午试卷

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

JavaScript应用:五子棋游戏实战开发

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责…

OpenLayers实战,高德GCJ-02坐标系转WGS-84坐标系

专栏目录: OpenLayers实战进阶专栏目录 前言 本章实现高德GCJ-02坐标系转WGS-84坐标系。日常开发中经常遇到源坐标高德的情况,这时候如果地图不是高德,而是使用的wgs84坐标系的地图,或者其他坐标系的情况下,就会导致位置偏移,本章就是解决高德坐标偏移问题。 二、依赖…

Mac下⬇️Git如何下载/上传远程仓库

使用终端检查电脑是否安装Git git --version 通过此文章安装Git ➡️ ​​​​​​​传送门&#x1f310; 方式1⃣️使用终端操作 1.下载——克隆远程仓库到本地 git clone [远程地址] 例&#xff1a;git clone https://gitee.com/lcannal/movie.git​ 2.编…

【MySQL】MySQL不走索引的情况分析

未建立索引 当数据表没有设计相关索引时&#xff0c;查询会扫描全表。 create table test_temp (test_id int auto_incrementprimary key,field_1 varchar(20) null,field_2 varchar(20) null,field_3 bigint null,create_date date null );expl…

好用的免费音频转换器大揭秘

你是否曾经遇到过这样的情况&#xff1a;你有一首喜欢的歌曲或者音频文件&#xff0c;但是你的播放器或设备不支持该文件格式&#xff1f;这时候&#xff0c;你需要一款好用的音频格式转换器来帮助你。说到这&#xff0c;你可能会问&#xff0c;“我都不知道免费的音频格式转换…