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

2023-10-31

 

目录

关联实例练习文档

一、认识基本术语

(一)术语一

(二)术语二

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

(四)圈复杂度计算公式

二、用例设计

(一)等价类

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)超时时间

【网络参考】查询的测试用例_Yesabella的博客-CSDN博客_查询测试用例

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种情况

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

最后如果在线的读者你喜欢的话可以留下一个小小的“笔芯”,同时在本文中有什么问题,或者有错误的地方,也可以留言告诉【大大大钢琴(作者)】,我会第一时间纠正。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《第四部分:测试用例--等价类、边界值与用例编写》 的相关文章

  • 【软件测试】学习笔记-脚本与数据的解耦 + Page Object模型

    本篇文章介绍GUI测试中两个非常重要的概念 测试脚本和数据的解耦 以及页面对象 Page Object 模型 测试脚本和数据的解耦 GUI自动化测试适用的场景 尤其适用于需要回归测试页面功能的场景 如果在测试脚本中硬编码 hardcode
  • 软件测试|好用的pycharm插件推荐(五)——Translation

    前言 在我们的日常工作中 经常会遇到需要查看各个第三方库源码的问题 在很多情况下 我们的英语能力不能够满足我们完全读懂源码 所以我们就需要借助翻译工具来帮助我们理解第三方库的源码 如果我们将源码复制再使用其他工具翻译 会显得比较繁琐 如果有
  • 最佳利用Mock提升测试效率的7个技巧!

    再聊这个问题之前 我们先了解一下公司技术架构的演变过程 这样我们才能真正体会到我们为什么要使用 Mock功能 单体应用 在早期 大部分公司的应用技术栈主要可以分为两大类 LAMP Linux Apache MySQL PHP 和 MVC S
  • #私密朋友圈被吐槽有bug?官方致歉!网友:尴尬了......

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试/测试开发/全日制/测试管理丨Redis内存数据库

    Redis是一种开源 内存中的数据结构存储系统 它提供了高性能 灵活性和丰富的数据结构 以下是Redis内存数据库的基本介绍 键值存储 Redis基于键值对的存储模型 其中每个键都与一个特定的值相关联 这种简单的数据模型使其易于使用和理解
  • RF自动化环境安装+自动化实例解析

    RF定义 通用型的 自动测试框架 绝大部分的软件的的自动化系统都可以采用它 特点 测试数据文件 Test Data 对应一个个的测试用例 测试数据文件里面使用的功能小模块叫关键字 由测试库 Test Library Robot Framew
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 19年通过校招进入广州某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • 测试工程师能否作为一份「终身职业」?30岁+怎么办?

    讨论 测试工程师可否作为一份终生的职业 这是我在论坛看到的一个讨论 你的答案是什么呢 我希望大家能认真思考后给出一个属于自己的答案 无论你是新手入门 还是资深专家 回答这个问题请不要凭一腔热血 也不用过分消极 别总和钱挂钩 平心而论即可 就
  • 步骤详图 教你在linux搭建容器环境

    警告 切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker 1 准备工作 系统要求 要安装Docker CE 社区版 操作系统的最低要求是CentOS7 7以下版本都不被支持 卸载旧版本 Docker改版
  • 微信小程序的自动化测试框架

    微信发布了小程序的自动化测试框架Minium 提供了多种运行验证方式 其特点 支持一套脚本 iOS Android 模拟器 三端运行 提供丰富的页面跳转方式 看不到也能去得到 可以获取和设置小程序页面数据 让测试不止点点点 可以直接触发小程
  • 软件测试|Pydantic详细介绍与基础入门

    简介 Pydantic 是一个强大的 Python 库 用于数据验证和解析 特别是用于处理 JSON 数据 它的主要目标是使数据验证和解析变得简单 直观和可维护 本文将介绍 Pydantic 的基础知识 包括如何定义模型 验证数据以及处理错
  • 软件测试|使用Python轻松裁剪视频

    简介 裁剪视频是在视频编辑和处理中常见的任务之一 Python提供了多种库和工具 可以用来裁剪视频 在本文中 我们将详细讨论如何使用Python来裁剪视频 并提供示例代码 步骤1 环境准备 首先 我们要安装必要的Python库 我们将使用
  • 软件测试|Python中如何提取列表中索引为奇数的元素

    简介 在Python中 我们经常需要从列表中提取特定位置的元素 如果我们想要提取列表中索引为奇数的元素 可以使用一些简单的方法来实现这一目标 本文将介绍如何在Python中提取列表中索引为奇数的元素 并提供示例代码来帮助大家更好地理解这个过
  • 软件测试|Selenium StaleElementReferenceException 异常分析与解决

    简介 Selenium 是一个流行的自动化测试工具 用于模拟用户与网页交互 然而 当我们在使用 Selenium 时 可能会遇到一个常见的异常 即 StaleElementReferenceException 这个异常通常在我们尝试与网页上
  • 软件测试|sqlalchemy relationship

    简介 SQLAlchemy是一个流行的Python ORM 对象关系映射 库 它允许我们以面向对象的方式管理数据库 在SQLAlchemy中 relationship 是一个重要的功能 用于建立表之间的关系 在本文中 我们将详细探讨 rel
  • msyql 异常,别干着急,70%的问题都在这里!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 探索自动化测试断言:提升测试效率与质量的关键!

    前言 断言在自动化测试中起着关键的作用 它是验证测试结果是否符合预期的重要手段 如果在自动化测试过程中忽视了断言 那么这个测试就失去了其本质的意义 因为我们无法得知测试结果是否达到了预期的效果 因此 断言在自动化测试中的重要性不言而喻 那么
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋

随机推荐

  • 睿智的目标检测41——Pytorch搭建Retinanet目标检测平台

    睿智的目标检测41 Keras搭建Retinanet目标检测平台 学习前言 什么是Retinanet目标检测算法 源码下载 Retinanet实现思路 一 预测部分 1 主干网络介绍 2 从特征获取预测结果 3 预测结果的解码 4 在原图上
  • 思维模式

    1 整体思维 整体宏观的思考 2 反向思维 不断的问自己如果不这样 3 方法思维 不断的寻找方法 不断的提高自己 从知识范围 方法等宏观角度 还有特有技术方向
  • 字符输入流

    字符输入流 Character Input Stream 是用于从输入源 如文件 网络连接等 读取字符数据的流对象 在 Java 中 主要使用 java io Reader 及其子类来实现字符输入流的操作 FileReader 是 Java
  • uniapp 页面跳转的坑

    uniapp 页面跳转的坑 我们在使用 uniapp 的时候 经常使用到页面跳转 uniapp 的几个常用跳转我就不一一列表了 我就说我遇到的坑吧 如下图 我要从第一个页面跳到第二个页面 我在组件里面写的跳转 大家移位到下一张图 如下图 这
  • LaTex 使用特殊章节符号 (§)

    参考 LaTex 使用特殊章节符号 LaTex 使用特殊章节符号 在 tex文件开头 加上以下内容 usepackage utf8 inputenc usepackage cleveref crefname section Crefname
  • Android动画进阶指北

    原文链接 Android Animation Advanced Tricks 前面的文章介绍了动画的基本使用方法 本文来聊一聊涉及到动画的高级技巧 以及一些非常优质的学习资源和动画三方库和框架 页面之间的过渡动画 常规的动画都是针对某一页面
  • java配置文件中数据库密码加密

    最近 有位读者私信我说 他们公司的项目中配置的数据库密码没有加密 编译打包后的项目被人反编译了 从项目中成功获取到数据库的账号和密码 进一步登录数据库获取了相关的数据 并对数据库进行了破坏 虽然这次事故影响的范围不大 但是这足以说明很多公司
  • VScode使用pip已经下载了faker,但还是报错ModuleNotFoundError: No module named ‘faker‘

    修复一下pip python m ensurepip pip install faker 但是在安装faker的时候 出现了这样的情况 提示warning 换一种写法 pip install faker i http pypi douban
  • 给定一个介于0和1之间的实数,类型为double,打印它的二进制表示

    给定一个介于0和1之间的实数 0 625 类型为double 打印它的二进制表示 如果该数字无法精准地用32位以内的二进制表示 则打印 ERROR 先上代码 public class printbinary public static vo
  • ABAP DOI 技术

    用户提出的报表 是用EXCLE显示的 有许多特殊格式 比如 加粗 大小字体等 普通的ALV报表输出并不能满足用户的要求 那么只能用ALV与EXCLE的集成技术 目前已知的技术有两种 一种是OLE技术 用SMW0上传模板 然后填写数据 多数用
  • Springboot的pom.xml需要用到的依赖总结:

  • 蜣螂优化(DBO)算法(含MATLAB代码)

    先做一个声明 文章是由我的个人公众号中的推送直接复制粘贴而来 因此对智能优化算法感兴趣的朋友 可关注我的个人公众号 启发式算法讨论 我会不定期在公众号里分享不同的智能优化算法 经典的 或者是近几年提出的新型智能优化算法 并附MATLAB代码
  • python怎么生成词云图

    词云图是什么 词云图又称文字云 是信息可视化的表现形式之一 词云是把文本中出现频率较高的关键词进行视觉上的突出显示 形成关键词云层或关键词渲染 从而过滤掉大量的文本信息 读者可以快速领略文本的主旨 相对柱状图 折线图 饼图等用来显示数据的图
  • log4j2 JNDI注入漏洞问题复现

    最近大家应该都有被log4j2的JNDI注入漏洞搞的心烦意乱 当程序将用户输入的数据进行日志输出时 即可触发此漏洞 成功利用此漏洞可以在目标服务器上执行任意代码 以下为改问题的复现方法 1 首先下载JNDI Injection 起 RMI
  • 在docker里使用jupyterhub

    准备工作 需要先安装docker 具体方法参考我的上一篇文章 1 查看本地镜像docker images D go 练习 go zero demo gt docker images REPOSITORY TAG IMAGE ID CREAT
  • 程序切片知识点整理(程序依赖图、静态切片、动态切片)

    整理了很久很久的一篇文章 觉得有收获的可以点个赞点个关注哇 有问题也可以评论或找我交流 有评论必回复 目录 一 基础知识概念 关于控制流信息有如下几个基本概念 1 基本块 2 控制流图 cfg 3 有向图G 基于数据流分析的一些定义 1 到
  • SPDK/NVMe存储技术分析之SSD设备的发现(一)

    源代码及NVMe协议版本 SPDK spdk 17 07 1 DPDK dpdk 17 08 NVMe Spec 1 2 1 1 识别NVMe固态硬盘的方法 NVMe SSD是一个PCIe设备 那么怎么识别这种类型的设备 有两种方法 方法1
  • 工厂模式(分简单工厂模式、工厂方法模式、抽象工厂模式)

    1 工厂模式概述 1 1 简单工厂模式 简单工厂模式是一种创建型设计模式 它实现了创建对象的功能 但不使用任何具体类的名称 客户端通过调用工厂类的静态方法来创建一个具体的对象 无需关心对象创建的细节 1 2 工厂方法模式 工厂方法模式是一种
  • STM32 的定时器解析

    STM32有3种类型的定时器 分别是基本定时器 通用定时器和高级定时器 基本定时器有TIM6和TIM7 通用定时器有TIM2 TIM3 TIM4和TIM5 高级定时器有TIM1和TIM8 根据芯片的型号不同定时器的个数也会有所区别 本文主要
  • 《第四部分:测试用例--等价类、边界值与用例编写》

    目录 关联实例练习文档 一 认识基本术语 一 术语一 二 术语二 三 术语三 控制流图的概念 四 圈复杂度计算公式 二 用例设计 一 等价类 1 1 等价类介绍 1 2 等价类划分举例 1 3 等价类划分的设计用例思路 1 4 小结 等价类