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 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 《第四部分:测试用例--等价类、边界值与用例编写》 -> 正文阅读

[开发测试]《第四部分:测试用例--等价类、边界值与用例编写》

?

目录

一、认识基本术语

(一)术语一

(二)术语二

(三)术语三:控制流图的概念

(四)圈复杂度计算公式

二、用例设计

(一)等价类

1.1 等价类介绍

1.2 等价类划分举例

1.3 等价类划分的设计用例思路

1.4 小结:等价类设计用例覆盖的原则

1.5 常见的能够划分等价类的地方

1.6等价类的优缺点

(二)边界值

2.1 边界点定义

2.2 边界条件分析

2.3 边界值分析原则

(三)实例:使用等价类和边界值编写用例设计和测试用例

(四)判定表定义

4.1 判定表结构:由4个部分组成

4.2 判定表创建步骤

4.3 判定表的作用

(五)实例:判定表设计和用例编写

5.1 设置12306账号密码登录

5.2 三角形判定表设计

(六)因果图

6.1 因果图介绍

6.2 因果图的步骤

6.3 因果图转换判定表的方法

6.4 因果图中的约束

6.5 因果图中的4种基本关系

6.6 因果图的优点/缺点优点:

(七)实例:编写因果图案例

三、拓展面试题提问

(一)你在公司中是怎么使用因果图的?

?四、结束语?



一、认识基本术语

----------------------------------------------------------------------------------------------------------

(一)术语一

(1)动态测试(dynamic testing):通过运行软件的组件或系统来测试软件(就如支付宝的金额一样,支付后会试试更新

(2)静态测试(static testing) :对组件的规格说明书进行评审,对静态代码进行走查。

???????(就如同网页图片,不会实施改变。需求文档写的是否模棱两可等,都属于静态测试

(3)正式评审(formal review)︰对评审过程及需求文档的一种特定评审

(4)度量(metric) ︰测量所使用的方法或标准

(5)评审员(reviewer):参与评审的人(需求:产品经理、测试用例:测试经理或测试自己等

(6)记录员(scribe):记录评审会议上的会议纪要

(二)术语二

(1)技术评审(Technical Review):同行间对技术进行的评审,目的是技术实现达成共识

(2)走查(Walkthrough) :由文档作者逐步陈述文档内容,以收集信息并对内容达成一致。(需求评审的过程

(3)复杂性(complexity)︰是指软件的复杂性(好不好用,使用是否方便),系统或组件的设计或内部结构比较复杂,导致难以理解,维护或验证的程度.。

(4)圈复杂度(Cycloramic complexity):程序中独立路径的数量。可以衡量一个组件模块的判定结构的复杂程度。

?????????(圈复杂度就是指开发代码的复杂度

(5)控制流(Control Flow):执行组件或系统的一系列顺序的路径。(就类似于ATM机取钱,先插卡输入密码一样操作流程

(6)数据流(Data Flow):表示数据对象的顺利或状态发生变化的过程。(就如同物品到购物车,等一系列订单变化过程,数据流向

(三)术语三:控制流图的概念

(1)控制流图(CFG,Controlflowgraph):也叫控制流程图,是一个过程或程序的抽象表现。

(2)圈复杂度:(代码越复杂,圈复杂度越高,反之同理

? 程序中独立路径的数量,可以衡量一个组件模块的判定结构的复杂程度(有开始到结尾的独立不同的路径数量,也是圈复杂度)。

?计算对象是结构图或程序图,而程序图又包括控制流图与流程图。

(四)圈复杂度计算公式

(1)V=E-N+2 (E:结构图的边数N是节点数)

(2)V=区域数

(3)V=P+1(P是判定节点数)

(4)V=程序中从开始到结尾的独立不同的路径数量

二、用例设计

----------------------------------------------------------------------------------------------------------

掌握常用的用例设计方法:等价类(重点)、边界值(重点)、判定表、因果图

(一)等价类

1.1 等价类介绍

等价类指某个输入域的集合,在集合中各个输入的条件都是等效的。

通常等价类划分为2种情况:

有效等价类:对程序规格说明有意义的、合理的输入数据。(对于等价类而言,等价类中的等价都是等价的

无效等价类:对程序规格说明无意义的、不合理的输入数据。

1.2 等价类划分举例

(1)规定了输入值的范围或值的个数如:0<a<100或输入6-10个字符)

(2)输入值为布尔值(如:真或假)

(3)规定了输入数据的一组值(如:文化程度:初中、高中、大学)

(3)规定了输入规则时,可以划分出一个有效的等价类(符合规则)和若干个无效等价类(从不同角度违反规则)

1.3 等价类划分的设计用例思路

(1)找输入条件

(2)为每个输入条件找有效、无效等价类。

(3)为每个等价类编号。

(4)用最少的用例覆盖最多的有效等价类。

(5)每一个无效等价类都是一个用例。

(6)并非所有有效等价类都有无效。(例如:集合这种没有对应的无效等价类

(7)等价类的覆盖可以重复覆盖。

1.4 小结:等价类设计用例覆盖的原则

(1)每个用例尽可能多的覆盖多个有效的等价类

(2)每个用例只能覆盖一个无效等价类

1.5 常见的能够划分等价类的地方

(1)数值范围(如:2000-2021

(2)重复次数(如:银行卡输入密码:1-3次

(3)字符串长度(如:QQ密码的长度为6-8位

(4)字符串组中字符的个数(如:QQ密码中不能出现重复字符次数

(5)文件命名、文件类型(如:上传文件格式规定传mp3格式,无效等价测试非mp3格式

(6)文件大小

(7)屏幕的颜色种类

(8)超时时间

【网络参考】https://blog.csdn.net/qwert789p/article/details/81081510

1.6等价类的优缺点

优点:是考虑了单个输入域的各类情况,避免·了盲目或随机选取输入数据的不完整性和覆盖的不稳定性。

缺点:方法虽然简单易用,但是没有对组合情况进行充分的考虑。需要结合其他测试用例设计的方法进行补充。比如边界值

(二)边界值

2.1 边界点定义

上点:边界上的点

离点:离上点最近的点(即上点左右两边最邻近的点)

内点:在域范围内的点

实例如下:开区间不包括"()"、闭区间包括“[]”

(1)开区间:(1,100) ?异常测试点:1,100 ??正常测试点:2,99 ?、内点:50

(2)闭区间:[1,100] ?异常测试点:0, 101 ?正常测试点: 1,100、 内点:50

(3)半开半闭区间:(1,100] ??异常测试点:1,101 ??正常测试点:2,100 、内点:50

(4)半闭半开区间:[1,100) ????异常测试点:0,100 ???正常测试点:1,99 、内点:50

2.2 边界条件分析

(1)输入条件明确了一个值的取值范围或规定了值的个数

(2)输入条件明确了一个有序集合

2.3 边界值分析原则

(1)如果输入(输出)条件规定了取值范围(如:确定几位数、确定字符长度等),则应该以该范围的边界内及边界附近的值作为测试用例

(2)如果输入(输出)条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据

(3)如果程序规格说明中提到的输入或输出是一个有序集合(如:男女、春夏秋冬、1-10等等)应该注意选取有序集合的第一个和最后一个元素作为测试数据(等价类包含边界值)。

(三)实例:使用等价类和边界值编写用例设计和测试用例

注意:测试用例基本标题为:“用例编号、用例标题、前置条件、用例步骤、预期结果、实际结果”等7大标题。

?

?

(四)判定表定义

判定表定义:分析和表达多逻辑条件下执行不同操作的情况

4.1 判定表结构:由4个部分组成

(1)条件桩(condition stub):列出问题的所有条件(通常条件次序无关紧要)。

(2)条件项(condition entry) :列出针对它条件的取值(所有情况下的真假值)

(3)动作桩((action stub) :列出问题规定可采取的动作(顺序无约束)。

(4)动作项(action entry) :列出条件各种情况的应采取的动作。

4.2 判定表创建步骤

(1)确定规则的个数:若有N个条件,每个条件下有2个值,则有2^n种规则。

(2)列出所有条件桩与动作桩。

(3)输入条件项。

(4)输入动作项得到初始判定表。

(5)简化(合并相似规则)。

(6)编写测试用例

4.3 判定表的作用

利用判定表将复杂的问题按照各种可能的情况全部列举出来,能针对不同逻辑条件的组合值,分别执行不同的操作。

(五)实例:判定表设计和用例编写

5.1 设置12306账号密码登录

5.2 三角形判定表设计

(六)因果图

6.1 因果图介绍

? 因果图提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。因果图方法最终生成的就是判定表。它适合于检查软件输入条件的各种组合情况

6.2 因果图的步骤

(1)把大的系统规格划分解成可以测试的规格片段

(2)分析分解后待测的系统规格,找出哪些是原因,哪些是结果

(3)画出因果图

(4)把因果图转换成判定表

(5)简化判定表

(6)用判定表中的每一列生成测试用例

?

6.3 因果图转换判定表的方法

(1)将因果图中的所有条件(因)填入判定表的条件桩中;

(2)将因果图中的所有动作(果)填入判定表的动作桩中;

(3)根据因果图确定各个条件组合对应的动作,并且确定判定表中各个规则的条件项和动作项,在需要时优化判定表。

注意:?会出现的条件情况2的n次方(其中n代表条件个数)

6.4 因果图中的约束

在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”。对于输入条件的约束有E、I、O、R四种约束,对于输出条件的约束只有M约束。

(1)E约束(异): a和b中最多有一个可能为1,即a和b不能同时为1。

如:单选框中选择男或者女

表示原因与原因之间的关系,两个条件最多只能满足其中一个的时候,就是E的关系,(要么都不选,要么只能选择其中一个

(2)I约束(或):a、b、c中至少有一个必须为1,即a、b、c不能同时为0。

如:填写联系方式时候,必须通过选电话、手机号、座机号选其中一个

(3)O约束(唯一):a和b必须有一个且仅有一个为1。

如:

(3)R约束(要求):a是1时,b必须是1,即a为1时,b不能为0。

如:a要求b是什么东西,例如选择杭州市、那么省份必须是浙江省

(4)M约束(强制):若结果a为1,则结果b强制为0。

如:点击登录按钮,必定是要么登录成功、要么是登录失败,两者必选其一

?

6.5 因果图中的4种基本关系

在因果图的基本符号中,图中的左结点ci表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。ci与ei取值0或1,0表示某状态不出现,1则表示某状态出现。

(1)恒等:若c1是1,则e1也为1,否则e1为0。

(2)非:若c1是1,则e1为0,否则e1为1。

(3)或:若c1或c2或c3是1,则e1为1,否则e1为0。

(4)与:若c1和c2都是1,则e1为1,否则e1为0。

6.6 因果图的优点/缺点优点:

(1)等价类法尽管各个输入条件可能出错的情况都考虑到了,但是多个输入条件组合起来出错的情况却被忽略了

(2)因果图法能够帮助我们按照一定步骤,高效的选择测试用例,设计多个输入条件组合用例

(3)因果图分析还能为我们指出,程序规格说明描述中存在什么问题缺点:

(3.1)输入条件与输出结果的因果关系,有时难以从软件需求规格说明书得到

(3.2)即使得到了这些因果关系,也会因为因果关系复杂 ,导致因果图非常庞大,测试用例数目及其庞大

(七)实例:编写因果图案例

?

?

三、拓展面试题提问

----------------------------------------------------------------------------------------------------------

(一)你在公司中是怎么使用因果图的?

我们在公司中一般不会去画因果图,只会把需求当中有因果关系的地方找出来。然后把因果关系中的因放入判定表中的条件桩中,把因果关系中的果放入判定表的动作桩中,从而把因果图转换成判定表,以防止用例的漏写和漏测。(假如一个因果图有8个条件,那么它的结果会有2的8次方258种情况

?四、结束语
-----------------------------------------------------------------------

最后如果在线的读者你喜欢的话可以留下一个小小的“笔芯”,同时在本文中有什么问题,或者有错误的地方,也可以添加以下QQ群进行学习交流。同时在文章发布之前,你们在网页上所看到的文章我已经编写好了离线文档,如果有需要,同样也可以加群下载。

?学习和成长本就是这样,痛并快乐着,而又是一个漫长的过程,因为有你们的分享和大家的互相监督学习,才能够不断的进步和成长。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:46:59  更:2021-07-10 14:47:48 
 
开发: 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年5日历 -2024/5/6 1:41:18-

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