4.测试教程 - 用例篇

文章目录

  • 1.测试用例的基本要素
  • 2.测试用例的给我们带来的好处
  • 3.测试用例的设计方法
    • 3.1基于需求进行测试用例的设计
      • 3.1.1功能需求测试分析
      • 3.1.2非功能需求测试分析
    • 3.2具体的设计方法
      • 3.2.1等价类
      • 3.2.2边界值
      • 3.2.3错误猜测法
      • 3.2.4判定表
      • 3.2.5场景设计法
      • 3.2.6因果图
      • 3.2.7因果图的需要掌握的基本知识
      • 3.2.8正交排列(使用allpairs来自动生成正交表)
  • 4.什么样的测试用例是一个好的测试用例?
  • 5.什么是测试用例的有效性?
  • 6.测试用例的粒度和评价
    • 6.1面试案例

大家好,我是晓星航。今天为大家带来的是 测试开发用例篇 相关的讲解!😀

1.测试用例的基本要素

回顾测试用例的概念:

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。

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

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

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

2.测试用例的给我们带来的好处

测试执行者的依据

使得工作可重复,自动化测试的基础

评估需求覆盖率

用例的复用

积累测试的方法思路以供后续借鉴

  • 使用中带来困扰

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

  • 解决如下问题

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

3.测试用例的设计方法

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

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

在分析测试需求时,一般分为功能测试需求非功能测试需求

3.1.1功能需求测试分析

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

(1)系统各个功能界面的验证

(2)借助业务把功能串起来进行测试

(3)功能的一致性,交互性(多功能互操作)的测试

(4)系统的不同输入,结果输出的业务数据测试。

(5)功能的错误操作,异常操作的测试(属于负面测试)

(6)功能实现用到的算法验证,有时需要用运代码评审

(7)用户操作的易用性,用户体验,往往结合功能测试同时验证

针对具体的需求,可以根据业务分类,用户角色(餐厅的会员系统)或者用户操作区域等将系统的功能 分解成若干个功能模块,然后按照功能模块分别进行测试需求分析。按照功能模块划分,业务模块划分 是最常见的做法。

下面对一个简单的日历系统的需求进行分析

image-20231207184916922

对日历根据web界面的功能布局分析出的功能框图如下:

image-20231207185036872

也可以采用思维导图的方式,更为方便,有效,只管的呈现测试需求的分析结果,可以更好的支持测试 分析思路的连贯性。

下面以我们常用的百度云盘手机端为例进行分析功能

image-20231207185112511

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

3.1.2非功能需求测试分析

非功能测试需求主要涉及性能,安全性,可靠性,兼容性,易维护性和可移植性等。从测试需求分析来看,每一类非功能特性测试都需要根据需求单独分析。他们之间可能会存在相互影响,如安全性越高, 就越有可能给易用性,性能带来更大的挑战。

这里要说明的是对于每一个应用软件系统,非功能特性的质量需求都是存在的,但是不同的项目类型对各个非功能特性的要求是不一样的,这个需要根据具体的项目、具体需求和不同产品应用的特点进行分析。

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

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

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

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

给同学们继续举一个例子百度云盘非功能测试的

案例:

用户需求:
购买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、过期激活提示已过期

3.2具体的设计方法

3.2.1等价类

因材施教的例子:
原则上讲, 老师应该依据每个学生自身的情况, 指定符合的学习方案. 但是实际上学生太多老湿管不过来,
只能分成几类: 
优等生强调知识面的扩展和综合能力的提升; 
中等生强调夯实基础, 查缺补漏; 
差等生强调优先掌握重点, 暂时跳过难点...
思路:输入的集合是无穷的, 不能全都覆盖到

依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中一个测试用例,如果这个测试用例测试通过则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

  • 有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能
  • 无效等价类:根据需求说明书,不满足需求的集合。

等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充。

超市买水果
有效等价类:苹果、桃子、梨
无效等价类:青菜、米、饮料,...
以上述的需求为例:
|用户名 | 必填,录入用户名 | 6至15 | 字符类型A-Z,不区分大小写|
用户名由长度为6-15位的字符串组成,那么针对字符有效等价类为A-Z,a-z,无效等价类为两个:数字:1,
0.1,-1 特殊字符:@,#,¥,空格
思考一下:如何针对6-15位长度设计测试用例?

3.2.2边界值

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

上点:边界上的点就是上点。

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

离点:如果区间是开区间,区间内最靠近上点的点
如果是闭区间,区间外最靠近上点的点

日常语言中的"边界"漏洞
考完试发成绩了, 老师布置寒假作业: 超过60分的, 所有题目抄写1遍, 低于60分的, 所有题目抄写3遍.
于是小明就没有写作业~~, 因为他刚好60分.
1. 输入框长度为1-11,取边界值为:1、11、12、0
2. 运动员的参赛项目为1-3项,取边界值为:0项、1项、3项、4项
3. 查询面页面有999行,每50行为一页,取边界值为:输出0行、1行、50行、51行、999行
以注册邮箱的软件需求为例子
用户名要求长度为6-15位
边界值上点为:5,6,15,16 全了吗?
在实际的测试设计中,会将等价类和边界值结合起来使用,那么我们最终可以确认的用例设计为:
5,6,10,15,16五个长度的字符的输入值
继续思考:这样的测试真的完整了么?中文?半角?全角?特殊字符(扩散思维)

3.2.3错误猜测法

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

这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人的经验和直觉。 错误推测法和目前流行的“探索式测试方法”的基本思想一致,这类方法在敏捷开发模式下的投入产出比很高,被广泛应运于测试。

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

案例:

以注册为例
1、校验中特殊字符空格的处理?
2、密码校验中的大小写?
3、姓名中的特殊字符?
4、密码发送是否明文

3.2.4判定表

关系:与,非,恒等,或

与:所有条件为真,结果为真,如果条件里面一个为假,结果就为假。

或:所有条件为假,结果为假,如果条件里面一个为真,结果就为真。

非:条件为假,结果为真。

恒等:条件为真,结果为假。

image-20231212194203663

image-20231212194533427

image-20231212195029867

3.2.5场景设计法

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

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

案例:

以注册为例

image-20231207185740382

想象注册的场景来设计用例,这与根据需求的业务流来设计差不多。主要是想象各种业务流来设计用例。例如我们可以再想象以下场景:

1、用户激活后再次点击邮件激活链接?

2、已注册用户再次注册?

image-20231207185808266

3.2.6因果图

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

3.2.7因果图的需要掌握的基本知识

  • 恒等
image-20231207185925746

恒等:如果原因为真,那么结果必定为真。 例如:动物园运来大熊猫,动物园一定有大熊猫

image-20231207190008551

只有2个原因都为真,那么结果为真 例如:北京姑娘,必须有车且有房

image-20231207190111198

2个原因中有一个为真时,结果就为真。 例如:长沙姑娘,你有车或者有房

image-20231207190132853

只有原因为假,结果才为真。 例如:你不好好学习,找到好工作

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

案例一:

假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优 惠”。

  1. 对于这条业务规则,首先通过分析所有可能的输入和可能的输出,可以得到如下结果:
  • 输入:订单已提交、金额大于300、有红包。
  • 输出:优惠、不优惠。
  1. 然后,进行第二步,找出输入与输出之间的对应关系。通过分析,可以看出有以下的对应关系。

(1)订单已提交,订单金额大于300元,则优惠。

(2)订单已提交,订单金额小于等于300元,无红包,不优惠

(3)订单已提交,有红包,则优惠。

(4)订单已提交,订单金额大于300元,有红包,则优惠。

(5)订单未提交,不优惠。

  1. 为了方便画出因果图和判定表,需要对所有输入和输出编号,现在编号如下。

1:订单已提交。

2:订单金额大于300元。

3:有红包

21:优惠

22:不优惠

  1. 画因果图
image-20231207190302121
  1. 画判定表:有3个条件,输出有2个取值,所以表的列数为2x2x2=8

image-20231207190406138

  1. 最终的测试用例

1,2,3,4,5(包含6,7,8)。

案例二(使用正交表法更快):

继续以注册的需求为例:

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

需要设计多少用例?2x2x2x2x2。

因果法设计测试用例可以帮助测试人员理清输入和输出的关系,但是对于比较复杂的输入和输出,会耗费大量时间

对应使用我们的正交法解题步骤为:

因素:姓名,邮箱,密码,确认密码,验证码

水平:填写,不填写

用allpairs来画正交表

步骤:

1、 创建excel表格 并将水平和因素填写到excel表格中(excel表可以先不用命名)

image-20240118135600401

2、将我们写好的水平和因素复制(ctrl+c) 在allpairs的安装路径下新建一个 文本文件 (命名可以是当前日期加编号) 这里博主的命名为2024011801.txt

image-20240118135754424

image-20240118135735752

image-20240118135824213

3、使用win+r打开电脑命令行输入cmd打开窗口 在里面找到自己allpairs

image-20240118140134730

d: 进入d盘

image-20240118140212436

cd 编程软件合集 进入编程软件合集目录

cd allpairs 进入allpairs目录

image-20240118140320269

allpairs.exe 2024011801.txt > 2024011801_result.txt

使用allpairs.exe这个软件 将 2024011801.txt 这个表格编译并命名为 2024011801_result.txt 的新正交表格

image-20240118140521945

下面的 2024011801_result.txt 便为我们使用allpairs软件编译出来的新正交表格的文本文件

4、打开 2024011801_result.txt 文件,验收我们的正交表格

image-20240118140702964

从上图看出,我们使用allpairs这个软件编译得出正交表格进行测试,可以极大的加快我们的测试效率。

3.2.8正交排列(使用allpairs来自动生成正交表)

参照3.2.7最后一道例题

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

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

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

**因素(Factor):**在一项试验中,凡欲考察的变量称为因素(变量)

**水平(位级)(Level):**在试验范围内,因素被考察的值称为水平(变量的取值)

正交表的构成:

**行数(Runs):**正交表中的行的个数,即试验的次数,用N代表。

**因素数(Factors):**正交表中列的个数,用C代表。

**水平数(Levels):**任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或 从1到“水平数”,用T代表。

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

正交表的两条性质:

每一列中各数字出现的次数都一样多。

任何两列中的各有序数对出现的次数都一样多。

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

1、有哪些因素(变量)

2、每个因素有哪几个水平(变量的取值)

3、选择一个合适的正交表

4、把变量的值映射到表中

5、把每一行的各因素水平的组合作为一个测试用例

6、加上你认为可疑且没有在表中出现的用例组合

案例:

继续以注册为例(类似工具可以使用微软的PICT工具):

1、因素:姓名、邮箱、密码、确认密码、验证码

2、水平:填写、不填写

image-20231207191216064

3、表中的因素数=5;

表中至每个因素数的水平数=2

行数取最少的一个,即试验次数最少的一个

L=N(TC)=(2-1)*5+1=6(25) N=Cx(T-1)+1

L=6(25)

N试验次数

T水平数

C因素数

选择正交表,这里选择了L6_2_5。正交表不是随便选择的,而是设计好的

4、生成测试用例

思路:因素取值为填写时:正交按取值个数5-3-2-1(5已全了,3,2,1任意排列)进行排列,实验次数不够用取值为填写个数为2或3任意组合,但要满足正交的二条性质。

image-20231207191515269

5、增补测试用例

姓名、邮箱、密码、确认密码、验证码都不填写

发散一下:实际工作中这种做法会不会常见?在那种项目中需要这样做?实际中我们会怎么做?
不常见
科学实验性更需要
实际中可能会看代码或者想象可能的代码来减少用例
查询或添加页,有多个输入,如何测试?

4.什么样的测试用例是一个好的测试用例?

测试用例的万能公式:功能 性能 界面 兼容 易用 网络 安全

功能-物体:最基本的功能

软件:拿着这个软件可以做哪些最基础的操作

性能-软件:软件响应时间,并发数,CPU占用率

界面-物体:肉眼看到普遍外观长什么样

软件:界面布局,图片大小,文字,按钮,颜色是否符合预期

兼容-物体:除了本质功能,还能做什么

软件:操作系统(电脑windows,mac,linux,手机IOS,Android),浏览器版本,手机品牌

易用-软件:操作简单,操作流畅,符合人体工学

网络-软件:Fiddler(弱网,2G,3G,4G,5G)

安全-软件:SQL注入,xss漏洞,密码加密保存,加密传输,权限控制

5.什么是测试用例的有效性?

测试用例对应的功能已删除,不可操作了

微信刚出来时与QQ可互发消息,下一个版本后就不可以发消息。

执行一条测试用例未发现BUG,实际该处有BUG

苹果7手机微信添加了mobile单车小程序,扫码不能开锁,只能使用mobile APP开锁,测试用例未涉及到苹果7微信小程序扫码开锁。

执行一条测试用例发现了BUG

苹果7手机微信添加了mobile单车小程序,用例已写到了苹果7微信添加mobile小程序扫码开锁,问题被发现

执行一条测试用例未发现BUG,实际该处BUG已修改

苹果7手机微信添加了mobile单车小程序扫码开锁,可以正常开锁

6.测试用例的粒度和评价

测试用例的粒度

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

粒度:指测试用例编写的详细程度。

测试用例可以写得很简单,也可以写得很复杂。最简单的测试用例是测试的纲要,仅仅指出要测试的内 容,如探索性测试中的测试设计,仅会指出需要测试产品的哪些要素、需要达到的质量目标、需要使用 的测试方法等。而最复杂的测试用例就像飞机维修人员使用的工作指令卡一样,会指定输入的每项数 据,期待的结果及检验的方法, 具体到界面元素的操作步骤,指定测试的方法和工具等。

(1)测试用例写得过于复杂或详细,会带来两个问题:一个是效率问题,另一个是维护成本问题。另外, 测试用例设计得过于详细,留给测试执行人员的思考空间就比较少,容易限制测试人员的思维。

(2)测试用例写得过于简单,则可能失去了测试周例的意义。过于简单的测试用例设计其实并没有进 行“设计”,只是把需要测试的功能模块记录下来而已,它的作用仅仅是在测试过程中作为一个简单的测 试计划,提醒测试人员测试的主要功能包括哪些而已。测试用例的设计的本质应该是在设计的过程中理 解需求,检验需求,并把对软件系统的测试方法的思路记录下来,以便指导将来的测试。

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

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

  • 产品的质量要求
  • 项目对用例的要求
  • 测试时间和资源是否充分

但是不管用例怎么简化,都不应该省略

测试用例的评价

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

  • 同行评审
  • 用户检查
  • 项目组评审

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

(2)除了同行评审,还应该尽量引入用户参与到测试用例的设计中来,让用户参与评审,从而体现敏 捷的“顾客的协作比合同谈判更有价值”这一原则。这里顾客的含义比较广泛,关键在于如何定义测试, 如果测试是对产品的批判,则顾客应该指最终用户或顾客代表(在内部可以是市场人员或领域专家); 如果测试是被定义为对开发提供帮助和支持,那么顾客显然就是程序员了。

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

6.1面试案例

某公司招聘测试工程师时,有一道这样的笔试题:”某手机软件有用TF卡导出数据的功能,请写出测试此功能点的思路”

image-20231207192143502

测试用例的质量保证也需要综合使用各种手段和方法。评审分为正式和非正式评审。

  • 同行评审
  • 用户检查
  • 项目组评审

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

(2)除了同行评审,还应该尽量引入用户参与到测试用例的设计中来,让用户参与评审,从而体现敏 捷的“顾客的协作比合同谈判更有价值”这一原则。这里顾客的含义比较广泛,关键在于如何定义测试, 如果测试是对产品的批判,则顾客应该指最终用户或顾客代表(在内部可以是市场人员或领域专家); 如果测试是被定义为对开发提供帮助和支持,那么顾客显然就是程序员了。

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

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘

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

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

相关文章

c++:vector的相关oj题(136. 只出现一次的数字、118. 杨辉三角、26. 删除有序数组中的重复项、JZ39 数组中出现次数超过一半的数字)

文章目录 1. 136. 只出现一次的数字题目详情代码(直接来异或&#xff09;思路 2. 118. 杨辉三角题目详情代码1思路代码2思路2 3. 26. 删除有序数组中的重复项题目详情代码思路 4. JZ39 数组中出现次数超过一半的数字题目详情代码1&#xff08;暴力&#xff09;思路1代码2&#…

A Visual Guide to Mamba and State Space Models

用于语言建模的 Transformers 的替代方案 Transformer 架构一直是大型语言模型 &#xff08;LLMs&#xff09; 成功的主要组成部分。它已被用于当今几乎所有LLMs正在使用的产品&#xff0c;从 Mistral 等开源模型到 ChatGPT 等闭源模型。 为了进一步改进LLMs&#xff0c;开发…

【HarmonyOS】鸿蒙开发之Stage模型-基本概念——第4.1章

Stage模型-基本概念 名词解释 AbilityStage:应用组件的“舞台“ UIAbility:包含UI界面的应用组件&#xff0c;是系统调度的基本单元 WindowStage:组件内窗口的“舞台“ Window&#xff1a;用来绘制UI页面的窗口 HAP:Harmony Ability Package(鸿蒙能力类型的包) HSP:Harmony Sh…

【算法 - 动态规划】找零钱问题Ⅰ

在前面的动态规划系列文章中&#xff0c;关于如何对递归进行分析的四种基本模型都介绍完了&#xff0c;再来回顾一下&#xff1a; 从左到右模型 &#xff1a;arr[index ...] 从 index 之前的不用考虑&#xff0c;只考虑后面的该如何选择 。范围尝试模型 &#xff1a;思考 [L ,…

C++——二叉搜索树

二叉搜索树 二叉搜索树&#xff1a; 又为搜索二叉树&#xff0c;一般具有以下的性质 若它的左子树不为空&#xff0c;则左子树上所有的节点的值都小于父亲节点若它的右子树不为空&#xff0c;则右子树上所有的节点的值都大于父亲节点它的左右子树也都为二叉搜索树 二叉搜索树…

Vue前端实现一个本地消息队列(MQ), 让消息延迟消费或者做缓存

MQ功能实现的具体代码(TsMQ.ts)&#xff1a; import { v4 as uuidx } from uuid;import emitter from /utils/mittclass Message {// 过期时间&#xff0c;0表示马上就消费exp: number;// 消费标识&#xff0c;避免重复消费tag : string;// 消息体body : any;constructor( exp…

Docker基础篇(六) dockerfile体系结构语法

FROM&#xff1a;基础镜像&#xff0c;当前新镜像是基于哪个镜像的 MAINTAINER &#xff1a;镜像维护者的姓名和邮箱地址 RUN&#xff1a;容器构建时需要运行的命令 EXPOSE &#xff1a;当前容器对外暴露出的端口号 WORKDIR&#xff1a;指定在创建容器后&#xff0c;终端默认登…

python中的类与对象(1)

目录 一. 引子&#xff1a;模板 二. 面向过程与面向对象 &#xff08;1&#xff09;面向过程编程 &#xff08;2&#xff09;面向对象编程 三. 对象与类 &#xff08;1&#xff09;对象 &#xff08;2&#xff09;类 四. 面向对象程序设计的特点&#xff1a;封装&#…

daydayEXP: 支持自定义Poc文件的图形化漏洞利用工具

daydayEXP: 支持自定义Poc文件的图形化漏洞利用工具 基于java fx写的一款支持加载自定义poc文件的、可扩展的的图形化渗透测试框架。支持批量漏洞扫描、漏洞利用、结果导出等功能。 使用 经过测试,项目可在jdk8环境下正常使用。jdk11因为缺少一些必要的组件,所以jdk11版本工…

sqli-labs第46关

注&#xff1a;说明借鉴&#xff08;现阶段水平不够&#xff0c;只能靠借鉴来完成本次作业&#xff0c;若侵权&#xff0c;必删&#xff09; 基于Sqli-Labs靶场的SQL注入-46~53关_sqli-lab less46-CSDN博客 SQL-Labs46关order by注入姿势-CSDN博客 一、首先需要sql-labs的环…

计算机设计大赛 深度学习图像风格迁移

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习图像风格迁移 - opencv python 该项目较为新颖&#xff0c;适合作为竞赛课题…

StringBuffer StringBuilder

String 为什么StringBuilder是线程不安全的&#xff1f;StringBuffer是线程安全的&#xff1f; - Jacian - 博客园 (cnblogs.com) StringBuilder 线程安全的可变字符学序列 速度快 StringBuffer 线程不安全的可变字符序列 创建StringBuilder对象 new StringBuilder&…

【Java程序员面试专栏 算法思维】二 高频面试算法题:二分查找

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊二分查找,包括基础二分,寻找目标值的左右边界,搜索旋转数组以及波峰,以及x的平方根问题,所以放到一篇Blog中集中练习 题目关键字解题思路时间空…

BlackWidow靶场

kali&#xff1a;192.168.223.128 主机发现 nmap -sP 192.168.223.0/24 目标IP:192.168.223.153 端口扫描 nmap -sV -p- -A 192.168.223.153 22/tcp open ssh OpenSSH 7.9p1 Debian 10deb10u2 (protocol 2.0) 80/tcp open http Apache httpd 2.4.38 ((Deb…

【C++】类与对象——友元,内部类,匿名对象

类与对象 1 友元1.1 概念&#xff1a;1.2 友元函数1.3 友元类 2 内部类概念&#xff1a;特性&#xff1a;举例&#xff1a; 3 匿名对象Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&#xff01;下一篇文章见&#xff01;&#xff01;&am…

定制红酒:设计专属标签与包装,打造与众不同个性

在云仓酒庄洒派的定制红酒服务中&#xff0c;为消费者提供个性化、专属的标签与包装设计是提升红酒与众不同性和纪念价值的关键环节。通过巧妙的设计&#xff0c;消费者可以打造出与众不同的红酒&#xff0c;展现自己的个性与品味。 首先&#xff0c;标签设计是展现红酒个性的重…

Mysql 的高可用详解

Mysql 高可用 复制 复制是解决系统高可用的常见手段。其思路就是&#xff1a;不要把鸡蛋都放在一个篮子里。 复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步到多台备库上&#xff0c;备库本身也可以被配置成另外一台服务器的主库。主…

MYSQL--(1.存储引擎 *2.事务*)

一 存储引擎: 1.介绍 1>在数据库管理系统当中通过使用数据引擎来实现数据的增删改,查询 2>不同的存储引擎提供的有不同的存储机制,索引技巧等功能 MYSQL的核心,就是存储引擎 3>同样的,用户也可以根据自己的需要进行选择,更改自己需要…

用c# 自己封装的Modbus工具类库源码

前言 Modbus通讯协议在工控行业的应用是很多的&#xff0c;并且也是上位机开发的基本技能之一。相关的类库也很多也很好用。以前只负责用&#xff0c;对其并没有深入学习和了解。前段时间有点空就在这块挖了挖。想做到知其然还要知其所以然。所以就有了自己封装的Modbus工具类库…

Vue+SpringBoot打造在线课程教学系统

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…