黑盒白盒测试
任务1 黑盒测试之等价类划分法
【任务需求】
【问题】例:某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。如何用等价类划分法设计测试用例, 来测试程序的日期检查功能?
【实验效果图】
- 有效等价类:
- 年份在有效范围内且月份在有效范围内:代表符合系统要求能正常处理的日期范围,即 2003 年 1 月至 2008 年 12 月的所有日期组合。例如 200301、200812 等。
- 无效等价类:
- 年份小于 2003 年:如 200212 等,输入的年份早于系统限定的起始年份,不符合要求。
- 年份大于 2008 年:像 200901 等,输入的年份超出了系统限定的结束年份,不应被接受。
- 月份小于 1 月:例如 200300,输入的月份小于有效范围的起始月份,属于无效输入。
- 月份大于 12 月:比如 200313,超出了正常月份的范围,不符合日期规范。
- 非 6 位数字字符组成:像 abc123、2003-01(包含非数字字符或格式不符合要求)等情况,不符合系统规定的输入格式。
测试用例编号 | 输入日期值 | 预期输出结果 | 是否通过测试(示例,实际需执行后填写) | 等价类划分 |
1 | 200301 | 系统正常处理该日期对应的报表 | (待执行测试确认) | 有效等价类(规定范围内正常日期) |
2 | 200812 | 系统正常处理该日期对应的报表 | (待执行测试确认) | 有效等价类(规定范围内正常日期) |
3 | 200212 | 显示输入错误信息 | (待执行测试确认) | 无效等价类(年份小于规定起始年份) |
4 | 200901 | 显示输入错误信息 | (待执行测试确认) | 无效等价类(年份大于规定结束年份) |
5 | 200300 | 显示输入错误信息 | (待执行测试确认) | 无效等价类(月份小于规定起始月份) |
6 | 200313 | 显示输入错误信息 | (待执行测试确认) | 无效等价类(月份大于规定结束月份) |
7 | 123abc | 显示输入错误信息 | (待执行测试确认) | 无效等价类(输入非 6 位数字字符) |
任务2 白盒测试之逻辑覆盖
【任务需求】
【问题】假设有一个简单的Java函数,用于计算两个数的最大值,并考虑边界条件和异常情况。函数代码如下:
![]() |
(1)给出满足语句覆盖和条件组合覆盖的测试用例。
(2)设计驱动程序main函数,运行题(1)中的测试用例,并将测试结果截图。
【实验效果图】
- 语句覆盖和条件组合覆盖的测试用例
- 语句覆盖:
- 语句覆盖要求程序中的每一条可执行语句至少被执行一次。
- 对于给定的max函数,有三条可执行语句:return a;(当a > b时),return b;(当a < b时),return a;(当a == b时)。
- 测试用例:
- 输入a = 5, b = 3,预期结果:5(覆盖a > b的情况)。
- 输入a = 3, b = 5,预期结果:5(覆盖a < b的情况)。
- 输入a = 5, b = 5,预期结果:5(覆盖a == b的情况)。
- 条件组合覆盖:
- 条件组合覆盖要求考虑所有可能的条件组合。
- 在max函数中,有两个条件:a > b和a < b。
- 可能的条件组合:
- a > b为真,a < b为假(a > b)。
- a > b为假,a < b为真(a < b)。
- a > b为假,a < b为假(a == b)。
- 测试用例:
- 输入a = 5, b = 3,预期结果:5(覆盖a > b)。
- 输入a = 3, b = 5,预期结果:5(覆盖a < b)。
- 输入a = 5, b = 5,预期结果:5(覆盖a == b)。
- 语句覆盖:
将测试给代码运行截图得
任务3 白盒测试之基本路径覆盖
【任务需求】
【问题】有一个程序,根据用户输入的三个边长(a, b, c)来判断这三个边长是否能构成三角形,并进一步判断该三角形的类型(等边三角形、等腰三角形或普通三角形)。如果不能构成三角形,则输出相应的提示信息。
(1)给出被测模块的程序流程图。
(2)设计满足基本路径覆盖的测试用例设计。
【实验效果图】
(2)设计满足基本路径覆盖的测试用例设计。
- 基本路径覆盖要求覆盖程序中所有可能的独立路径。
- 对于上述程序,有以下几条独立路径:
- 路径 1:输入边长,判断能构成三角形,判断为等边三角形
- 测试用例:a = 3, b = 3, c = 3
- 预期输出:“等边三角形”
- 路径 2:输入边长,判断能构成三角形,判断为等腰三角形(非等边)
- 测试用例:a = 3, b = 3, c = 4
- 预期输出:“等腰三角形”
- 路径 3:输入边长,判断能构成三角形,判断为普通三角形
- 测试用例:a = 3, b = 4, c = 5
- 预期输出:“普通三角形”
- 路径 4:输入边长,判断不能构成三角形
- 测试用例:a = 1, b = 2, c = 4
- 预期输出:“不能构成三角形!”
- 路径 1:输入边长,判断能构成三角形,判断为等边三角形
【实验思考】
- 白盒测试与黑盒测试的区别?
- 三种黑盒测试方法比较?
- 白盒测试与黑盒测试的区别
(1)测试对象的关注点
- 白盒测试:
- 白盒测试主要关注程序的内部结构和逻辑。它是基于代码的测试,测试人员需要了解程序内部的代码实现细节,如编程语言、算法、数据结构、控制流和数据流等。例如,在测试一个排序算法时,白盒测试人员会检查算法的实现步骤,如比较和交换元素的操作是否正确执行。
- 测试用例的设计是根据程序的内部逻辑来进行的,通常会覆盖程序中的不同执行路径、条件分支、循环等结构,以确保程序的每个部分都能正确运行。
- 黑盒测试:
- 黑盒测试侧重于软件的外部功能,不关心程序内部的实现细节。测试人员将软件系统看作一个 “黑盒子”,只关注软件的输入和输出。例如,对于一个在线购物系统,黑盒测试人员主要关注用户的操作(如添加商品到购物车、下单、支付等)以及系统相应的反馈(如购物车内容更新、订单确认信息、支付成功提示等)。
- 测试用例的设计是基于软件的功能需求规格说明书,通过对各种可能的输入情况进行组合和分析,来验证软件是否满足功能要求。
(2)测试用例设计方法
- 白盒测试:
- 常用的设计方法包括语句覆盖、判定覆盖、条件覆盖、路径覆盖等。例如,路径覆盖要求设计的测试用例能够覆盖程序中所有可能的执行路径。以一个简单的 if - else 语句嵌套循环的程序为例,测试人员需要找出所有可能的路径组合,包括不同条件下循环的执行次数和路径走向。
- 黑盒测试:
- 主要有等价类划分法、边界值分析法、错误推测法等。等价类划分法是将输入数据划分为有效等价类和无效等价类,然后从每个等价类中选取代表数据进行测试。例如,在测试一个要求输入年龄(18 - 60 岁)的系统功能时,18 - 60 岁这个区间就是有效等价类,小于 18 岁和大于 60 岁就是无效等价类。
(3)测试人员所需知识
- 白盒测试:
- 要求测试人员具备较强的编程知识,能够读懂和理解程序代码。他们需要熟悉编程语言的语法、数据类型、控制结构等,并且要了解程序所采用的算法和数据结构。例如,测试一个用 Java 编写的复杂数据处理程序,测试人员需要精通 Java 语言。
- 黑盒测试:
- 测试人员更侧重于业务知识和功能需求的理解。他们需要清楚软件系统的功能用途、用户操作流程和预期的输出结果。对于一个企业资源规划(ERP)软件,黑盒测试人员要了解企业的业务流程,如采购、销售、库存管理等环节的功能需求。
(4)发现的缺陷类型
- 白盒测试:
- 能够发现程序内部逻辑错误,如算法错误、条件判断错误、循环终止条件错误等。例如,在一个计算利息的程序中,白盒测试可能会发现计算复利的算法实现有误。
- 黑盒测试:
- 主要发现功能缺陷,如软件功能不符合需求规格说明书的要求、用户界面不友好、系统对异常输入处理不当等。例如,在一个手机应用程序中,黑盒测试可能会发现某个功能按钮点击后没有正确的响应,或者在输入特殊字符时系统出现崩溃。
- 三种黑盒测试方法比较
(1)等价类划分法
- 优点:
- 可以有效减少测试用例的数量。通过将输入数据划分为等价类,只需要从每个等价类中选取少数代表性的测试数据,就能够在一定程度上覆盖所有可能的输入情况。例如,在测试一个输入范围为 1 - 100 的整数输入框时,不需要对 1 - 100 中的每个整数进行测试,只需要从有效等价类(1 - 100)和无效等价类(小于 1 和大于 100)中选取几个典型数据即可。
- 能够关注输入数据的范围和边界,有助于发现边界附近的错误。因为在划分等价类时,边界值往往是划分的关键依据。
- 缺点:
- 可能会遗漏一些特殊情况。虽然等价类划分能够覆盖大部分情况,但有些复杂的、特殊的输入组合可能没有被充分考虑。例如,在测试一个包含多个输入字段的表单时,某些输入字段之间可能存在相互关联的特殊情况,这些情况可能在划分等价类时被忽略。
- 对于等价类的划分需要一定的经验和对需求的深入理解,如果划分不合理,会导致测试用例不全面或冗余。
(2)边界值分析法
- 优点:
- 着重关注边界情况,而边界值往往是程序最容易出错的地方。例如,在测试一个循环结构,循环次数的边界值(如最小次数、最大次数)是测试的重点,通过测试这些边界值能够有效地发现程序在边界条件下的错误。
- 可以作为等价类划分法的补充,与等价类划分法结合使用能够更全面地测试软件。通常在等价类的边界上选取测试数据,能够更好地保证测试的完整性。
- 缺点:
- 只关注边界值,可能会忽略非边界情况。如果程序在非边界值的输入情况下也存在错误,边界值分析法可能无法发现这些错误。
- 对于复杂的、多变量的输入情况,边界值的确定和组合会变得复杂。例如,对于一个有多个输入参数且每个参数都有自己的边界的函数,确定所有边界值的组合来进行测试是一项繁琐的工作。
(3)错误推测法
- 优点:
- 充分利用测试人员的经验和直觉。测试人员根据以往的测试经验、对软件功能的理解以及对常见错误的认识,推测软件可能出现错误的地方,然后有针对性地设计测试用例。例如,对于一个文件上传功能,测试人员根据经验推测可能在文件格式不支持、文件过大、网络不稳定等情况下出现错误,从而设计相应的测试用例。
- 可以发现一些其他测试方法不易发现的错误。尤其是对于一些特殊的、与业务逻辑紧密相关的错误,或者是在软件设计和实现过程中容易被忽略的细节错误。
- 缺点:
- 对测试人员的经验和能力依赖较大。如果测试人员经验不足或对软件系统的了解不够深入,可能会遗漏很多可能出现错误的情况。
推测的准确性难以保证。即使是经验丰富的测试人员,也很难保证能够准确地推测出所有可能的错误情况,而且软件的复杂性也可能导致一些新的、未被推测到的错误出现。
相关文章:
黑盒白盒测试
任务1 黑盒测试之等价类划分法 【任务需求】 【问题】例:某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息…...
D99【python 接口自动化学习】- pytest进阶之fixture用法
day99 pytest使用conftest管理fixture 学习日期:20241216 学习目标:pytest基础用法 -- pytest使用conftest管理fixture 学习笔记: fixture(scope"function") conftest.py为固定写法,不可修改名字,使用c…...
RFDiffusion 计算二面角函数解读
th_dih函数来自util.py包,get_dih函数来自kinematics.py包。th_dih函数计算输入向量定义的二面角的余弦值和正弦值,返回一个包含 (cos(ϕ),sin(ϕ)) 的张量。get_dih 函数计算的是传统意义上的二面角。 源代码: def th_dih_v(ab, bc, cd):def th_cross(a, b):a, b = t…...
卓易通:鸿蒙Next系统的蜜糖还是毒药?
哈喽,我是老刘 最近很多人都在问鸿蒙next系统新上线的卓易通和出境易两款应用。 老刘分析了一下这个软件的一些细节,觉得还是蛮有意思的,我觉得可以从使用体验、底层原理和对鸿蒙生态的影响这三个角度来分析一下。 使用体验 性能 看到了一些测…...
Android:展锐T760平台camera PDAF调试
一、平台PDAF流程 目前展锐平台主要支持Shield PD Sensor、Dual PD Sensor 1、Shield PD Sensor Type1相位差和信心度结果直接从Sensor输出,不经过平台算法库。 Type2Sensor端抽取PD信息, 放在一块buffer输出, PDAF算法库算出相位差和信心度。 Type3Sensor端直接输出将带有…...
泷羽Sec学习笔记-zmap搭建炮台
zmap搭建炮台 zmap扫描环境:kali-linux 先更新软件库 sudo apt update 下载zmap sudo apt install zmap 开始扫描(需要root权限) sudo zmap -p 80 -o raw_ips.txt 代码解析: sudo:以超级用户(管理员)权限运行…...
web遇到的安全漏洞
最近项目又在做安全漏扫,记录下遇到的常见的web安全问题 越权 漏洞介绍 攻击者可以在授权状态下,通过修改数据包的参数,操作超出现有权限操作的功能点。举例 修改密码时,可以通过修改名称参数,修改任意用户密码。 任…...
Starfish 因子开发管理平台快速上手:如何完成策略编写与回测
DolphinDB 开发的因子开发管理平台 Starfish 围绕量化投研的因子、策略开发阶段设计,为用户提供了一个从数据管理、因子研究到策略回测的完整解决方案。 因子平台的回测引擎提供了多个关键的事件函数,涵盖策略初始化、每日盘前和盘后回调、逐笔、快照和…...
Oracle 数据库中,UNION ALL创建视图的使用详解
目录 UNION ALL 的特点 UNION ALL 的作用 1. 合并结果集 2. 保留重复行 3. 提高性能 UNION ALL 的使用场景 1. 日志或数据拼接 2. 区分数据来源 3. 解决分区表查询 注意事项 在创建视图中的作用 场景 1:合并多个表的数据到视图 表结构 目标 SQL 实现…...
无名信号量和条件变量
1.使用无名信号量实现春夏秋冬的输出 #include <myhead.h> sem_t sem1,sem2,sem3,sem4; void *fun1() {while(1){sem_wait(&sem1);sleep(1);printf("春\n");sem_post(&sem2);} } void *fun2() {while(1){sem_wait(&sem2);sleep(1);printf("夏…...
之前使用vue-element-admin框架开发的项目无法启动,可能是这个原因
最近运行之前的项目,发现无法正常启动,可能有以下几种情况: 一、版本问题 报错: this[kHandle] new _Hash(algorithm, xofLen); Error: error:0308010C:digital 因为在 node V17 版本发布了 OpenSSL3.0 对算法…...
JDK的配置
目录 第一步,配置JAVA_HOME. 第二步,进入JDK的bin目录,然后复制路径。 第三步,配置CLASSPATH. 第四步,检验是否配置成功 安装好JDK后,配置三个环境变量 第一步,配置JAVA_HOME. 先找到JDK…...
【Linux系列】Linux 系统中查看目录权限
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
开启数字化时代心理服务新篇章:专属线上心理咨询服务小程序
在当今快节奏的社会中,心理健康问题日益受到人们的关注。然而,传统的心理咨询模式往往受限于时间和地点,使得许多人在寻求心理帮助时感到不便。与此同时,心理课程的传播也面临着诸多挑战,如何高效地触达目标客户群体&a…...
[Unity] Text文本首行缩进两个字符
Text文本首行缩进两个字符的方法比较简单。通过代码把"\u3000\u3000"加到文本字符串前面即可。 比如: 效果: 代码: TMPtext1.text "\u3000\u3000" "选择动作类型:";...
探索 OpenTofu:开源基础设施即代码工具
引言 在现代云计算和 DevOps 实践中,基础设施即代码(IaC)已经成为不可或缺的一部分。它使得基础设施的管理更加自动化、可重复和可维护。HashiCorp 的 Terraform 是这一领域的领先工具,但随着时间的推移,开源社区也开始关注其许可证的变更。OpenTofu 作为 Terraform 的一…...
2024首届世界酒中国菜国际地理标志产品美食文化节成功举办篇章
2024首届世界酒中国菜国际地理标志产品美食文化节成功举办,开启美食文化交流新篇章 近日,首届世界酒中国菜国际地理标志产品美食文化节在中国国际地理标志大厦成功举办,这场为期三天的美食文化盛会吸引了来自世界各地的美食爱好者、行业专家…...
宽字节注入
尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范。但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如gbk…...
H5 scss 移动端的样式适配
在移动端样式的scss文件中,出现了这些变量 env() 与 constant() 设置安全区域,是css里IOS11新增的属性,webkit的css函数,用于设定安全区域与边界的距离,有4个预定义变量: safe-area-inset-left: 安全区域距…...
240004基于Jamva+ssm+maven+mysql的房屋租赁系统的设计与实现
基于ssmmavenmysql的房屋租赁系统的设计与实现 1.项目描述2.运行环境3.项目截图4.源码获取 1.项目描述 该项目在原有的基础上进行了优化,包括新增了注册功能,房屋模糊查询功能,管理员和用户信息管理等功能,以及对网站界面进行了优…...
Word2Vec 模型 PyTorch 实现并复现论文中的数据集
详细注解链接:https://www.orzzz.net/directory/codes/Word2Vec/index.html 欢迎咨询!...
《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(一)
《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(一) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Lin…...
使用matlab对矩阵进行分块
1. 前言 由于matlab内存限制,导致无法处理较大尺寸的矩阵; 2. 解决思路 读取原始大尺寸矩阵,分块后处理,及时删除中间过程文件,只保留分块处理后的最终结果,最后合并结果文件,减少内存占用。 …...
MongoDB(上)
MongoDB 基础 MongoDB 是什么? MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统,由 C 编写的。MongoDB 提供了 面向文档 的存储方式,操作起来比较简单和容易,支持“无模式”的数据建模,可以存储比较复杂…...
超详细的pycharm+anaconda搭建python虚拟环境
(一)pycharm安装 1. 下载 (1)从官网下载 ,一般来说选择社区版就够用了。我这里选择2024.1.6的windows版本Other Versions - PyCharmGet past releases and previous versions of PyCharm.https://www.jetbrains.com/…...
yarn修改缓存位置
查看缓存位置 以下三个命令分别为:bin是yarn存储命令的二进制文件,global存储全局node_modules ,cache存储用下下载缓存,查看本机目前的目录: 查看bin目录命令:yarn global bin 查看global目录命令&…...
单元测试知识总结
我们希望每段代码都是自测试的,每次改动之后,都能自动发现对现有功能的影响。 1 测试要求 在对软件单元进行动态测试之前,应对软件单元的源代码进行静态测试; 应建立测试软件单元的环境,如数据准备、桩模块、模拟器…...
光谱相机
光谱相机是一种能够同时获取目标物体的空间图像信息和光谱信息的成像设备。 1、工作原理 光谱相机通过光学系统将目标物体的光聚焦到探测器上,在探测器前设置分光元件,如光栅、棱镜或滤光片等,将光按不同波长分解成多个光谱通道,…...
账号下的用户列表表格分析
好的,这是您提供的 el-table 组件中所有列的字段信息,以表格形式展示: 列标题 (label)字段属性 (prop)对齐方式 (align)宽度 (width)是否可排序 (sortable)说明IDidcenter100否管理员的唯一标识符头像avatarcenter90否管理员的头像 URL 或路…...
软件开发中 Bug 为什么不能彻底消除
在软件开发中,Bug无法彻底消除的原因主要包括:软件复杂度高、人员认知与沟通受限、需求和环境不断变化、工具与测试覆盖不足、经济与时间成本制约。其中“需求和环境不断变化”尤为关键,因为在实际开发中,业务逻辑随着市场与用户反…...
Flutter 中的 Flexible 与 Expanded 的介绍、区别与使用
在 Flutter 中,布局是构建用户界面的重要部分。Flexible 和 Expanded 是两个常用的布局小部件,它们都用于控制子小部件在父容器中的空间分配。虽然它们有相似之处,但在使用上有一些关键的区别。本文将介绍这两个小部件的基本概念、区别、参数…...
从零开始学习 sg200x 多核开发之 sophpi 编译生成 fip.bin 流程梳理
本文主要介绍 sophpi 编译生成 fip.bin 流程。 1、编译前准备 sophpi 的基本编译流程如下: $ source build/cvisetup.sh $ defconfig sg2002_wevb_riscv64_sd $ clean_all $ build_all $ pack_burn_image注: 需要在 bash 下运行clean_all 非必要可以不…...
通过一个例子学习回溯算法:从方法论到实际应用
回溯算法:从方法论到实际应用 回溯算法(Backtracking)是一种通过穷举法寻找问题所有解的算法,它的核心思想是逐步构建解空间树,在每个步骤中判断当前解是否合法。如果不合法,就“回溯”到上一步࿰…...
google 的guava 学习 基本工具类
Guava 是 Google 开发的一个 Java 核心库,它提供了一系列工具类,用于简化 Java 编程中的常见任务。以下是 Preconditions 和 Verify 两个工具类的使用示例: Preconditions 类 Preconditions 类提供了一组静态方法,用于在代码中插…...
【Linux金典面试题(上)】41道Linux金典面试问题+详细解答,包含基本操作、系统维护、网络配置、脚本编程等问题。
大家好,我是摇光~,用大白话讲解所有你难懂的知识点 之前写了一篇关于 python 的面试题,感觉大家都很需要,所以打算出一个面试专栏。 【数据分析岗】Python金典面试题 这个专栏主要针对面试大数据岗位、数据分析岗位、数据运维等…...
SpringBoot【九】mybatis-plus之自定义sql零基础教学!
一、前言🔥 环境说明:Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE mybatis-plus的基本使用,前两期基本讲的差不多,够日常使用,但是有的小伙伴可能就会抱怨了,若是遇到业务逻辑比较复杂的sq…...
CTF 攻防世界 Web: FlatScience write-up
题目名称-FlatScience 网址 index 目录中没有发现提示信息,链接会跳转到论文。 目前没有发现有用信息,尝试目录扫描。 目录扫描 注意到存在 robots.txt 和 login.php。 访问 robots.txt 这里表明还存在 admin.php admin.php 分析 在这里尝试一些 sql…...
【记录49】vue2 vue-office在线预览 docx、pdf、excel文档
vue2 在线预览 docx、pdf、excel文档 docx npm install vue-office/docx vue-demi0.14.6 指定版本 npm install vue-office/docx vue-demi <template><VueOfficeDocx :src"pdf" style"height: 100vh;" rendere"rendereHandler" error&…...
机器学习中的 Transformer 简介(第 1 部分)
目录 一、说明 二、为什么是 Transformer? 三、什么是 Transformer? 3.1 译者的类比 四、编码器部分 4.1 、从文本输入到输入嵌入 4.2 词嵌入 4.2 N倍编码器段 4.4 多头注意力机制 4.5 添加残差和层归一化 4.6 添加残差和层归一化 五、总结 一、说明 西如…...
宝塔-docker拉取宝塔镜像,并运行宝塔镜像
宝塔-拉取宝塔镜像,并运行镜像 第1步:查询 docker search btpanel/baota此docker镜像由堡塔安全官方发布,镜像版本为宝塔面板9.2.0正式版和9.0.0_lts 稳定版,镜像会随着宝塔面板更新。 目前支持x86_64和arm架构可供下载使用 版本…...
【从零开始入门unity游戏开发之——C#篇12】新的引用类型——数组array
文章目录 一、数组(array)(一维数组)1、声明数组2、初始化数组3、访问数组元素4 、修改数组元素5、获取数组的长度6、遍历数组使用 for 循环:使用 foreach 循环: 7、数组方法排序:逆序ÿ…...
人工智能在数字人的技术与应用
在人工智能领域,数字人技术正逐渐从科幻小说走向现实。数字人,也称为虚拟助手或虚拟形象,是通过AI技术模拟人类行为、语言和情感的数字化存在。本文将深入探讨数字人技术的核心原理、最新进展以及在不同领域的应用案例,为专业人士…...
【机器人】Graspness 端到端 抓取点估计 | 论文解读
在复杂场景中实现抓取检测,Graspness是一种端到端的方法; 输入点云数据,输出抓取角度、抓取深度、夹具宽度等信息。 开源地址:GitHub - rhett-chen/graspness_implementation: My implementation of Graspnet Graspness. 论文地…...
服务器Docker OOM RSS高问题排查思路
优质博文:IT-BLOG-CN 防走弯路为防止走弯路,强烈建议先仔细阅读以下加粗内容: 如果你的应用是因为公司最近降成本调小实例物理内存才出现docker oom,而之前从来没有出现过,那么大概率是堆内存太大导致,这种…...
动态导出word文件支持转pdf
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、功能说明二、使用步骤1.controller2.工具类 DocumentUtil 导出样式 前言 提示:这里可以添加本文要记录的大概内容: 例如ÿ…...
【文档搜索引擎】在内存中构造出索引结构(下)
文章目录 4.保存到磁盘中为什么要保存在磁盘中怎么保存操作步骤1. 前期准备2. 主要操作 5. 将磁盘中的数据加载到内存中Parser 类完整源码Index 类完整源码 4.保存到磁盘中 为什么要保存在磁盘中 索引本来是存储在内存中的,为什么要将其保存在硬盘中? …...
旅游资源系统|Java|SSM|VUE| 前后端分离
【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…...
如何用细节提升用户体验?
前端给用户反馈是提升用户体验的重要部分,根据场景选择不同的方式可以有效地提升产品的易用性和用户满意度。以下是常见的方法: 1. 视觉反馈 用户执行了某些操作后,需要即时确认操作结果。例如:按钮点击、数据提交、页面加载等。…...
容器设计模式:Sidecar
文章目录 容器设计模式:Sidecar 模式1. 什么是 Sidecar 模式?2. Sidecar 模式的原理2.1 工作机制2.2 常见用途 3. Sidecar 模式示例示例:日志收集 4. Sidecar 模式的架构图图例: 5. Sidecar 模式的优点6. Sidecar 模式的局限性7. …...
深入剖析MyBatis的架构原理
架构设计 简要画出 MyBatis 的架构图 >> Mybatis 的功能架构分为哪三层? API 接口层 提供给外部使用的接口 API,开发人员通过这些本地 API 来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。MyBatis 和数据库的…...