【软件测试】用例篇 -- 详解

一、测试用例的基本要素

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。(注意:不需要执行结果,因为执行结果需要执行完测试用例才知道,没有测试用例自然就没有执行结果)

好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试。

评价测试用例的标准:对比好坏用例的评价标准。

  • 用例表达清楚,无二义性。
  • 用例可操作性强。
  • 用例的输入与输出明确。一条用例只有一个预期结果。
  • 用例的可维护性好。
  • 用例对需求的覆盖率高。

1、测试用例的给我们带来的好处

  • 测试执行者的依据。
  • 使得工作可重复,自动化测试的基础。
  • 评估需求覆盖率。
  • 用例的复用。
  • 积累测试的方法思路以供后续借鉴。

(1)使用时带来的困扰

测试用例的设计是费时费力的工作,往往设计测试用例所花费的时间比执行所花费的时间还多。

(2)能解决的问题

  • 不知道是否较全面的测试了所有功能。
  • 测试的覆盖率无法衡量。
  • 对新版本的重复测试很难实施。
  • 存在大量冗余测试影响测试效率。

二、测试用例的设计方法

1、基于需求进行测试用例的设计

基于需求设计测试用例是测试设计和开发测试用例的基础第一步就要分析测试需求,验证需求是否正 确、完整、无二义性,并且逻辑自洽。
在需求正确的基础上细化测试需求,从测试需求提炼出一个个测 试点或者测试项,然后根据每一个测试点进行测试用例的设计。
在分析测试需求时,一般分为 功能测试需求 非功能测试需求

【163 邮箱注册】


(1)功能需求测试分析

对于功能测试中,可以借助功能框图来帮助我们进行测试的需求分析。概括起来,功能测试需求包括以下,通常包括以下几个方面:

  1. 系统各个功能界面的验证。
  2. 借助业务把功能串起来进行测试。
  3. 功能的一致性,交互性(多功能互操作)的测试。
  4. 系统的不同输入,结果输出的业务数据测试。
  5. 功能的错误操作,异常操作的测试(属于负面测试)。
  6. 功能实现用到的算法验证,有时需要用运代码评审。
  7. 用户操作的易用性,用户体验,往往结合功能测试同时验证。
针对具体的需求,可以根据业务分类,用户角色(餐厅的会员系统)或者用户操作区域等将系统的功能分解成若干个功能模块,然后按照功能模块分别进行测试需求分析。按照功能模块划分,业务模块划分是最常见的做法。

【日历系统的需求分析】

对日历根据 web 界面的功能布局分析出的功能框图如下:
也可以采用思维导图的方式,更为方便,有效,只管的呈现测试需求的分析结果,可以更好的支持测试分析思路的连贯性。

百度云盘手机端核心功能需求分析】

在进行需求分析的时候,我们还要考虑业务规则如,上传文件的大小有没有限制;一次性崔铎上传多少数量的文件,比如小于 100  个;文件夹最多有多少层等等;

(2)非功能需求测试分析

非功能测试需求主要涉及性能,安全性,可靠性,兼容性,易维护性和可移植性等。从测试需求分析来看,每一类非功能特性测试都需要根据需求单独分析。他们之间可能会存在相互影响,如安全性越高,就越有可能给易用性,性能带来更大的挑战。
这里要说明的是对于每一个应用软件系统,非功能特性的质量需求都是存在的,但是不同的项目类型对各个非功能特性的要求是不一样的,这个需要根据具体的项目、具体需求和不同产品应用的特点进行分析。

a. 纯客户端软件

比如字处理软件(WordPPT),媒体(音频 视频)播放软件(电脑自带的)等。这类软件对系统的功能测试要求是最低的,但是对兼容性和稳定性,可移植性有一定的要求。


b. 企业内部的客户端/服务端(C/S)应用系统

比如电子邮件,即时通信系统(飞Q,企业QQ)等,在系统功能测试需求上比纯客户端复杂,要求功能正确,稳定性能好。但是整体上看,对性能,安全性,兼容性要求不高。


c. 外部大型复杂网络应用系统

比如电子商务,网上银行,视频网站(腾讯,优酷)等,除了有复杂的系统的功能测试需求外,在系统的性能,安全性,兼容性,容错性,可靠性等都有很高的要求。

此外,对于大型企业级应用系统,由于应用模式,系统架构的不同(分布式,微服务等),我们必须结合架构和应用模式来具体分析非功能性测试需求,特别是可扩展性,可靠性,安全性等。技术架构对功能的影响小,但是非功能性测试就要深入架构分析,才能更好的把我测试范围和测试方法。

继续举一个例子百度云盘非功能测试的例子:
用户需求:
购买3000块钱以内的华为智能手机
测试用例:
1.价格<=3000元
2.品牌为华为
3.智能手机
4.手机功能验证:
    4-1.打电话
    4-2.接电话
    4-3.发短信
    4-4.收短信
    ...
软件需求:
1.1.1.1.5.3 异常事件流
1. 若用户未收到激活邮件,可在登录界面录入电子邮件及密码后,再次发送激活邮件。
2. 每次发送的激活邮件,仅在发送邮件后起24小时之内有效,超过24小时后需重新发送激活邮件。
**测试用例**
1-1、未收到邮件,登录时输入电子邮件及密码后,再次发送激活邮件
1-2、已收到邮件,登录时输入电子邮件及密码后,不发送激活邮件

2-1、收到邮件,未激活,24小时内进行激活
2-2、收到邮件,未激活,24小时后链接过期进行激活。
2-3、收到邮件,已激活,24小时后链接过期,再次点击激活?
页面检查:
1、收到激活邮件
2、邮件内容正确
3、激活URl正确,可激活
4、再次激活提示已激活
5、过期激活提示已过期

2、具体的设计方法

(1)等价类

举例:
原则上讲, 老师应该依据每个学生自身的情况, 指定符合的学习方案。 但是实际上学生太多,老师管不过来, 只能分成几类:
  • 优等生强调知识面的扩展和综合能力的提升;
  • 中等生强调夯实基础,查缺补漏;
  • 差等生强调优先掌握重点,暂时跳过难点
  • ... ...
思路:输入的集合是无穷的, 不能全都覆盖到。
依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。
  • 有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能。满足用户需求输入集合。
  • 无效等价类:根据需求说明书,不满足用户需求输入的集合。
等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充。
【超市买水果】
有效等价类:苹果、梨子、西瓜...
无效等价类:青菜、大米、饮料...
|用户名 | 必填,录入用户名 | 6至15

有效等价类:6~15位
无效等价类:小于6位 && 大于15位

等价类思想设计测试用例的步骤:

  1. 充分理解需求
  2. 划分有效等价类和无效等价类
  3. 针对有效等价类和无效等价类中设计测试用例。

(2)边界值

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

  • 日常语言中的 “边界” 漏洞:考完试发成绩了, 老师布置寒假作业:超过 60 分的,所有题目抄写 遍,低于 60 分的,所有题目抄写 遍。于是小明就没有写作业,因为他刚好 60 分。

  1. 输入框长度为 1~11,取边界值为:111120。
  2. 运动员的参赛项目为 1~3 项,取边界值为:0项、1项、3项、4项。
  3. 查询面页面有 999 行,每 50 行为一页,取边界值为:输出0行、1行、50行、51行、999行。

边界点

上点:边界上的点。

内点:边界内的点(不管范围是闭区间开始开区间)。

离点:边界值附近的一个点(闭区间区间外距离上点最近的点,开区间区间内距离上点最近的点)。


(3)因果图

因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件、程序的输出又依赖于输入条件的各种情况。 

A. 因果图的需要掌握的基本知识 
a. 恒等

条件为真,结果一定为真。


b. 

所有的条件都得满足,如果有一个条件不满足,那么结果就为假。 


c. 或

满足其中一个条件结果就为真,如果条件全部为假,那么结果就为假。


d. 非

条件为假,结果才为真。


B. 因果图法设计测试用例的步骤
  1. 分析所有可能的输入和可能的输出。
  2. 找出输入与输出之间的对应关系。
  3. 设计判定表。
  4. 把判定表对应到每一个测试用例。

C. 判定表

判定表(Decision table)是一种表达逻辑判断的工具。


淘宝 618 活动
假设业务单据的处理规则为: 淘宝  618  活动,订单已提交,订单合计金额大于  300  元或有红包,则优惠”
a. 对于这条业务规则,首先通过分析所有可能的输入和可能的输出,可以得到如下结果:
  • 输入:订单已提交、金额大于 300、有红包。
  • 输出:优惠、不优惠。
b. 第二步,找出输入与输出之间的对应关系。通过分析,可以看出有以下的对应关系。
  1. 订单已提交,订单金额大于300元,有红包,则优惠。
  2. 订单已提交,订单金额大于300元,没有红包,则优惠。
  3. 订单已提交,订单金额小于等于300元,有红包,则优惠。
  4. 订单已提交,订单金额小于等于300元,没红包,则不优惠。
  5. 订单不提交,订单金额大于300元,有红包,则不优惠。
  6. 订单不提交,订单金额大于300元,没有红包,则不优惠。
  7. 订单不提交,订单金额小于等于300元,有红包,则不优惠。
  8. 订单不提交,订单金额小于等于300元,没红包,则不优惠。

c. 设计判定表:

d. 把判定表对应到每一个测试用例:

可以在后面补充符合要求的测试要素。


(4)正交排列

因果法设计用例太多怎么办?

正交法的目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合。


正交试验设计(Orthogonal experimentaldesign)是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。正交试验设计是一种基于正交表的、高效率、快速、经济的试验。

  • 因素Factor):在一项试验中,凡欲考察的变量称为因素(变量)。
  • 水平(位级)Level):在试验范围内,因素被考察的值称为水平(变量的取值)。
  • 正交表的构成
  • 行数(Runs)正交表中的行的个数,即试验的次数,用 代表。
  • 因素数(Factors)正交表中列的个数,用 代表。
  • 水平数( Levels) 任何单个因素能够取得的值的最大个数。正交表中的包含的值为从  到数  水平数 -1”  或从 1  到  水平数 ,用  代表。

A. 正交表的表示形式
L= 行数 ( 水平数 * 因素数 ) L=N(TC)

B. 正交表的两条性质
  1. 每一列各数字出现的次数一样多
  2. 任何两列中的各有序数对出现的次数都一样多

C. 正交法设计测试用例的步骤

充分理解需求(有哪些元素(变量))

-> 确定因素水平(每个因素有哪几个水平(变量的取值)

-> 画正交表(选择一个合适的正交表,把变量的值映射到表中

-> 补充正交表

-> 将正交表转换成测试用例(把每一行的各因素水平的组合作为一个测试用例,加上你认为可疑且没有在表中出现的用例组合


注册的需求
姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册。

1、因素

姓名、邮箱、密码、确认密码、验证码


2、水平

填写、不填写

利用 allpairs 画正交表:

(1)先将水平和因素填写到 excel 表格中


(2)将 excel 表格内容复制到 .txt 文件中


(3)Ctrl+S 保存到 allpairs 的下载路径


(4)进入 cmd(windows+R)将路径切换到 allpairs 安装路径下

进入到 allpairs 的目录下,执行命令:allpairs.exe 文件名 > 结果文件名

至此,就可以看到生成了 20240506_result.txt:

注意:~ 意味着此时这个取值可以填写,也可以不填写。


(5)场景设计法

场景设计法是针对整个流程进行设计的。

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。

典型的应用是是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免陷入功能细节忽视业务流程要点的错误倾向。


【注册】

想象注册的场景来设计用例,这与根据需求的业务流来设计差不多。主要是想象各种业务流来设计用例。例如我们可以再想象以下场景:
  1. 用户激活后再次点击邮件激活链接。
  2. 已注册用户再次注册。


【ATM 取款】

通常情况下,需要将用户经常使用的功能模块串在一起进行测试。 


(6)错误猜测法

错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。

错误猜测法更多依靠的是经验。这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人的经验和直觉。

错误推测法和目前流行的“探索式测试方法的基本思想一致,这类方法在敏捷开发模式下的投入产出比很高,被广泛应运于测试。

这个方法的缺点是难以系统化,并且过度依赖个人能力。


【注册】
  1. 校验中特殊字符空格的处理。
  2. 密码校验中的大小写。
  3. 姓名中的特殊字符。
  4. 密码发送是否明文。

如何模拟弱网? 
1、借助工具(Fiddler / Charles)

2、打开限速模式

上传 1kb 文件需要花费 300ms,下载 1kb 需要花费 150ms(这里的数字越小,说明网速越好)


如何测试接口?(需要回顾)
1、借助工具(PostmanCanary)/ 代码
2、http 方法进行测试


3、针对接口的参数进行测试
(1)参数通过 parameter 传递
  • 传参数
  • 不传参数
  • 传入非法参数


(2)通过 json 传递


写一个冒泡参数,针对这个代码如何测试呢?
  • 方法参数(参数类型、不给参数、参数传递为空等)
  • 异常处理(除零错误)
  • 代码规范
  • 语句覆盖(涉及白盒测试)、条件覆盖、语句条件覆盖、判定覆盖...
  • ... ...

针对 Linux 中 zip 这个命令,如何进行测试呢?

功能:

  • 打包的是一个不存在的文件
  • 命令使用正确,文件存在,文件是否被压缩
  • 能否一次性打包多个文件
  • 打包后的文件内容是否有缺失

界面:

  • 打包后的 zip 高亮
  • 打包后的文件后缀名为 .zip

易用:

  • 输入错误是否会有提示

性能:

  • 打包 1Kb 的文件需要多长时间
  • 打包 1Gb 的文件需要多长时间
  • 一次打包多个文件需要多长时间

【测试用例设计万能公式】
(1)功能
  • 物体:这个物体是用来干什么的
  • 软件:软件实现功能
(2)界面
  • 物体:外表、材质、大小、容量...
  • 软件:界面、字体大小、字体颜色、页面布局...
(3)易用
  • 经验(操作简单、操作流程)、人性化(符合人体工学)、见名知意
(4)兼容
  • 物体:物体除了本质的功能外,是否还有其它功能
  • 软件:操作系统(电脑windows、mac、linux、手机ios、Android)、设备、浏览器版本
(5)性能
  • 物体:使用寿命
  • 软件:响应时间、吞吐量、并发数、CPU占用率
(6)安全
  • 物体:物体材质是否有毒,物体是否会对人体健康造成伤害
  • 软件:sql 注入、xxs 漏洞、输入有毒脚本、密码加密保存、权限控制
(7)网络
  • 软件:2G~5G、弱网、Wifi
(8)中断
  • 物体:闹钟、短信、电话
  • 软件:切换到桌面

【水杯测试用例】


【微信发送朋友圈测试用例】


三、测试用例的有效性

1、什么是测试用例的有效性

测试用例对应的功能已删除,不可操作了。比如:微信刚出来时与 QQ 可以互发消息,下一个版本后就不可以发消息。

执行一条测试用例未发现 BUG,实际该处有 BUG。iPhone手机微信添加了 mobile 单车小程序,扫码不能开锁,只能使用 mobile APP 开锁,测试用例未涉及到 iPhone7 微信小程序扫码开锁。

执行一条测试用例发现了 BUG。iPhone手机微信添加了 mobile 单车小程序,用例已写到了 iPhone7 微信添加 mobile 小程序扫码开锁,问题被发现。

执行一条测试用例未发现 BUG,实际该处 BUG 已修改。iPhone手机微信添加了 mobile 单车小程序扫码开锁,可以正常开锁。 


四、测试用例的粒度和评价

1、测试用例的粒度

好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试。 
  • 粒度:指测试用例编写的详细程度。
测试用例可以写得很简单,也可以写得很复杂。最简单的测试用例是测试的纲要,仅仅指出要测试的内容,如探索性测试中的测试设计,仅会指出需要测试产品的哪些要素、需要达到的质量目标、需要使用的测试方法等。而最复杂的测试用例就像飞机维修人员使用的工作指令卡一样,会指定输入的每项数据,期待的结果及检验的方法,具体到界面元素的操作步骤,指定测试的方法和工具等。
  • (1)测试用例写得过于复杂或详细,会带来两个问题:一个是效率问题,另一个是维护成本问题。另外,测试用例设计得过于详细,留给测试执行人员的思考空间就比较少,容易限制测试人员的思维。
  • (2)测试用例写得过于简单,则可能失去了测试周例的意义。过于简单的测试用例设计其实并没有进行 “设计,只是把需要测试的功能模块记录下来而已,它的作用仅仅是在测试过程中作为一个简单的测试计划,提醒测试人员测试的主要功能包括哪些而已。测试用例的设计的本质应该是在设计的过程中理解需求,检验需求,并把对软件系统的测试方法的思路记录下来,以便指导将来的测试。

大多数测试团队编写的测试用例的粒度介于两者之间。而如何把握好粒度是测试用例设计的关键,也将影响测试用例设计的效率和效果。应该根据项目的实际情况、测试资源情况来决定设计出怎样粒度的测试用例。

主要考虑可以参考如下内容:

  • 产品的质量要求。
  • 项目对用例的要求。
  • 测试时间和资源是否充分。
注意 :不管用例怎么简化,都不应该省略。 

2、测试用例的评价

测试用例设计出来了,如何提高测试用例设计的质量?就像软件产品需要通过各种手段来保证质量一样,测试用例的质量保证也需要综合使用各种手段和方法。评审分为正式和非正式评审。
  • 同行评审
  • 用户检查
  • 项目组评审

1)测试用例的检查可以有多种方式,但是最敏捷的应当属临时的同行评审。

同行评审,尤其是临时的同行评审,应该演变成类似结对编程一样的方式。从而体现敏捷的 “个体和交互比过程和工具更有价值”,要强调测试用例设计者之间的思想碰撞,通过讨论、协作来完成测试用例的设计,原因很简单,测试用例的目的是尽可能全面地覆盖需求,而测试人员总会存在某方面的思维缺陷,一个人的思维总是存在局限性。因此需要一起设计测试用例。


2)除了同行评审,还应该尽量引入用户参与到测试用例的设计中来,让用户参与评审,从而体现敏捷的 “顾客的协作比合同谈判更有价值” 这一原则。

这里顾客的含义比较广泛,关键在于如何定义测试,如果测试是对产品的批判,则顾客应该指最终用户或顾客代表(在内部可以是市场人员或领域专家);如果测试是被定义为对开发提供帮助和支持,那么顾客显然就是程序员了。


(3)由测试负责人组织协调开展会议,用例编写人对用例进行讲解,参会人员有异议的当场提出。


【某手机软件有用 TF 卡导出数据的功能】

请写出测试此功能点的思路:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Qt 学习笔记】Qt常用控件 | 输入类控件 | Dial的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 输入类控件 | Dial的使用及说明 文章编号&#xff1a;Qt…

kafka系列一:初识kafka

概述 kafka是由scala语言编写的一个分布式且具备高可用、高性能、可持久化、可水平扩展、支持流数据处理等众多特性的消息系统&#xff0c;常活跃于大数据生态中&#xff0c;而且大名鼎鼎的rocketmq就是参考了kafka的设计原理。 目前越来越多的开源分布式中间件都支持与kafka集…

Mysql:Before start of result set

解决方法&#xff1a;使用resultSet.getString&#xff08;&#xff09;之前一定要调用resultSet.next() ResultSet resultSet statement1.executeQuery();while (resultSet.next()){String username1 resultSet.getString("username");int id1 resultSet.getInt…

【C++】---继承

【C】---继承 一、继承的概念及定义1、继承的概念2、定义语法格式3、继承基类成员访问方式的变化 二、基类 和 派生类 的对象之间的赋值转换1、赋值规则2、切片&#xff08;1&#xff09;子类对象 赋值 给 父类对象&#xff08;2&#xff09;子类对象 赋值 给 父类指针&#xf…

windows11忘记登录密码怎么办?

STEP1&#xff1a;进入Win RE界面 1.按住shift不要松手,点击重新启动&#xff0c;进入WINRE界面 2.选择疑难解答 选择高级选项 点击命令提示符 STEP2:替换utilman 1.输入以下代码查看所在windows所在盘 diskpart list volume exit 2.根据所在盘输入命令&#xff08;以C盘为…

数据结构与算法(5)队列的基本操作

#include<stdio.h> #include<stdlib.h> #include<stdbool.h> typedef int ElemType; #define MaxSize 10//队列的定义 typedef struct SqQueue {ElemType data[MaxSize];int front, rear;//front为头指针&#xff0c;rear为尾指针。这里并不是真正的“指针”…

Java | Spring框架 | @Autowired与@Resource

在Spring框架中&#xff0c;依赖注入是一种核心概念&#xff0c;它允许开发者将对象的创建和对象之间的依赖关系的管理交给框架来处理。这样做的目的是为了提高代码的模块化和可测试性。 Spring提供了多种方式来实现依赖注入&#xff0c;其中最常用的方式是通过注解。在本文中…

mysql数据库---操作数据库跟表的命令总结

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文着重整理mysql管理库跟表的指令。 不涉及增删查改等指令 其实本篇主要是我做好笔记格式 用的时候直接复制粘贴的 所以排版大多是为了快速找功能来排的 方便大家快速找目标语法 数据库的简介 一个数据库系…

[Redis] 使用布隆过滤器和分布式锁实现用户注册

布隆过滤器&#xff08;Bloom Filter&#xff09;是一种数据结构&#xff0c;用于快速判断一个元素是否可能存在于一个集合中。它通过使用多个哈希函数和一个位数组来表示一个集合&#xff0c;当一个元素被加入到集合时&#xff0c;通过哈希函数计算出多个哈希值&#xff0c;并…

Hypack 2024 简体中文资源完整翻译汉化已经全部完成

Hypack 2024 简体中文资源完整翻译汉化已经全部完成 Hypack 2024&#xff0c;资源汉化共翻译11065条。毕竟涉及测绘、水文、疏浚等专业术语太多&#xff0c;翻译有很多理解不正确的地方&#xff0c;望各位专业人员指正。 压缩包内包含Hypack 2024、Hypack 2022、Hypack 2021、…

什么样的行业适合做私域?

私域营销适用于各种行业&#xff0c;但以下几个行业尤其适合进行私域营销&#xff1a; 1、零售行业&#xff1a;私域营销可以帮助零售企业建立与顾客的直接联系&#xff0c;提高顾客忠诚度和复购率。通过私域营销&#xff0c;零售企业可以进行个性化推荐、定制化服务&#xff…

JavaWeb--11MySQL(3)-- 多表设计

MySQL&#xff08;3&#xff09;-- 多表设计 1 一对多&#xff08;多对一&#xff09;2 一对一3 多对多 各个表结构之间也存在着各种联系&#xff0c;基本上分为三种&#xff1a; 一对多(多对一)多对多一对一 1 一对多&#xff08;多对一&#xff09; 一对多关系实现&#x…

【Java】IO流:字节流 字符流 缓冲流

接续上文&#xff0c;在这篇文章将继续介绍在Java中关于文件操作的一些内容【Java】文件操作 文章目录 一、“流”的概念1.“流”的分类1.1输入流和输出流1.2字节流和字符流 字节和字符的区别&#xff1f;为什么要有字符流&#xff1f;1.3节点流和处理流 字符流自带缓冲区&…

【Linux——Centos7安装RabbitMQ】 RabbitMQ无法连接

到这一步是基本已经装好了&#xff0c;现在是在开放端口&#xff0c;我这个报错是因为我的防火墙是处于关闭状态&#xff0c;所以在开放端口时会报防火墙为运行&#xff0c;把防火墙打开&#xff0c;在开放端口&#xff0c;就可以访问到了 重启防火墙&#xff1a; systemctl …

【无标题】基于GIS、Python机器学习技术的地质灾害风险评价、易发性分析与信息化建库及灾后重建中的实践技术

理解地质灾害形成机理与成灾模式&#xff1b;从空间数据处理、信息化指标空间数据库构建、致灾因子提取&#xff0c;空间分析、危险性评价与制图分析等方面掌握GIS在灾害危险性评价中的方法&#xff1b;运用地质灾害危险性评价原理和技术方法 原文链接&#xff1a;基于GIS、Py…

DeepSeek API文档:创建对话补全的指南

DeepSeek平台不仅提供了一个用户友好的聊天界面&#xff0c;还为开发者提供了强大的API接口&#xff0c;使他们能够创建和集成智能对话补全功能。以下是关于如何使用DeepSeek API创建对话补全的详细介绍。 DeepSeek API概述 DeepSeek的API允许开发者通过编程方式与DeepSeek的…

应用软件安全保证措施方案书

系统安全保证措施方案—word原件 软件全套资料进主页获取或者本文末个人名片直接获取。

【文章转载】ChatGPT 提示词十级技巧: 从新手到专家

学习了微博网友宝玉xp老师《ChatGPT 提示词十级技巧: 从新手到专家》 个人学习要点&#xff1a; 1、关于提示中避免使用否定句&#xff0c;播主说&#xff1a;“没有人能准确解释为什么&#xff0c;但大语言模型在你告诉它去做某事时&#xff0c;表现似乎比你让它不做某事时更…

识货小程序逆向

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872&#xff0c;x30184483x…

Java进阶07集合(续)

Java进阶07 集合&#xff08;续&#xff09; 一、数据结构&#xff08;树&#xff09; 1、关于树 1.1 相关概念 节点&#xff1a;树中每个单独的分支 节点的度&#xff1a;每个节点的子节点数量 树高&#xff1a;树的总层数 根节点&#xff1a;最顶层节点 左子节点&…
最新文章