IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 软件测试肖sir__005测试用例设计方法(1) -> 正文阅读

[开发测试]软件测试肖sir__005测试用例设计方法(1)

一、测试基本术语认识
动态测试(dynamic testing):通过运行软件的组 件或 系统来测试软件
静态测试(static testing):对组件的规格说明书 进行 评审,对静态代码进行走查
正式评审(formal review):对评审过程及需求文 档的 一种特定评审(组内评审和交叉评审)
度量(metric):测量所使用的方法或标准
评审员(reviewer):参与评审的人
记录员(scribe):记录评审会议上的会议纪要
技术评审(Technical Review):同行间对技术进行的评审, 目的是技术实现达成共识
走查(Walkthrough):由文档作者逐步陈述文档内容,以 收集信 息并对内容达成一致
复杂性(complexity):系统或组件的设计或内部结构比较 复杂, 导致难以理解,维护或验证的程度
圈复杂度(Cycloramic complexity):程序中独立路径的数 量。可 以衡量一个组件模块的判定结构的复杂程度
控制流(Control Flow):执行组件或系统的一系列顺序的路 径
数据流(Data Flow):表示数据对象的顺利或状态发生变 化的过程
(1)状态变更:待支付—已支付—待发货—已发货–待签收—已签收–待评价—已评价
(2)金额的流动:绑卡(客户)—充值(平台)平台对接的银行—理财(理财平台或你选择的平台)平台对接的银行转出到你理财项目的对应账户---- 平台的资金减少
控制流图与圈复杂度
控制流图的概念 ? 控制流图(CFG,Controlflowgraph)也叫控制流 程图,
是一个过程或程序的抽象表现
圈复杂度:
程序中独立路径的数量,可以衡量 一个组件模块 的判定结构的复杂程 度。
? 计算对象是结构图或程序图,而程 序图又包括控 制流图与流程图

if (x>100&&y>500) then
score=score+1
else if (x>=1000||z>5000)then
score=score+2

在这里插入图片描述
三种方法计算圈复杂度:
(1)圈复杂度=区域数
圈复杂度=3
(2)圈复杂度=边数-节点数+2
圈复杂度=v-e+2
圈复杂度=7-6+2=3
(3)圈复杂度=判定节点+1
圈复杂度=2+1

================================================
二、用例设计方法
在这里插入图片描述
1、等价类
等价类:指某个输入域的集合,在集 合中各个输 入的条件都是等效的。
通常等价类划分为2种情况:
(1)有效等价类:对程序规格说明有意义 的、合理 的输入数据
输入手机号码:11位 15949613302
(2)无效等价类:对程序规格说明无意义 的、不合 理的输入数据
案例1:输入手机号码:11位 159496133021 (超过11位)
案例2:输入手机号码:11位 159496133 (少于11位)
案例3:输入手机号码:11位 15949613:qq (不是纯数字)

(3)等价类划分的设计用例思路:

  1. 找输入条件
    1. 为每个输入条件找有效、无效等价类
    1. 为每个等价类编号
    1. 用最少的用例覆盖最多的有效等价类 (重点)
    1. 每一个无效等价类都是一个用例 (重点)
    1. 并非所有有效等价类都有无效
    1. 等价类的覆盖可以重复覆盖
      (4) 小结:等价类设计用例覆盖的原则:
      4.1每个用例尽可能多的覆盖多个有 效的等价类
      4.2每个用例只能覆盖一个无效等价 类

案例练习:
现有一个档案管理系统,容许用户通过输入年月对档案文 件进行 检索,系统对查询条件年月的输入限定为1990年1 月~2049年12月,并规定:日期由6位数字字符组成,前4 位表示年,后2位表示月。
找出条件:(1)1990年1月-2049年12月(总)(2)6位数字 (3)前四位是年 (4)后两位是月

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
常见的能够划分等价类的地方:

  1. 数值范围
  2. 重复次数
  3. 字符串长度
  4. 字符串组中字符的个数
  5. 文件命名
  6. 文件大小
  7. 屏幕的颜色种类
  8. 超时时间

等价类的优缺点
优点:是考虑了单个输入域的各类情况, 避免 了盲目或随机选取输入数据的不完整 性和覆盖 的不稳定性。 缺点:方法虽然简单易用,但是没有对组 合情 况进行充分的考虑。需要结合其他测 试用例设 计的方法进行补充。比如边界值

================================================
边界值
(1)在软件中边界值测试方法是发现错误能力最强的一种。

在这里插入图片描述

qq 账号
在这里插入图片描述
闭区间:
上点: 5 13
离点: 4 14
内点:6到12 8代表

开区间:
上点: 5 13
离点:6 12
内点: 7-11

(2)边界条件分析:

  1. 输入条件明确了一个值的取值范围, 或规定了值的个数
  2. 输入条件明确了一个有序集合

(3)边界值分析原则 1. 如果输入(输出)条件规定了取值范围,则应该 以该范 围的边界内及边界附近的值作为测试用例 2. 如果输入(输出)条件规定了值的个数,则用最 大个数, 最小个数,比最小个数少一,比最大个 数多一的数作为 测试数据 3. 如果程序规格说明中提到的输入或输出是一个有 序集合, 应该注意选取有序集合的第一个和最后 一个元素作为测 试数据

案例:输入贷款金额的输入框:100-5000
闭区间
上点:100 5000
离点:99 5001
内点:101-4999

==================

开区间
上点:100 5000
离点:101 4999
内点:102-4998

===============================
判断表:(针对于组合情况)
(1)判定表定义: 分析和表达多逻辑条件 下的执行不同操作的情况
在这里插入图片描述

(2)结构:由4个部分组成
1)条件桩(condition stub):列出问题 的 所有条件(通常条件次序无关紧要)。
2)条件项(condition entry):列出针 对 它条件的取值(所有情况下的真假值)
3)动作桩(action stub):列出问题规 定 可采取的动作(顺序无约束)。
4)动作项(action entry):列出条件各 种情况的应采取的 动作

创建步骤:
1)确定规则的个数:若有N个条件,每一 个条件下有2个值,则有2^n种规则。
2)列出所有条件桩与动作桩。
3)输入条件项。
4)输入动作项得到初始判定表。
5)简化(合并相似规则)
6)编写测试用例

案例:
在这里插入图片描述
2个条件,2个值(填不填) 2的2次方 =4
案例1:
对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”。

理解:1、 功率大于50马力的机器 和维修记录不全(优先)
2、已运行10年以上的机器(优先)
备注:条件3个 2的3次方=8次, 8次可以覆盖所有的组合情况
案例:
在这里插入图片描述
简化初始判定表:
在这里插入图片描述
判定表的作用: 利用判定表将复杂的问题按照 各种可能的 情况全部列举出来, 能针对不同逻辑条件 的组合值, 分别执行不同的操作

==============================
因果图
(1)因果图:因果图提供了一个把规格转化为判定表的系 统化方法,从该图中可以产生测试数据。其 中, 原因是表示输入条件,结果是对输入执 行的一系 列计算后得到的输出。

因果图方法最终生成的就是判定表。它适合 于检查软件输入条件的各种组合情况 (重点)
在这里插入图片描述
(2)因果图中的4种基本关系 在因果图的基本符号中,图中的左结点ci 表示输入状态 (或称原因),右结点ei表示输出 状态(或称结果)。ci与 ei取值0或1,0表示某 状态不出现,1则表示某状态出现。
?恒等:若 c1 是1,则 e1 也为1,否则 e1 为0。
?非:若 c1 是1,则 e1 为0,否则e1为1。
?或:若 c1 或 c2 或 c3 是1,则 e1 为1,否则 e1 为0。
?与:若 c1 和 c2 都是1,则 e1 为1,否则 e1 为0。
因果图中的约束 在实际问题中输入状态相互之间、输出状 态相互之间可能存在某些依 赖关系,称为“约 束”。对于输入条件的约束有E、I、O、R四种 约束, 对于输出条件的约束只有M约束。
?E约束(异):a和b中最多有一个可能为1,即a和b不能 同时 为1。
?I 约束(或):a、b、c中至少有一个必须为1,即 a、b、 c不能同时为0。
?O约束(唯一):a和b必须有一个且仅有一个为1。
?R约束(要求):a是1时,b必须是1,即a为1时,b不能 为0。 ?M约束(强制):若结果a为1,则结果b强制为0

(3)因果图的步骤:
1.把大的系统规格划分解成可以测试的规 格片段
2.分析分解后待测的系统规格,找出哪些 是原因,哪些是结果
3.画出因果图
4.把因果图转换成判定表
5.简化判定表
6.用判定表中的每一列生成测试用例

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

在这里插入图片描述
(4)因果图转换判定表的方法:

  1. 将因果图中的所有条件(因)填 入判定表 的条件桩中;
    1. 将因果图中的所有动作(果)填 入判定表 的动作桩中;
    1. 根据因果图确定各个条件组合对 应的动作, 并且确定判定表中 各个规则的条件项和动 作项, 在需要时优化判定表

(5)因果图的优点/缺点 优点:

  1. 等价类法尽管各个输入条件可能出错的情况都考虑 到了,但是多个输 入条件组合起来出错的情况却被 忽略了
    2 、因果图法能够帮助我们按照一定步骤,高效的选择 测试用例,设计多 个输入条件组合用例
    3、因果图分析还能为我们指出,程序规格说明描述中 存在什么问题
    缺点:
  2. 输入条件与输出结果的因果关系,有时难以从软件 需求规格说明书得 到
  3. 即使得到了这些因果关系,也会因为因果关系复杂 导致因果图非常庞 大,测试用例数目及其庞大

案例;
某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
解答:
根据题意,原因和结果如下:
原因:
1——第一列字符是A;
2——第一列字符是B;
3——第二列字符是一个数字。
结果:
21——修改文件;
22 ——给出信息L;
23——给出信息M。
其对应的因果图如下:
11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。

在这里插入图片描述

场景法 :

(1)场景法主要是针对测试场景类型的,顾也称场景流程分 析法。
流程分析是将软件系统的某个流程看成路径,用路径分 析的方法来设计测试用例。根据流程的顺序依次进行组 合,使得流程的各个分支都能走到

举例说明:
1》人事考勤系统:离职流程有哪些?
在这里插入图片描述
在这里插入图片描述
(2)网购商品流程有哪些?
在这里插入图片描述
练习:
练习1: 针对ATM机的取款流程进行测试 其基本流程如下:

  1. 用户向ATM插卡,验证卡
    1. 输入密码,ATM机验证密码
    1. 输入金额,系统会验证金额
    1. 出钞,并且数据库将帐户中的金额减去
    1. 用户拿钱
    1. 选择退卡
    1. ATM机恢复初始状态

利用xmind 工具画出思维导图:

(1)xmind工具:
在这里插入图片描述
(2)流程分析步骤:

  1. 画出业务流程图 注:描述正常流程和异常流程
    1. 确定条件分支(功能路径) 注:设计路径的优先级
    1. 确认测试路径 注:考虑路径覆盖率
    1. 选择数据构造用例 注:选数据要结合等价类边界值分析

===============================
正交表

正交试验
正交试验设计法,是从大量的试验点中挑选 出适量的、有代表性的点,应用依据迦罗瓦 理论导出的“正交表”,合理的安排试验的 一种科学的试验设计方法

正交常用的术语
指标:通常把判断试验结果优劣的标准叫做 试验的指标
因子:所有影响试验指标的条件
水平值:影响试验因子的取值
在这里插入图片描述
因子:3
水平值 :2
2的3次方 8种
L4=
公式: 实验数=因子*(水平数-1)+1
3*(2-1)+1=4 种

在这里插入图片描述
案例:在这里插入图片描述
因子:7
水平数:2
实验数: 7*(2-1)+1 =8 种

正交表特点:
1》整齐可比性 在同一张正交表中,每个因素的每个水平出现的次数是完全相同的。 由于在试验中每个因素的每个水平与其它因素的每个水平参与试验 的机率是完全相同的,这就保证在各个水平中最大程度的排除了其 它因素水平的干扰。
2》均衡分散性 在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成 的数字对)是完全相同的。这样就保证了试验条件均衡地分散在因 素水平的完全组合之中,,因而具有很强的代表性,容易得到好的 试验条件。

用正交表设计测试用例的步骤:
(1)有哪些因素(变量或条件)
(2) 每个因素有哪几个水平(变量或条件的取值)
(3) 为了满足整齐可比性,选择一个合适的正交表
(4) 把变量的值映射到表中(建议第1行是全真或全假)
(5) 把每一行的各因素水平的组合做为一个测试用例
(6) 加上你认为可疑且没有在表中出现的组合

===============================
状态迁移图
定义:通过描绘系统的状态及引起系统状态转换的 事件,来表示系统的行为

案例:
l向航空公司打电话预定机票—>此时机票信息处于 “完成”状态
l顾客支付了机票费用后—>机票信息就变为“已支付” 状态
l旅行当天到达机场后,拿到机票后—>机票信息就变 为“已出票”状态
l登机检票后—>机票信息就变为“已使用”状态
l在登上飞机之前任何时间可以取消自己的订票信息,
如果已经支付了机票的费用,则还可以得到退款,取 消后—>订票信息处于“已被取消”状态

在这里插入图片描述
状态迁移图设计测试用例步骤:
1.画出状态迁移图
2.通过状态迁移图出状态转换树
3.从状态转换树推导出测试路径
4.根据测试路径编写合法(正常)测试用例或非法 (异常)测试用例
注意:保证从状态转换树的根节点到每个叶节点的每 一条路径都至少设计出一个测试用例。

案例2:

黄 红 蓝 三种颜色,都可以互相转换
状态迁移图:
在这里插入图片描述
状态迁移树:在这里插入图片描述(3)推导出测试路径:
红----黄—红
红---- 黄—蓝
红—蓝---黄
红-----蓝----红

练习:
1、状态迁移图:
在这里插入图片描述
2、转换成迁移树
在这里插入图片描述

3、推导出测试用例

==============================================
黑盒测试方法:
等价类
边界值
判定表
因果图
正交表
场景法
状态迁移法
在这里插入图片描述

===============================
经验测试方法:
(1)错误推测法
错误推测法也叫错误猜测法,就是根据 经验猜想,已有的缺陷,测试经验和失 败数据等可能有什么问题并依此设计测 试用例
(2)异常分析法
系统异常分析法就是针对系统有可能 存在的异常操作、软硬件缺陷引起的 故障进行分析,依此设计测试用例。 主要针对系统的容错能力、故障恢复 能力进行测试
(3)随机测试
随机测试指的是测试中的所有的输入数据都 是随机生成的,其目标是模拟用户的操作。
实际工作中:
真实环境中,尤其是软件刚刚发布时,会有 成千上万的人在上面乱敲乱试;因此在发布 软件前,用模拟用户的随机测试就可能发现 其它方式漏掉的软件缺陷

===============================
测试用例设计的综合策略
一、使用各种测试方法思路
1.在任何情况下都必须使用边界值分析方法,经验表明用这种方 法设计出测试用例发现程序错误的能力最强;
2.必要时用等价类划分方法补充一些测试用例;
3.用错误推测法再追加一些测试用例(依靠经验);
4.如果程序的功能说明中含有输入条件组合情况,则可选用因果 图/判定表;
5.对业务流程场景清晰的系统,使用场景法贯穿;
6.检查已设计的测试用例的覆盖程度;
7.最后要考虑异常分析,再进行综合使用

二、测试用例的设计步骤 1.构造根据设计规格得出的基本功能测试用例 2.边界值测试用例 3.状态转换测试用例 4.错误猜测测试用例 5.异常测试用例 6.其它测试类型测试用例(如性能测试,易用 性测试,安全测试等)

三、优化测试用例的方法
利用设计测试用例的10种方法不断的 对测试用例进行分解与合并

===============================
白盒测试

定义:
白盒测试也叫透明盒测试,检查程序内部结构及路径一是否符合规格说明,二是否符合其代码规范。
因此,也叫结构测试或者逻辑驱动测试

(1)白盒测试常见方法:
1、语句覆盖;
2、判断覆盖(也称“分支覆盖”)
3、条件覆盖;
4、判断、条件覆盖
5、条件组合覆盖;
6、路径覆盖 :
6.1z路径
6.2独立路径

==============
详解:
(1)语句覆盖:
指设计若干个测试用例,使得程序运行时,每个可执行语句至少被执行一次。

(2)判断覆盖(分支覆盖):
指设计若干个测试用例,使得程序运行时,每个判断条件的真假分支至少被执行一次
(3)条件覆盖
指设计若干个测试用例,使得程序运行时,每个判断条件中的每个判断式的真、假值至少被执行一次

(4)判断、条件覆盖
指设计若干个测试用例,使得程序运行时,每个判断条件中真、假值分支至少被执行一次,且每个判断条件的内部判断式的真、假值至少被执行一次
(5)条件组合覆盖
指设计若干个测试用例,使得程序运行时,每个判断条件的内部判断式的各种真假组合都至少被执行一次;是逻辑覆盖测试
中“覆盖能力”最强的

(6)路径覆盖
旨在保证程序中每一个特定的路径方案都能正常运行
路径覆盖方法:
a、独立路径覆盖
即覆盖所有的独立路径的测试,所谓独立路径应至少包含一条在其它路径中从未有过的边

b、Z路径覆盖
是一种将实际项目中复杂的程
序减少其循环次数的路径覆盖方法,即:不考虑循环体实际需要执行多少次,只考虑通过循环体0次和1次这两
种情况

0次循环:直接跳过循环体,从循环体入口直接到出口
1次循环:通过一次循环体即可

==============
白盒测试方法的优点:
1.深入程序内部,测试粒度较细。
2.是测试用例设计方法的组成部分,也是黑盒测试方法的有力补充。
3.为自动化测试与性能测试奠定基础。
白盒测试方法的缺点:
1、.过分关注代码本身,容易偏离SRS实际需求
2、.对相应的编程语言要求较高,人力成本较大

==============
黑盒测试+白盒测试+基于经验
测试黑盒测试+白盒测试+基于经验的测试

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-10-13 11:43:43  更:2021-10-13 11:44:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:30:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码