因果图(了解)===最终打是走向判断表
(1)因果图提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。
其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。
因果图方法最终生成的就是判定表。(重要)
它适合于检查软件输入条件的各种组合情况(作用)
(2)因果图中的约束 在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约 束”
。对于输入条件的约束有E、I、O、R四种约束,对于输出条件的约束只有M约束。
E约束(异):a和b中最多有一个可能为1,即a和b不能同时为1。
例如:一个橙汁按钮、一啤酒按钮 ,只能选择一个按钮
I 约束(或):a、b、c中至少有一个必须为1,即a、b、c不能同时为0。
例如:两个人有2条路有2条路 :1号路线,2号路线,
你可以选1号路线
你可以选1号路线,2号路线两条路线
O约束(唯一):a和b必须有一个且仅有一个为1。
例如:两个人有2条路 :1号路线,2号路线,
只能选择一条路线,不能不选
R约束(要求):a是1时,b必须是1,即a为1时,b不能为0。
例如:两个人有2条路 :1号路线,2号路线
我选择1号路线,你也只能选择1号路线
M约束(强制):若结果a为1,则结果b强制为0。
例如:两个人有2条路 :1号路线,2号路线
我选择1号路线,你也只能选择2号路线
(3)因果图中的4种基本关系在因果图的基本符号中,
图中的左结点ci 表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。ci与ei取值0或1,0表示某 状态不出现,1则表示某状态出现。
恒等:若 c1 是1,则 e1 也为1,否则e1 为0。
例如:有钱富豪
非:若 c1 是1,则 e1 为0,否则e1为1。
例如:有钱穷人
或(符号:v):若 c1 或 c2 或 c3 是1,则e1 为1,否则e1为0
例如:有钱人== 有车或有房或存款
与():若 c1 和 c2 都是1,则e1 为1,否则e1为0。
例如:有钱人== 有车、有房、存款(同是满足)
(4)
因果图的步骤:
1.把大的系统规格划分解成可以测试的规格片段
2.分析分解后待测的系统规格,找出哪些是原因,哪些是结果
3.画出因果图
4.把因果图转换成判定表
5.简化判定表
6.用判定表中的每一列生成测试用例
(5)
因果图转换判定表的方法:
- 将因果图中的所有条件(因)填入判定表 的条件桩中
- 将因果图中的所有动作(果)填入判定表 的动作桩中;
- 根据因果图确定各个条件组合对应的动作,并且确定判定表中各个规则的条件项和动作项,在需要时优化判定表
(4)
因果图的优点/缺点 优点: - 等价类法尽管各个输入条件可能出错的情况都考虑到了,但是多个输入条件组合起来出错的情况却被 忽略了2. 因果图法能够帮助我们按照一定步骤,高效的选择测试用例,设计多个输入条件组合用例
- 因果图分析还能为我们指出,程序规格说明描述中存在什么问题缺点:
- 输入条件与输出结果的因果关系,有时难以从软件需求规格说明书得到
- 即使得到了这些因果关系,也会因为因果关系复杂导致因果图非常庞大,测试用例数目及其庞大
三种经验测测试技术:(三种)
经验测试方法三种:
错误推测法、异常分析法、随机测试法
(1)错误推测法:
根据经验猜想,已有的缺陷,测试经验和失败数据等可能有什么问题并依此设计测试用例。
例如:金额小数点京经常显示,无法解析
(2)异常分析法:
系统异常分析法就是针对系统有可能存在的异常操作、软硬件缺陷引起的故障进行分析,依此设计测试用主要针对系统的容错能力、故障恢复能力进行测试。
例如:系统win11中安装最新版本微信,在指定安装版本1.10,直接覆盖;
高版本 安装后,在直接安装低版本,之前无法直接覆盖;现在可以覆盖,提高容错性
(3)随机测试法:
随机测试指的是测试中的所有的输入数据都是随机生成的,其目标是模拟用户的操作。
例如:
a、没有事前写好用例或者准备,没有经验的人,随机去测试份方法
b、一个领导测试视察软件,点击软件功能
(二)设计用例方法的主要设计用例
(1)等价类 、边界值 主要针对单个场景功能用例
(2)判定表、正交表、因果图 设计方法 适合组合功能的用例
(3)场景法 适合主流程,
(4)状态迁移 适合:状态的变更用例
(5)错误推测法、异常分析法、随机测试法:在根据经验测试方法进行测试 ,补充用例
(三)、使用各种测试方法思路
a、使用场景法先将测试主流程和次要流程用例写出来 (xmind图,发红包流程)
b、根据每个节点使用等价类、边界值进行设计用例 (金额:0.01 ,200)
c、遇到组合情况用:判定表、因果图、正交表来设计用例 (金额、个数、祝福语、封面 )
d、在将状态的变化使用状态迁移法设计用例(发红中、发送失败、发送成功)
e、再根据自己的经验追加测试用例,考虑异常测试用例
(四)用例分类:测试
功能测试用例、
边界值测试用例
状态转换的测试用例
异常测试测试用例
性能测试用例
安全测试用例
(五)优化测试用例:
利用设计测试用例的10种方法不断的对测试用例进行分解与合并
白盒测试技术
1、白盒测试技术定义:(也叫代码测试、结构测试或逻辑驱动测试、透明测试)
检查程序内部结构及路径是否符合规格说明,是否符合其代码规范。
2、白盒测试方法有那些?
(1)语句覆盖;
(2)判断覆盖(也称“分支覆盖”);
(3) 条件覆盖;
(4)判断、条件覆盖;
(5) 条件组合覆盖;
(6)路径覆盖
a、独立路径
b、z路径(循环)
3、详解每种设计用例方法
(1)语句覆盖;
语句覆盖:指设计若干个测试用例,使得程序运行时,每个可执行语句至少被执行一次。
(2)判断覆盖(也称“分支覆盖”);
判断覆盖:指设计若干个测试用例,使得程序运行时,每个判断条件的真假分支至少被执行一次。
(3) 条件覆盖;
条件覆盖:指设计若干个测试用例,使得程序运行时,每个判断条件中的每个判断式的真、假值至少被执行一次。
(4)判断、条件覆盖;
指设计若干个测试用例,使得程序运行时,每个判断条件中真、假值分支至少被执行一次,且每个判断条件的内部判断式的真、假值至少被执行一次
(5) 条件组合覆盖;
条件组合覆盖:指设计若干个测试用例,使得程序运行时,每个判断条件的内部判断式的各种真假组合都至少被执行一次;是逻辑覆盖测试中“覆盖能力”最强的。
(6)路径覆盖
A:独立路径覆盖
即覆盖所有的独立路径的测试,所谓独立路径应至少包含一条在其它路径中从未有过的语句。
B:Z路径覆盖
是一种将实际项目中复杂的程序减少其循环次数的路径覆盖方法,即:不考虑循环体实际需要执行多少次,只考虑通过循环体0次和1次这两种情况。
4、白盒测试的优缺点:
a、优点
(1).深入程序内部,测试粒度较细。
(2).是测试用例设计方法的组成部分,也是黑盒测试方法的有力补充。
(3).为自动化测试与性能测试奠定基础。
b、缺点:
(1).过分关注代码本身,容易偏离SRS实际需求
(2)对相应的编程语言要求较高,
(3)人力成本较大
5、黑盒测试+白盒测试+基于经验的测试
6、面试题:
(1)白盒测试的方法有那些?
(2)白盒测试是测试什么? 测试代码逻辑、结构、方法等
(3)白盒测试优缺点?
(4)工作中需要进行白盒测试?
a、一般公司不要
b、如果需要白盒测试,(1)需要能查看代码的权限,
(2)懂开发语言 (3)调试代码进行测试
编写测试用例技巧
一、测试用例来源
1、公司里就有现成模板 (用例模板)
a、你到了公司,公司中有测试模版,那你就直接用公司的模版
2、自己设计用例模板
3、导出用例管理工具的模板 (例如:禅道)
二、查看用例模板
三、用例模板中内容
必填:
用例编号、用例标题、前置条件、用例步骤、预期结果、优先级
非必填:用例类型、功能模块、创建时间、创建时间、实际结果、系统名称、执行时间
四 、测试用例详解
(一)用例编号
也可称为:用例id 、用例编号、编号、序号
按规则编写: 系统名称__模块名称__编号 (一般情况用大写系统名称和模块名称,用__下划线连接)
例如:WX_FHB_01
(二)用例标题
也称为:测试内容、测试名称、测试标题
定义:描述用例验证什么
案例:
验证微信发红包(新用户)
验证微信发红包(老用户)
验证微信发送红包失败(红包金额大于余额)
验证微信发送红包失败(零钱余额不足)
验证微信发红包超过最大金额有错误提示(>200)
注意点:
(1)用例标题是永远唯一、不存在两条相同的用例‘’
例如:
验证微信发送红包失败(无网络)
验证微信发送红包失败(密码错误)
验证微信发送红包失败(余额不足)
(2)标题描述、清晰、简单、易懂、
(3)标题能加上“验证”尽量加上
(4)用例标题和预期结果相呼应
(5)用例标题要写清楚验证的点
(6)用例标题是陈述句,不能用判断句、选择范围、禁止写:是否、正常等词
(7)不能把 bug写成一个用例
(8)一个无效的等价类就是一条用例,不能多个无效等价类写成一条用例
(三)优先级
高、中、低
高:核心的测试用例(冒烟测试用例),会阻碍大部分其他测试的用例,
举例: 能发红包、
中:备选流功能测试用例
删除、修改、添加、刷新等用例
低:无效等价类的用例、ui界面、字体、色差等
根据优先级给到开发bug等级
致命bug (1级bug)
严重bug (2级bug)
一般bug (3级bug)
建议性bug(4级bug)
(四)前置条件
定义:执行操作之前的准备
举例:
手机、两个微信号、银行卡、网络、
(五)用例步骤
也叫:测试步骤
定义:验证测试标题的具体的步骤
a、测试流程步骤按照序号编写:1,2,3,4,5, (换行alt+回车)
b、测试步骤开头都是动词
c、测试步骤一般不超过8个步骤 ,(简化步骤,前期的动作可以卸一句话上)
d、不能把上一个用例的步骤,作为现在用例的前置条件
e、每一条用例都是独立的
(六)预期结果
定义:达到预期的目标
a、预期结果要详细
b、预期结果要注意隐藏结果
c、页面跳转
d、订单状态有变更
e、预期结果,不能只写成功或者失败
f、页面提示语“”
g、结果设计到页面、数据变化,说明变化的内容
h、如果设计数据中表和字段的变化下来
七、测试用例注意点
1、标题要有代表性 举例:验证单个红包金额大于最大金额有错误提示 (>200) 步骤:输入201
验证单个红包金额最大金额能发送(=200)
2、能通过案例举行编写用例 :
举例:验收密码错误无法送发送 前置条件:支付密码123456 测试步骤:123457
3、提示语句用“” 引号
4、按钮 用【】表示
5、禁止用:是否、正常等语句
6、写用例遵循有的就写,没有的想场景(不可取)
7、 微信发送红包失败(原因)
