探索性测试及基本用例

1 测试决策5要素

测试目标:所有的重要任务都完成了,而剩下没做的事情是比较次要的,我们做到这一点就可以尽早尽可能地降低发布风险。

测试方法:测试是一个不断抉择的过程,测试人员必须理解运行测试用例时和分析现有信息所涉及的各种复杂性。

测试决策5要素:用户输入、状态、代码路径、用户数据、执行环境。

  • 用户输入
    • 输入:环境产生的刺激,该刺激导致被测试的应用有所响应。主要分原子输入(输入一个数字、按钮)和抽象输入(1-25535之间的任何一个原子输入长度值,类似于等价类划分)两类。
    • 考虑各种输入之间会相互影响:单独输入、混合输入。
    • 输入值的顺序:组合输入。
    • 核心功能:接收输入、产生输出、存储数据、进行运算。[正向测试、逆向测试]
    • 错误处理程序[error handler]:输入筛选器、输入检查、异常处理代码。
    • 常规输入[字母和数字]、非常规输入[比如输入ctrl+c、shift+c、esc、ctrl键、alt、操作系统的保留字、不同的字符集,本地化的问题]
    • 默认输入[空格、空白、默认值]
    • 使用输出来指导输入。
  • 状态:状态控件中的一个点,由所有内部数据结构的取值进行决定。
  • 代码路径:一连串的代码语句[基于白盒]。
  • 用户数据:测试数据尽量与上线环境的数据保持一致。
  • 执行环境:操作系统、当前配置、其他应用程序、网络拓扑、驱动程序、文件系统、网络带宽、性能。

2 缺陷检测

  • 1.自动化测试:通过编写代码来测试一个应用。(擅长找到的问题:程序崩溃、系统死机、程序挂起、突发异常、原有能用的功能出现问题)
  • 2.手工测试:使用程序的用户界面,手工输入数据进行测试。(缺点:速度慢、没有规律、不可反复使用、发现问题也不能重视、人员水平决定测试质量、使用喜欢的测试用例又缺乏变通)。测试用例的编写不要太使用细节的描述,尽量描述一些用户使用场景,同时结合自动化测试工具进行使用。
    • 1.需要测试人员编写代码。
    • 2.花费太多的时间来开发测试代码,而减少了测试项目的时间。
    • 3.自动化测试可以重复运行。

3 探索性测试

探索性软件测试模型图:

3.1 探索性测试的定义

探索性测试:测试学习、测试设计、测试执行、测试结果评估等活动同时进行的软件测试技术。

  • 1.测试学习:学习任何可以指导测试的知识,可能要学习的内容包括行业背景、领域知识、技术平台、测试技术、产品缺陷、项目风险等。
  • 2.测试设计:安排测试计划,拟定测试策略,开发测试想法,制定测试支持材料。
  • 3.测试执行 :执行测试并收集结果。
  • 4.测试结果分析:分析并解读从测试中学到的知识,可能的活动包括判定测试是否通过、理解产品实现、发掘风险区域、评估测试方法是否有效等。

简单说就是事先不进行计划和设计的一种特殊类型的测试,由有经验的测试人员根据实际情况,凭借自身的测试经验和对系统的认识来进行测试。即完全抛开测试用例,使用定义的比较笼统的测试用例。

探索性测试是一种新的测试思维方式,强调系统软件学习、测试设计、测试执行的同时进行。本质上是敏捷,可以很好地应用于敏捷项目。

探索性测试目标:

  • 1.理解应用程序如何工作,接口看起来怎样,实现哪些功能,提供必须信息,给测试人员提供测试切入点。
  • 2.展示其全部能力:验证软件可以达到设计和发布要求。
  • 3.找到缺陷:探索各种软件的极端情况来发现潜在的问题,发现未测过的功能或者包含缺点多的功能。

探索性测试特点:

  • 1.在测试过程中不断学习被测系统,在根据学习的内容来指导测试,是一循环过程。
  • 2.软件系统学习、测试设计、测试执行同时进行。
  • 3.探索式测试适用于"敏捷开发过程"。
  • 4.测试人员有可能没有测试重点。

强调测试者的主观能动性,以及测试设计和测试执行的同时性。

3.2 探索性测试方法

探索性测试包含4种方法:自由式探索、基于场景的探索性能测试、基于策略的探索性测试、基于反馈的探索性测试。

3.2.1 探索性测试方法

包含2种方法:局部探索性测试法和全局探索性测试方法。

  • 局部探索性测试法:测试人员不需要知道很多信息就可以完成测试任务,重点:测试经验、专业知识、软件在操作环境下如何构建和运行的知识结合在一起,使我们在测试过程中做出正确的决定。
    • 针对测试对象的局部内容进行测试的策略,例如一个页面、一个输入框等的测试策略。
  • 全局探索性测试方法:
    • 1.使用测试集用来确定软件是否已经满足正式发布所需达到的质量标准。
    • 2.测试集中的测试用例都是相互有联系的整体。
    • 3.确定了如何对软件进行探索式测试的整体方向。

探索性测试主要用的方法:

  • 指南测试法:通过阅读用户手册并严格遵守手册的建议执行操作。尽量执行手册中提交的场景,验证软件实现的软件特性,也验证了用户手册的准确性。[比如博客测试法、专家测试法、竞争对手测试法]
  • 卖点测试法:用户希望使用的功能。
  • 地标测试法:使用指南测试法和卖点测试法,找到相关的地标。
  • 权限测试法:向软件提出很多难以回答的问题。
  • 快递测试法:测试人员专注与数据,确定哪些存储起来的数据,跟随他们走遍软件。
  • 深夜测试法:非卖点的功能在夜间或系统非繁忙的时刻执行。
  • 遍历测试法:选定一个目标,然后使用发现的最短路径访问目标包含的所有对象。
  • 历史区测试类型:恶邻测试法[80%的测试放在20%的模块]、博物馆测试法、上一版本测试法。
  • 娱乐区测试法:配角测试法、深巷测试法、通宵测试法。
  • 旅游区测试类型:收藏家测试法、长路径测试法、超模测试法。
  • 混合探索式测试技术:讲述用户故事、描述需求、演示产品功能、演示集成场景、描述设置和安装、描述警告和出错场景。

单个特性测试方法:

 交互特性测试方法:

 系统测试方法:

3.2.2 探索式软件测试的测试方法

1.头脑风暴法

测试需求:图片文件上传,选择图片文件,单击(上传)按键,正式上传,图片不得超过5MB。经过5个人一个小时的讨论,得出19个测试用例。

头脑风暴法:
需求:图片文件上传,选择图片文件,单击(上传)按键,正式上传,图片不得超过5MB。
讨论后产生的用例:
(1)上传正常的图片文件。
(2)上传文本文件。
(3)上传的文本文件后缀改为 jpg 后缀再上传。
(4)上传图片正被预览。
(5)上传图片正在编辑。
(6)上传图片名在选择图片文件后,单击(上传)按键前已修改。
(7)上传图片在选择图片文件后,单击(上传)按键前已删除。
(8)上传图片大小>5MB。
(9)上传图片大小=5MB。
(10)上传图片大小=0MB。
(11)上传图片服务器硬盘空间不够。
(12)上传客户端与服务器网络中断。
(13)断电重连后重传。
(14)单击上传后没选择任何文件。
(15)上传重复文件。
(16)上传文件失败后,重传该文件。
(17)大量用户同时上传图片:测试并发。
(18)网络延时大的情况下上传文件。
(19)图片格式 png、bmp、gif 和 jpeg。
(20)上传 exe 文件。
(21)上传服务器的文件夹被删除。

2 车轮图测试法

  车轮图测试法:结合ISO 225000的6个要素,及功能性、可靠性、易用性、效率、可维护性和可移植性进行的测试方法。

 

3 wiki法

wiki指的是一种超文本系统,支持面向社群的协作式写作,同时也包括一组支持这种协作。在公司可以建立内部的以测试设计技巧为内容的wiki网站,把自己的软件测试经验书写在这里,方便其他同事的使用和学习。

4 阅读bug报告和测试日志

  定期到缺陷管理工具中阅读别人发现的缺陷以及阅读别人书写的测试日志,是提高自己 测试能力的一个有效手段。由于探索式测试本身就是一种基于经验的测试,每个人都有自己 的测试经验,因而通过阅读别人的缺陷和日志可以提高自己的测试设计的水平,也可以更好地了解测试的软件产品质量情况。

5.利用思维导图工具

  在进行软件探索式测试的时候,我们也可以借助于思维导图工具。

3.3 探索性测试的核心优势

核心优势:有助于学习,是指学(获取知识 )与习(应用知识)的持续过程。

软件测试是一个持续学习并实践的过程,学习范围主要包括行业知识、用户角色、软件产品、计算平台、开发技能、测试技术、程序缺陷、开发团队。

  • 行业知识:为什么需要这个软件?软件如何帮助使用它的人和团体去获得成功?
  • 用户角色:目标用户是谁,有什么特点,有什么期望,如何帮助他们去获得个人成就?
  • 软件产品:产品是一种解决方案,解决了行业和用户所面临的问题吗?
  • 计算平台:只有深刻理解理解软件所依赖的计算平台(如操作系统、中间件、网络协议),才能更好的进行测试。
  • 开发技能:理解项目所使用的具体计算,知晓典型的技术缺陷,具备测试开发的能力
  • 测试技术:选择合适的测试技术,并能够熟练地应用
  • 程序缺陷:研究已知的软件缺陷,提炼错误模式,制定缓解或预防方案。
  • 开发团队:语境决定策略和实践。

3.4 如何评估探索性测试的测试效果

评估探索性测试结果的前提:测试记录。测试记录主要包括:测试目标、测试范围、测试策略、缺陷列表、疑问、复用的测试资源、耗时、时间分配。

  • 测试目标:本次测试要提供什么信息?
  • 测试范围:本次测试覆盖了哪些功能、模块、用户情景?
  • 测试策略:使用何种测试方法?
  • 缺陷列表
  • 在测试过程中发现的疑问,值得进一步探索。
  • 可以复用的测试资源:被测试软件配置、测试数据、测试脚本等。
  • 测程的耗时
  • 测程的时间分配:在测试设计与执行、缺陷调查与报告、测程的启动与结束和非测试活动上各花费了多少时间。

测程:在一个固定的时间窗口内(60~120分钟),根据预设的测试目标,对软件Z探索性测试。类似于科学实验,主要分三个阶段:测试计划、测试执行、测试分析。

  • 1.测试计划:明确测试目标,需要获得什么目标?
  • 2.测试执行:设计并执行测试用例,记录测试所发现的一切。
  • 3.测试分析:分析并总结测试所发现的信息,为下一次测试提供目标。

4 传统的测试和精益与探索式测试区别

4.1 传统的测试与探索式测试的区别

  • 1.两者互补,不是对立关系。
  • 2.传统的测试通过收集来的各种信息和文档,编写出正式的测试用例,测试人员根据测试用例来执行。探索性测试是一种新的测试思维,强调的是测试过程中要有更多的发散思维。
  • 3.在执行正式的测试用例的同时,可以使用探索性测试来让测试用例更加的丰富和富有变化,提高测试代码的覆盖率,找到更多的bug。

在探索式软件测试中基于测程的管理方法是基本的管理方法:

  第一个测程:测试开始是测试分析、设计、执行一起进行,测试过程中随时进行记录。比如测试过哪些模块,使用了哪些方法,遇到了哪些问题。一个测程一般在 0.5~ 3 小时。

一个测程测试完毕后测试工程 师与测试经理及其他测试工程师一起讨论测试记录总结如下内容:

  1. 需要进一步学习哪些专业知识、业务知识和其他知识。
  2. 系统中这次发现的哪些问题是有效的缺陷,讨论后填写到缺陷管理软件中去。
  3. 下一次需要重点测试哪些模块,使用哪些方法和技巧。

  然后进入下一轮测程。  

4.2  探索式测试与精益

软件测试的目的有4个方方面:发现缺陷、增加信心、为领导者做出决策以及预防缺陷。

精益的思想:在探索式初期采用地毯式浅层测试的策略。初期测试阶段是为了探索哪些模块存在缺陷以及缺陷的严重程度,所以我 们必须采取“地毯式”的方法,把所有模块都均匀地摸一遍。采用“浅层”测试由于现在是 侦察兵介入,熟悉一下缺陷在软件中的分布情况,大规模的测试还没有开始,所以这个时候 采用“深入”的测试是没有必要也是不科学的。通过第一次探索式测试,我们对缺陷在软件中的分布情况有了八九不离十的了解,可以计划在下几次测程计划中采用不同的测试策略和测试方法进行测试。同样在每次测程结束,对测试过程的结果进行不断的总结与反馈,指定下一次测程的计划,这种方法其实就是精益思维方式。

  精益中一些工具在探索式软件测试中的使用,比如:OODA 环,OODA包括探索、判断、决策、行动 4 个活动构成的环。在探索式测试中“观察”可以理解为观察前一个测程中的测试结果,然后通过“判断”来对测试结果进行分析,结合公司文化、以前的测试遗产、新发现的问题和以前的经验来判断下一个测程的测试“决策”,从而进入下一轮探索式测试行动。

  精益企业产品从产生到衰败的过程也正体现了探索式软件测试中发现缺陷的分布情况,在探索测试初期随着测试的深入发现的缺陷越来越多,而到了后期发现的缺陷逐步呈现出衰退的趋势。"创新者"与"早期采纳者"阶段正是那些很容易被发现的缺陷,探索测试在这个时期正处于深入探索的阶 段,通过这个阶段的探索,我们可以更加深入地了解产品质量情况、缺陷分布、缺陷类型等 信息。"早期大多数"是指基本上了解了产品本身的一些特征,在这个阶段大量的缺陷被发现出来。"晚期大多数"为一些隐藏得比较深的缺陷被逐步地发现。"滞后者"是指一些深层次的、不容易被发现的,甚至没有被测试出来的缺陷。

  探索式测试也可以分为增长期、成长期、成熟期、衰退期、灭亡期。探索式测试的成熟度周期与发现缺陷的生命周期是一致的。

  在探索式软件测试前期,由于对产品不是很了解,我们主要的精力在于理解探索产品中缺陷的分布以及缺陷的类型,这个时候的投资回报率是负的,随着对产品质量的逐步了解,探索式测试的投资回报率突破零点,并且达到正回报率,从而取得效益。

 

5 如何实施探索性测试

探索性测试鼓励测试人员依据当前语境选择合适的测试流程与技术。SMART原则提供了指导:

  • Specifi(具体的):测试需要一个具体的目标。
  • Measurable(可度量的):有明确的指标可以评估目标是否达成。
  • Attainable(可实现的):目标应该是可实现的,要求将一个大目标分解成多个小目标,且每个小目标也是具体的、可度量的、可实现的。而且,追踪小目标的完成情况提供了整体进度的可度量性。
  • Relevant(相关的):符合团队利益。
  • Time-boxed(有时间限制的):为每个目标设定一个合理的最后期限。

测试人员可按SMART原则展开探索性测试:

  • 1.测试人员制定测试计划。分析被测试应用,确立若干个具体的测试使命(Mission),每个使命针对一个可能的产品风险。
  • 2.测试人员将测试使命分解成一系列测试任务,每个任务都有明确的退出条件和时间限制。
  • 3.在短暂的测试计划之后,根据优先级选择一个任务,在一个固定的时间窗口中执行探索性测试。(测程:一般窗口长度为60-120分钟,一般90分钟)
  • 4.测试结束后,休息,放松思维
  • 5.反思当前测试进展,并优化测试计划,追加一个测程,开始新一轮探索性测试。

根据国外的一些实践理念,采用session来进行测试范围的确定:主要需要了解几个关键词:session、charters、UC。

  charter:探索性测试过程中使用到的一个非常清晰的任务列表,指出了要测试什么、怎么测试(测试策略)、要寻找什么样的bug,有哪些bug,要去检查什么文档等。

  sessions:一个基本的测试工作单元,一般对应1-2个UC。探索性测试者所有进行的探索性测试都是基于Session的。

  • 1.大概花1-2小时时间看PRD和原型(了解目的和产品背景)
  • 2.大概花1-2H时间确定下有哪些主要的功能模块和贡献性的功能模块
  • 3.与项目组测试人员沟通哪个功能模块发现bug最多,哪个最小,哪块存在的风险比较大。
  • 4.确定Session的个数,并指出每个session大概花多长时间,一般是1.5-2H。
  • 5.制定探索性测试计划,包含所有session的名称和测试时间以及缓冲情况。
  • 6.根据探索性测试计划,边学习产品需求,边测试,发现问题立马记录问题描述,最后发送测试报告。
  • 7.与项目组测试人员沟通探索性测试的效果以及该产品存在的风险,从用户易用性角度给该产品总体评价,同时跟踪确认bug的fix情况。

6 基本测试用例[编辑、输入框、翻页] 

Base64编码:基于64个可打印字符来表示二进制数据的方法,常用于处理文本数据的场合,表示、传输、存储一些二进制数据。在Base64中的字符包括:A-Z,a-z,0-9,+,/ 

6.1 编辑有效、无效的功能


2. 点击操作栏【编辑】按钮
3. 编辑无效的xx
3.1. 不填写任何字段,点击确认
3.2. 不填写必填字段,点击确认
3.3. 留空任意一个必填字段,点击确认
3.4. 填写的字段不符合格式(如非法字段),点击确认
3.5. 填写的内容过长或过短,点击确认

2. 能正常跳转到xx页
3. 
3.1. 必填字段提示不能为空
3.2. 必填字段提示不能为空
3.3. 能对留空的必填字段进行提示
3.4. 能友好对信息进行提示
3.5. 能正常截断或友好进行提示

2. 点击操作栏【编辑】按钮
3. 编辑有效的xx
3.1. 输入全部字段,点击确认
3.2. 输入必填字段,点击确认
3.3. 输入必填字段,清空所有的非必填字段,点击确认

2. 能正常跳转到编辑页
3. 
3.1. 能有效的xx
3.2. 能有效的编辑xx
3.3. 能有效的编辑xx,且能有效的清空所有的非必填字段

6.2 输入框有效、无效查询


2. 输入无效的信息进行查询
2.1.输入框输入空格+信息+空格,点击查询
2.2.输入框输入为空,点击查询
2.3.输入框输入信息超过一定的长度,点击查询
2.4.输入框输入信息,多次点击查询按钮
2.5.输入框输入JS标记信息等信息,(比如<script>alert('aa');</script> ),点击查询按钮
2.6.输入框复制、粘贴
2.7.点击下拉框,不选择任何数据,直接点击确认,点击查询
2.8.点击下拉框,选择某一个数据,点击确认,然后点击查询


2. 
2.1. 列表结果能被友好进行搜索并查询结果友好展示
2.2. 列表搜索结果能被友好进行展示
2.3. 查询条件能被友好提示,超过长度限制
2.4. 列表搜索结果只展示一次查询内容
2.5. 列表搜索结果能友好进行展示
2.6. 输入框能被友好进行复制、粘贴
2.7. 下拉框内不显示任何其他数据
2.8. 下拉框能被友好显示,且列表查询结果显示对应字段的内容

6.3 翻页功能

2. 输入不同的情况进行翻页查看
2.1.点击首页、上一页、下一页、尾页、指定跳转页
2.2. 无数据时查看翻页
2.3. 首页时,点击上一页
2.4. 尾页时,点击下一页
2.5. 翻页后,列表数据排序
2.6. 中间页,勾选列表数据
2.7. 指定页面显示条数翻页
2.8. 输入非法字符(比如0、负数、字符串、中文、特殊字符%)

2.

2.1.能友好跳转到对应页面

2.2.不显示翻页功能

2.3. 不能进行点击上一页,且可以点击其他页

2.4. 不能点击下一页,且可以点击其他按钮

2.5. 翻页后,列表数据能友好进行提示

2.6. 勾选列表数据,能友好勾选前后翻页选择的数据

2.7. 能友好显示指定翻页条数

2.8. 能友好提示,不产生异常

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

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

相关文章

Java算法_ 二叉树的最大深度(LeetCode_Hot100)

题目描述&#xff1a;给定一个二叉树 &#xff0c;返回其最大深度。root 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 获得更多&#xff1f;算法思路:代码文档&#xff0c;算法解析的私得。 运行效果 完整代码 /*** 2 * Author: LJJ* 3 * Date: 2023/…

去年校招面试中Hadoop高频都问些什么?秋招在即,快收藏!

1 总述 校招是远不同于社招的&#xff0c;企业对学生的要求更多的是一些概念性的东西&#xff0c;即所谓的八股文。但有些场景类的题目也是会涉及到&#xff0c;尤其是在一些中大厂的面试题中。场景题固然是能不能中大厂中必不可少的部分&#xff0c;但是基础牢不牢才是能不能…

idea如何建立web项目???

我们需要用到tomcat&#xff0c;没有下在着小伙伴&#xff0c;可以借鉴这篇博客&#xff1a; 如何正确下载tomcat&#xff1f;&#xff1f;&#xff1f;_明天更新的博客-CSDN博客 1.建立普通的Java项目。 2.简单编写index.jsp文件 3.添加tomcat 4.运行服务器 5.构建Servlet 最后…

如何优雅做好项目管理?

导言 项目本身无好坏之分&#xff0c;项目管理有做好与做坏之别。在互联网大厂的体制下&#xff0c;想要做坏一个项目很难&#xff08;可以通过换人、追加资源等方式消除风险&#xff09;&#xff0c;想要做好一个项目不容易&#xff0c;需要团队及PM付出大量心血和精力。在这…

【数据结构】树和二叉树

一、树的概念及结构 1、树的概念 树 是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&a…

基于C#的消息处理的应用程序 - 开源研究系列文章

今天讲讲基于C#里的基于消息处理的应用程序的一个例子。 我们知道&#xff0c;Windows操作系统的程序是基于消息处理的。也就是说&#xff0c;程序接收到消息代码定义&#xff0c;然后根据消息代码定义去处理对应的操作。前面有一个博文例子( C#程序的启动显示方案(无窗口进程发…

HTTP响应状态码大全:从100到511,全面解析HTTP请求的各种情况

文章目录 前言一、认识响应状态码1. 什么是HTTP响应状态码2. Http响应状态码的作用3. 优化和调试HTTP请求的建议 二、1xx 信息响应1. 认识http信息响应2. 常见的信息响应状态码 三、2xx 成功响应1. 认识HTTP成功响应2. 常见的成功响应状态码 四、3xx 重定向1. 认识http重定向2.…

mysql从传统模式切到GTID模式后启动主从,主从异常报错1236

一 前言 MySQL 的主从复制作为一项高可用特性&#xff0c;用于将主库的数据同步到从库&#xff0c;在维护主从复制数据库集群的时候&#xff0c;作为专职的MySQL DBA&#xff0c;笔者相信大多数人都会遇到“Got fatal error 1236 from master when reading data from binary …

日常BUG——SpringBoot关于父子工程依赖问题

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 在父子工程A和B中。A依赖于B&#xff0c;但是A中却无法引入B中的依赖&#xff0c;具体出现的…

全自动模拟量采集软件框架详解

Monitor.Analog采用一种MVVM架构模式&#xff0c;用于将用户界面&#xff08;View&#xff09;与业务逻辑&#xff08;Model&#xff09;进行分离&#xff0c;并通过ViewModel来进行连接和交互。以下是MVVM框架的介绍&#xff1a; 1. Model&#xff08;模型&#xff09;&#x…

【CTF-web】buuctf-[极客大挑战 2019]EasySQL 1(sql注入)

题目链接 根据题目判断出可能需要sql注入&#xff0c;看源码可知数据是通过GET的方式传输的&#xff0c;即放在url的username和password两个参数中。 只要将username输入为1 or 11#&#xff0c;password可以为任何值&#xff0c;即可顺利登录。 需要注意的是url中的井号表示…

【腾讯云 Cloud Studio 实战训练营】在线 IDE 编写 canvas 转换黑白风格头像

关于 Cloud Studio Cloud Studio 是基于浏览器的集成式开发环境(IDE)&#xff0c;为开发者提供了一个永不间断的云端工作站。用户在使用Cloud Studio 时无需安装&#xff0c;随时随地打开浏览器就能在线编程。 Cloud Studio 作为在线IDE&#xff0c;包含代码高亮、自动补全、Gi…

8.深浅拷贝和异常处理

开发中我们经常需要复制一个对象。如果直接用赋值会有下面问题: 8.1 浅拷贝 首先浅拷贝和深拷贝只针对引用类型 浅拷贝&#xff1a;拷贝的是地址 常见方法: 1.拷贝对象&#xff1a;Object.assgin() / 展开运算符{…obj} 拷贝对象 2.拷贝数组&#xff1a;Array.prototype.con…

1 树 1.1 树的基本概念 1.1.1 什么是树&#xff1f; 树是n(n > 0)个结点的有限集。当n 0时&#xff0c;称为空树。在任意一颗非空树上应该满足&#xff1a; 有且仅有一个特定的称为根的结点当n>1时&#xff0c;其余结点可分为m&#xff08;m>0&#xff09;个互不相…

微信支付报非法的密钥大小: Caused by: java.security.InvalidKeyException: Illegal key size

在Linux环境中出现 java.security.InvalidKeyException: Illegal key size 异常通常是由于Java默认的加密限制引起的。Java默认的加密强度限制了加密算法密钥的最大长度 方式一 1. 找到该目录 /usr/java/jdk1.8.0_121/jre/lib/security 2. 替换local_policy.jar 和 US_export_…

单因素多变量方差分析

多变量方差分析&#xff1a;是对多个独立变量是否受单个或多个因素影响而进行的方差分析。它不仅能够分析多个因素对观测变量的独立影响&#xff0c;更能够分析多个因素的交互作用能否对观测变量产生影响。本章以单因素多变量分析为例&#xff0c;即一个分组变量和多个欲分析的…

怎么开通Tik Tok海外娱乐公会呢?

TikTok作为全球知名的社交媒体平台&#xff0c;吸引了数亿用户的关注和参与。许多公司和个人渴望通过开通TikTok直播公会进入这一领域&#xff0c;以展示自己的创造力和吸引更多粉丝。然而&#xff0c;成为TikTok直播公会并非易事&#xff0c;需要满足一定的门槛和申请找cmxyci…

Kubernetes 调度约束(亲和性、污点、容忍)

目录 一、Pod启动典型创建过程 二、调度流程 三、指定调度节点 1.使用nodeName字段指定调度节点 2.使用nodeSelector指定调度节点 2.1给对应的node节点添加标签 2.2修改为nodeSelector调度方式 3.通过亲和性来指定调度节点 3.1节点亲和性 3.2Pod亲和性与反亲和性 3.2…

【深入探索Docker】:开启容器化时代的技术奇迹

深入探索Docker 深入探索Docker&#xff1a;开启容器化时代的技术奇迹前言1. 容器化&#xff1a;实现快速部署和可移植性2. 虚拟化&#xff1a;提高安全性和可靠性3. 映像&#xff1a;打包应用及依赖项的模板4. 网络管理&#xff1a;连接容器和主机5. 持久化数据&#xff1a;保…

探索心律失常:病因、诊断与治疗以及与肠道菌群的关联

谷禾健康 你是否有时会感到心悸、心慌、胸闷、气短、头晕、乏力&#xff1f;你是否有时感觉自己的心跳过快或过慢&#xff1f; 如果有上述情况&#xff0c;就要引起重视了&#xff0c;你可能存在心律失常。心律失常是最常见的心脏疾病之一&#xff0c;涉及到心脏的电活动节奏异…