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

一、测试用例的基本要素

测试用例(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.mzph.cn/news/833819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IO 5.8日

1&#xff1a;使用 dup2 实现错误日志功能 使用 write 和 read 实现文件的拷贝功能&#xff0c;注意&#xff0c;代码中所有函数后面&#xff0c;紧跟perror输出错误信息&#xff0c;要求这些错误信息重定向到错误日志 err.txt 中去 2&#xff1a;判断一个文件是否拥有用户可写…

Android单行字符串末尾省略号加icon,图标可点击

如图 设置仅显示单行字符串&#xff0c;末尾用省略号&#xff0c;加跟一个icon&#xff0c;icon可点击 tvName.text "test"val drawable ResourcesCompat.getDrawable(resources, R.mipmap.icon_edit, null)tvName.setCompoundDrawablesWithIntrinsicBounds(null,…

【如此简单!数据库入门系列】之无序不代表混乱 -- 堆文件

文章目录 前言堆文件链表实现页目录实现总结系列文章 前言 还记得上次遗留的问题吗&#xff1f; 以什么组织方式将数据保存在磁盘中&#xff1f; 今天我们接着讨论这个问题。 首先想一个问题&#xff1a;有一天&#xff0c;你开着自己心爱的大型SUV去超市购物。在停车场入口看…

威客网上招标系统(五)

目录 5 详细设计 5.1 系统首页 5.1.1系统首页&#xff08;网站首页index.jsp&#xff09; 5.1.2 下沙派威客网首页界面说明 5.2 站内新闻信息 5.2.1站内新闻操作界面 5.2.2系统主操作界面说明 5.3威客在线操作界面 5.3.1 威客在线操作界面 5.3.2威客在线说明 5.4系统…

文件IO-使用dup2实现错误日志功能及判断文件权限,并终端输出

1&#xff1a;使用 dup2 实现错误日志功能 使用 write 和 read 实现文件的拷贝功能&#xff0c;注意&#xff0c;代码中所有函数后面&#xff0c;紧跟perror输出错误信息&#xff0c;要求这些错误信息重定向到错误日志 err.txt 中去 代码&#xff1a; #incl…

kubectl_入门_Pod控制器

Pod控制器 在k8s中&#xff0c;按照pod的创建方式可以将其分为两类 自主式pod&#xff1a;k8s直接创建出来的pod&#xff0c;这种pod删除后就没有了&#xff0c;也不会重建控制器创建的pod&#xff1a;通过控制器创建的pod&#xff0c;这种pod删除了之后还会自动重建 1. 什么…

一张贴纸50万,炒房炒币的怎么都来炒CSGO皮肤了

一张贴纸50万&#xff0c;为什么炒房炒币的都来炒CSGO饰品了&#xff1f; 一张贴纸50万&#xff0c;炒房炒币的怎么都来炒CSGO皮肤了&#xff1f; 经常有人问我&#xff0c;天天看你们买卖装备&#xff0c;买卖皮肤&#xff0c;说到底这都是虚拟产品&#xff0c;看得见摸不着的…

Java_从入门到JavaEE_11

一、抽象类及抽象方法 1.认识抽象类及抽象方法 应用场景&#xff1a;当一个方法必须在父类中出现&#xff0c;但是这个方法又不好实现&#xff0c;就把该方法变成抽象方法&#xff0c;交给非抽象的子类去实现 实例&#xff1a; //抽象类 public abstract class 类名{//抽象方…

element-ui table sortable排序 掉后端接口方式

实例: 官方解释:如果需要后端排序&#xff0c;需将sortable设置为custom&#xff0c;同时在 Table 上监听sort-change事件&#xff0c;在事件回调中可以获取当前排序的字段名和排序顺序&#xff0c;从而向接口请求排序后的表格数据。 1.table上要加 sort-change"sortCha…

鸿蒙OpenHarmony开发板:【子系统配置规则】

子系统 子系统配置规则 通过build仓下的subsystem_config.json可以查看所有子系统的配置规则。 {"arkui": {"path": "foundation/arkui", # 路径"name": "arkui" # 子系统名},"ai": {&q…

【Keil程序大小】Keil编译结果Code-RO-RW-ZI分析

【Keil程序大小】Keil编译结果Code-RO-RW-ZI分析 下图为keil编译后的结果&#xff1a; 单位为Byte。Code是程序大小。RO是常量大小。RW是读写变量占用大小&#xff0c;如已初始化的静态变量和全局变量。ZI是全零变量占用大小&#xff0c;如未初始化的static修饰的静态变量、全局…

项目管理-项目绩效域2/2

项目管理&#xff1a;每天进步一点点~ 活到老&#xff0c;学到老 ヾ(◍∇◍)&#xff89;&#xff9e; 何时学习都不晚&#xff0c;加油 八大绩效域包括&#xff1a;“团干部 策划开公交” 团队、干系人、不确定性、测试、规划、开发方法与生命周期、项目工作、交付。 上节…

在全志H616核桃派1B开发板Python进行GPIO按键功能实现

前言​ 按键是最简单也最常见的输入设备&#xff0c;很多产品都离不开按键&#xff0c;包括早期的iPhone&#xff0c;今天我们就来学习一下如何使用Python来编写按键程序。有了按键输入功能&#xff0c;我们就可以做很多好玩的东西了。 实验目的​ 编程实现按键输入检测。 …

Python从0到POC编写--SQL注入

SQL注入POC编写。 环境&#xff1a; win10 &#xff0c;phpStudy &#xff0c;python3.7 &#xff0c;sqli-labs 虚拟域名&#xff1a; www.sql.com 简单的POC&#xff1a; 说起来也简单&#xff0c; 就是请求–>响应&#xff0c; 然后再判断返回信息是否存在注入。 本…

linux虚拟机配置环境

1.配置虚拟机 在VMware中安装CentOS7&#xff08;超详细的图文教程&#xff09;_在vmware上安装centos-CSDN博客https://blog.csdn.net/qq_45743985/article/details/121152504 2.固定虚拟机ip地址 Vmware虚拟机Linux配置固定IP地址&#xff08;详细版&#xff09;_虚拟机固…

华为数据之道第四部分导读

目录 导读 第四部分 第10章 未来已来&#xff1a;数据成为企业核心竞争力 数据&#xff1a;新的生产要素 数据被列为生产要素&#xff1a;制度层面的肯定 数据将进入企业的资产负债表 数据资产的价值由市场决定 大规模数据交互的企业数据生态 数据生态离不开底层技术的…

OpenHarmony 4.0 实战开发——分布式软总线解析:设备发现与传输

OpenHarmony 的分布式软总线子系统为 OpenHarmony 系统提供的通信相关的能力&#xff0c;包括&#xff1a;WLAN 服务能力、蓝牙服务能力、软总线、进程间通信 RPC&#xff08;Remote Procedure Call&#xff09;等通信能力。 其中主要包括&#xff1a; WLAN 服务&#xff1a;…

使用unplugin-icons报错:Icon `eos-icons/ai` not found

代码&#xff1a; import IconNanobert from ~icons/eos-icons/ai 报错&#xff1a; Icon eos-icons/ai not found解决办法&#xff1a; npm i -D iconify-json/eos-icons &#xff08;把eos-icons替换成报错的那个collection-id即可&#xff0c;collection-id名称见图2&…

CTF-reverse,逆向分析,对“左移4或右移4,即(x<<4) | (x >>4)的加密探讨

博主在刷题过程中遇上这样一个有意思的加密&#xff08;如下图&#xff09;&#xff0c;苦苦思索其逆向运算&#xff0c;被硬控了很久&#xff0c;也没搜到什么资料来解释这个问题&#xff08;也许是太简单&#xff1f;&#xff1f;蒟蒻博主怀疑人生……&#xff09; 经过博主不…

[C++]哈希应用-布隆过滤器快速入门

布隆过滤器 布隆过滤器&#xff08;Bloom Filter&#xff09;是一个由布隆在1970年提出的概率型数据结构&#xff0c;它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器的主要特点是高效的插入和查询&#xff0c;可以用于检索一个元素是否在一个集合中。 原理…