软件测试面试题-自测
一、测试流程
1.项目测试流程你是怎么开展的?
①首先,需求分析阶段,分析需求点,需求确定以后进入测试计划阶段,参考需求规格说明书进行测试计划编写
②接着,进入测试设计阶段,依据需求文档及原型图编写测试用例,并进行用例评审
③进入测试执行阶段,需要搭建测试环境,执行冒烟测试之后进入正式测试,并且将测试缺陷进行提交及跟踪,经过多轮回归测试,直到测试版本结束
④最后,进入测试评估阶段,对软件版本质量进行评估,输出测试报告,确认是否上线。
单独负责一个项目,需 要注意什么呢?
(1)首先,评估项目的测试范围盒周期,是否能够单独完成
(2)做好测试策略和计划安排,保证每个环节按时完成
(3)在上手测试前,树立大致的测试点,先做冒烟测试
(4)测试中,尽量通过一些技术手段提升测试效率
(5)项目中,如果碰到解决不了的问题,要及时寻求解决方案
(6)及时对bug进行追踪,推动开发尽快解决bug
(7)把控发布标准,测试报告中标明上线风险
测试文档
测试计划和测试方案的区别?
(1)测试计划是偏管理性质的文档(通俗来说就是解决【谁来做?】【做什么?】的问题),测试方案是偏技术类型的文档(解决【怎么做?】的问题)(2)测试计划主要包含测试的目的与范围,角色与职责,资源及安排,风险与乐队,测试标准等信息;测试方案主要包含测试方法,测试环境与测试工具等内容
测试计划要素有哪些?
(1)测试目的(Why)
(2)测试范围(What)
(3)测试时间安排(When)
(4)人员任务分配(Who)
(5)测试环境(Where)
(6)测试方法和策略(How)
测试用例
编写测试用例的流程
(1)熟悉并分析项目业务需求
(2)依据功能模块划分,使用等价类、边界值等黑盒测试方法进行用例设计,先整理功能正常的用例,再进行每一个操作的异常用例的覆盖,补充业务约束,功能交互项,数据验证项等
(3)每个功能模块分别写完用例以后,从项目的业务流程考虑,是否都进行了用例的覆盖
(4)编写完成后,提交评审
测试方法
你知道白盒测试么? 有哪些白盒测 试的方法?
(1)白盒测试是基于代码的测试
(2)方法:语句覆盖,判定覆盖,条件覆盖,条件判定覆盖,条件组合覆盖,路径覆盖
协议
常见的 HTTP 接口请求方法有哪些
(1)GET:获取数据和资源
(2)POST:发送数据给服务器,创建或者更新资源
(3)PUT请求:用来创建或者替换目标资源
(4)PATCH,对资源进行部分修改
(5)DELET,删除资源
http 和 https 协议的区别?
(1)安全性:HTTP明文传输,易受攻击,HTTPS安全性更高
(2)端口:HTTP:80,HTTPS:443
(3)灵活性:HTTP简单快速,https门槛较高
OSI 七层模型有哪些层以及有哪些代表协议?
(1)应用层:网络服务于用户的一个接口(2)表示层:数据的表示(3)会话层:建立、管理、终止会话(4)传输层:定义传输数据的协议端口号(5)网络层:进行逻辑地址寻找,实现不同网络之间的路径选择(6)数据链路层:建立逻辑连接,进行硬件地址寻址功能(7)物理层:建立、维护、断开物理连接
说一下 TCP 协议的三次握手过程?
(1)第一次握手:客户端向服务器发起,用来申请建立连接
(2)第二次握手:服务器回复客户端,用来确定并接受连接请求
(3)第三次握手:依旧是客户端发给服务器,用来确认服务器的回复消息
说一下 TCP 协议的 4 次挥手过程
(1)第一次挥手:客户端向服务器发起,用来申请断开连接
(2)第二次挥手:服务器回复客户端,用来确定客户端上一个断开连接请求的
(3)第三次挥手:服务器 发给客户端,告知客户端服务器的数据发送完毕了,需要断开连接
(4)第四次挥手,客户端回复服务器,确认服务器的上一个断开连接请求
在浏览器中输入一个网页会发生什么?
(1)进行DNS域名解析(2)建立TCP连接,发起三次握手(3)发送一个HTTP请求(4)服务器处理相关的请求并返回处理后的结果(5)关闭TCP连接(6)浏览器接受到服务器处理后的结果后,开始解析(7)浏览器将解析后的资源进行请求,并对页面进行渲染展示
TCP 协议和 UDP 协议的区别?
(1)TCP面向连接,UDP无连接
(2)TCP可靠,能保证数据传输无差错,UDP尽最大努力交付,不可靠
(3)TCP传输效率较低,UDP效率高,适合注重速度不在意丢包的场景
b/s 和 c/s 架构有什么区别?
(1)B/S架构:浏览器-服务器,不需要安装客户端,只需要通过浏览器就能访问,升级只需要更新服务器,需要考虑浏览器兼容性
(2)C/S架构:客户端-服务器端,需要安装一个客户端才能使用,需要考虑安装卸载
接口测试
接口测试用例的编写要点有哪些?
①考虑接口的正常使用
②业务约束规则验证:包括鉴权、逻辑约束
③考虑请求参数必填字段:
(1)参数长度边界值验证
(2)类型异常、null
(3)参数名错误、参数个数
(4)参数组合验证
④容错能力,大量数据,频繁请求,重复请求(如订单)
接口测试到底测什么呢?
(1)考虑接口正常调用
①按照接口定义,传递正确的接口信息,然后查看返回的响应结果和数据库数据是否正确
②传递的请求数据覆盖有效类,边界值
③返回的响应结果的每个字段都需检查
(2)考虑请求参数的错误、异常情况
①请求数据异常值:空值,长度类型异常
②业务约束:订单状态必须确认收货后才能评价
③输入错误的参数名:多一个参数,少一个参数,看接口是否正确处理
(3)安全性测试
①敏感数据,是否加密传输
②返回数据是否含有敏感数据
③接口是否防止恶意请求:如大量伪造请求接口致使服务器崩溃
(4)性能测试
①并发请求相同的接口,查看接口的处理情况
②接口响应时间在用户可接受范围内
③对于业务操纵频繁的接口做压力测试,监控性能资源
做了接口测试,后面还需要进行系统 功能测试吗?
(1)需要,接口测试主要是为了尽早发现问题提前介入,可以返现页面上发现不了的bug,还可以提高系统的稳定性
(2)虽然接口测试覆盖了所有功能层面的逻辑测试,但跟前端界面进行集成的时候,依然会出现问题,所以我们依旧需要所有功能在前端界面的测试验证
get 和 post 方法有什么区别?
(1)请求参数:get请求参数是放在url里面,长度收到限制,安全性较差,而post请求参数是放在请求体里面的,长度没有限制,安全性相对较高
(2)访问:get请求可以通过浏览器直接访问,支持刷新和后退。post请求,不能直接被浏览器访问,刷新后台需要重新传送
怎么判断一个接口是否有 bug
(1)先确认自己传参时的接口地址,请求方式,请求头和请求体是否正确
(2)如果正确,查看返回结果和接口文档进行对比,如果一致
(3)则判断数据库中的数据是否有问题
APP 测试和 Web 测试有什么区别?
web测试:B/S架构,通过浏览器访问
App测试: C/S架构,通过客户端操作
(1)系统架构方面,web端,只需要更新服务器;App,服务器端和客户端都需要回归测试一遍
(2)客户端性能方面:web一般只需要关注响应的时间,App还需要关注流量,电量,cpu,内存
(3)兼容性方面:web要考虑不同操作系统下不同主流浏览器的兼容,App要考虑不同产商机型、操作系统、屏幕尺寸分辨率等兼容性问题
小程序测试和 app 测试有什么区别?
(1)安装卸载:小程序不需要下载安装,不需要卸载;App需要下载并且安装后才能使用,清除时需要卸载(2)开发周期
小程序开发周期约2周,发布审核时间较短
App:需要在支持的android和ios平台分别开发,周期较长,审核时间也较长
(3)登录权限
小程序:一般微信登录,无需注册
App:需要注册登录系统,权限方面需要考虑是否可以访问手机通讯录,相册,相机
(4)兼容性
小程序:基于不同的公众平台,主要兼容不同的微信版本
App:考虑不同机型的兼容,分辨率,屏幕尺寸,操作系统等....
如何做 app 兼容性测试的
(1)硬件兼容性:需要覆盖市面上主流手机厂家及各型号的产品
(2)操作系统兼容性:对app安装及卸载测试,测试app能否正常运行
(3)分辨率的兼容性:对主流设备的分辨率及屏幕尺寸,测试app界面实现及排版是否正常
(4)网络兼容性:在不同的运营商下,app是否能够正常运行,需要真机环境进行测试
“长连接”和“短连接”有什么区别?
(1)长连接(保持连接时间比较长)
一个HTTP连接的建立需要三次握手,握手成功后,才可以建立数据包传输,为了降低握手的频率,在接口请求头部connection为keep-alive,如果一段时间不用,服务器就会主动发一段探测报文,看看连接状态,如果探测不通,服务器端就会主动断开连接
(2)短连接(连接时间很短)
需要的时候才会建立一个tcp连接,数据传输完成就结束
http 协议有哪些响应状态码?
(1)1xx(临时响应):表示需要请求者继续执行操作
(2)2xx(成功):表示成功
(3)3xx(重定向)
(4)4xx(客户端请求错误)
(5)5xx(服务器错误)
测试实例
给你一个魔盒可以实现任何愿望,作为 测试怎么设计测试用例
(1)功能
①说出不同愿望(钱+人+精神需求),看魔盒是否都能实现
②说愿望,只说部分关键字,看是否能正常识别
③不说愿望,看魔盒是否提示人许愿
④是否会有魔盒实现不了的愿望
⑤许愿次数是否有上限
⑥是否有许愿咒语
(2)界面:外表设计是否符合审美要求
(3)兼容:声音大小,是否影响魔盒接受许愿者的愿望
(4)性能:连续多次许愿后,魔盒是否还能正常使用
用户反馈功能很卡,要从哪些方面考 虑?
(1)功能操作卡
①反馈提交的资源过大,导致请求慢
②服务器对于当前请求的人数过多,导致卡
(2)整个app卡
①网络异常
②app占用内存大,导致手机内存不足
③当前app与其他软件、手机系统不兼容
④服务器资源不足,请求慢
在测试“抖音直播”功能时,可以从以下几个方面进行详细的测试:
功能测试
目的:确保所有功能按照设计要求正常运作。
- 直播创建:测试用户是否可以成功创建直播,包括设置标题、封面图、分类等。
- 直播推流:检查推流功能是否稳定,测试不同设备和网络条件下的推流质量。
- 实时互动:验证直播过程中聊天、弹幕、礼物等互动功能是否正常工作。
- 直播结束:测试直播结束后的处理,包括保存直播记录、直播回放的生成和展示
给你一个微信上一个聊天的窗口你是 怎么测试的?
双十一抢券怎么测
(1)抢劵设置是否正确,不同时间节点、优惠券类型,优惠券数量
(2)查看不同抢券时间点是否正常显示该优惠券
(3)测试优惠券不同状态,待开抢、正在抢、抢光了
(4)验证是否准点实现“开抢”按钮;抢到券显示抢券成功并能在我的优惠券页面查看,未抢到显示抢光了,并能正确回退到我的优惠券页面查看。
(5)后台是否记录到了每位抢券的用户相关信息
(6)一个用户id是否同一时间点、不同时间点抢多次券
说一下购物车功能,怎么测试呢?
说下模块的功能测试点怎么整理的?
手机拍照功能怎么测试?
印象中最深刻的 bug 吧
发现问题背景
在外卖下单派送功能的测试中,我们发现了一个严重的 bug:在用户选择配送时间段后,系统没有正确地将配送时间应用到订单中,导致订单的实际配送时间与用户选择的时间段不匹配。这一问题可能会影响用户体验,尤其是当用户对配送时间有明确要求时。
测试过程
测试步骤:
- 登录应用:使用测试账户登录外卖应用。
- 选择商品:从餐厅菜单中选择几种商品,并添加到购物车中。
- 下单流程:进入结算页面,选择配送地址和时间段。
- 提交订单:确认订单详情并提交。
验证问题:
- 订单追踪:进入“我的订单”页面,查看刚刚提交的订单详情。
- 时间验证:检查订单的配送时间是否与用户选择的时间段一致。
在测试过程中,我们发现订单的实际配送时间与用户选择的时间段不一致,出现了预期与实际不符的情况。
排查过程
重现问题:
- 重复测试:多次重复以上测试步骤,确认问题的存在不是偶发的。
- 不同时间段:测试不同的时间段选项,验证是否所有时间段都出现相同的问题。
查看日志:
- 系统日志:查看服务器和客户端日志,检查订单处理的各个步骤是否有异常记录。
- 错误日志:注意日志中的错误信息,特别是与时间相关的错误。
排查代码:
- 检查前端代码:审查时间选择器的代码,确保用户选择的时间被正确地提交到后端。
- 后端逻辑:审查处理订单的后端代码,确认时间选择是否被正确地接收和处理。
数据库验证:
- 数据库记录:检查数据库中的订单记录,确认实际存储的配送时间是否与前端传递的时间一致。
- 时间字段:确保数据库表中相关时间字段的格式和数据类型正确。
业务逻辑分析:
- 时间处理:分析订单时间处理的业务逻辑,确保没有逻辑错误导致时间设置不正确。
- 时间转换:检查是否有时间格式转换错误或时区问题。
验证过程
修复方案:
- 与研发讨论:将发现的问题详细报告给研发团队,协助他们分析问题根源并提出修复方案。
- 代码修改:研发团队根据问题排查结果修复了代码中的时间处理错误,确保用户选择的时间段能够正确应用到订单中。
重新测试:
- 功能验证:修复后,重新进行相同的测试流程,确认问题是否已经解决。
- 边界条件测试:测试各种时间段的边界条件,确保修复后的功能在所有情况下都能正常工作。
用户验证:
- 回归测试:在其他相关功能上进行回归测试,确认修复没有引入新的问题。
- 用户反馈:在生产环境中监控用户反馈,确保修复后的功能在实际使用中没有再出现类似问题。
帮助研发的方式
- 详细描述问题:在问题报告中提供详细的步骤、日志和截图,帮助研发团队快速定位问题。
- 协助分析:与研发团队密切合作,分析日志和代码,提供必要的技术支持。
- 验证修复:在问题修复后,进行全面的测试,确认修复的有效性,减少反复修改的时间。
三、缺陷,bug
项目里,bug 都有哪些类型,以及哪些 地方容易出 bug?
(1)代码错误、界面错误、设计缺陷、配置相关、性能问题(2)参数的校验,边界值,复杂的逻辑,异常的业务场景
如何提交一个高质量的 bug?
(1)bug标题、bug模块、bug对应的版本、bug严重级别、bug详细现象描述、复现步骤
(2)唯一性:一个bug说明一个问题
(3)bug描述要前后一致,不能有歧义
(4)附带bug现象截图、报错日志
(5)bug不能带有个人观点,对事不对人
怎么定位是前端bug还是后端bug
(1)界面排版布局错误,兼容性问题,在网络不稳定下导致的js/css未加载完全或请求超时,也是前端bug
(2)对于数据或者逻辑处理上的问题,可以通过抓包工具fiddler,或者查看日志分析
①抓包工具:
检查请求地址、参数的正确性
不正确则为前端bug;
若正确进一步检查服务器返回的响应,若响应内容不正确,则是后端处理出错
请求和响应都正确,就是前端渲染响应的数据出错
②报错日志,分析日志里面的异常报错信息,查看数据库数据判断前端还是后端问题
开发不认同你的 bug,你怎么处理?
(1)首先确认开发环境是否和自己的测试环境一致,缓存有没有清除
(2)看bug是否能够重现,级别低的bug先记录到平台,级别高的bug对应需求文档的预期结果跟开发说明,实在不行找产品确认
偶发性 bug,作为测试该怎么处理?
(1)复现率低的bug,要提交,描述清除问题的复现步骤,环境,测试数据和日志信息
(2)如果未复现,在接下来的测试中,时刻保持关注,每次执行同样的或者相近的步骤时候,看能否复现之前的bug
(3)如果一直未复现,可暂时关闭bug,备注说明关闭不是因为修复,而是经过多个版本后不复现了
项目页面无法访问,如何定位问题?
(1)判断页面的域名是否可以正常解析到
(2)ping命令判断服务器是否可达,如果不可达用trance route命令,查看一下是哪个节点出现问题
(3)如果不是网络问题,再去后台服务器查看服务进程有没有开启,数据库有没有开启
项目上线后发现的 bug,怎么 处理呢
(1)当发现线上的bug,应该快速响应处理,先积极配合开发重现bug来定位问题,如果严重bug,需要积极解决,更新版本,如果bug不是那么严重,则放到下一个迭代版本中处理。
(2)总结bug出现的原因和规避方案
①测试用例覆盖不全面---》优化测试用例,增加用例评审
②测试的时间不充分,规划充分的测试时间,严格按照时间节点完成测试工作
③测试的环境或者测试的数据受限---》在真实环境下覆盖测试
④开发人员修复其他问题时,引入了新的bug---》明确测试范围,尤其是代码修改的功能部分,回归测试时,主流程必须回归,必须是一个完整流程
fiddler
如何构造弱网测试
(1)在fiddler中result右键customize rules,打开CustomRules.js文档
(2)修改文档中,每上传或下载1kb数据需要的时间来模拟弱网场景
(3)然后点击Simulate Modem SPeeds,开启弱网模拟
fiddler 断点有什么用?
(1)主要是修改请求和响应的数据
(2)比如提交订单,金额是200,测试时想篡改金额,可以通过fiddler对before requests设置断点,修改请求数据,传一个520金额,检查服务端是否会正常处理。
(3)测试会需要返回不同的数据前端展示,可以after response设置断点,修改返回的数据查看前端实现效果
四、数据库
Group by 和 order by 区别?
(1)Group by是分组
(2)Order by是排序
两者如果要一起使用的话,先分组后排序
mysql 中的 where 和 having 有什么 区别?
(1)where 子句中的条件表达式having都可以跟,而having有些 不行
(2)having子句可以用聚合函数(sum、count、avg、max),而where不行
数据库中的左连接、右连接和内连 接有什么区别?
(1)左连接(left join)显示左表所有数据及右表满足条件的数据,右表无数据则显示null
(2)右连接,则是显示右表的所有数据,及左表满足条件的数据,左表无对应数据则显示null
(3)内连接(inner join)显示左右两张表连接字段相等的数据
五、Linux
linux查看日志的命令?当Linux数 据过多时,如何查看自己想看的信息?
(1)查看日志命令,包括tail。head、cat、less等
(2)如果过多,可以通过tail -f查看实时日志 ,也可以加上grep错误关键字来过滤
(3)如果操作报错,使用ctrl+c结束日志打印,依据操作时间找到exception关键字后面的报错信息
在 Linux 系统下如何部署测试环境?
(1)开发会基于部署文档构建新镜像生成一个压缩包
(2)测试把压缩包传递到测试服务器,直接加载镜像,然后docker run 运行容器,并映射tomcat端口8080,mysql端口3306,以此完成测试环境部署
linux 下编辑文件常用的命令有哪些?
(1)vi或者vim,可以直接对linux文本进行编辑并保存(2)sed,流式编辑器,以行为单位进行文本操作(3)awk以行为单位进行文本编辑,也可以列为单位进行文本编辑(4)cut对文本进行切割,以行为单位进行文本处理(5)sort,对制定的文件按照一定的规则进行排序
查看进程的命令 ps,常用参数有哪些
(1)-A,列出所有的进程
(2)-w,显示价款可以显示较多的资讯
(3)-au,显示较纤细的资讯
(4)-aux,显示所有包含其他使用者的行程
什么时候会用liunx定位bug?定位什么 样的 bug?
(1)一般用来定位后端bug(2)tail -f 日志文件名来查看日志(3)容器部署,docker cp 【容器ID】:【容器内部路径】【linux路径】方式导出日志到linux,再通过xftp将日志导出到本地查看
相关文章:

软件测试面试题-自测
一、测试流程 1.项目测试流程你是怎么开展的? ①首先,需求分析阶段,分析需求点,需求确定以后进入测试计划阶段,参考需求规格说明书进行测试计划编写 ②接着,进入测试设计阶段,依据需求文档及原…...

深度学习-神经网络
文章目录 一、基本组成单元:神经元二、神经网络层三、偏置与权重四、激活函数1.激活函数的作用2.常见的激活函数1).Sigmoid2).Tanh函数3).ReLU函数 五、优点与缺点六、总结 神经网络(Neural Network, NN)是一种模拟人类大脑工作方式的计算模型…...

Redis - 集群篇 - 集群模式
面试的时候被人问到集群的问题,搬砖仔哪懂这么多,继续整理一下知识点 Redis 集群模式 Redis集群就是将多个Redis节点连接在一起, 让Redis在不同的节点上同时提供服务。 Redis集群主要有三种模式: 主从复制模式(mast…...

Robot Operating System——线速度和角速度
大纲 应用场景1. 移动机器人控制场景描述具体应用 2. 无人机控制场景描述具体应用 3. 机械臂运动控制场景描述具体应用 4. 自动驾驶车辆控制场景描述具体应用 5. 机器人仿真场景描述具体应用 6. 机器人传感器数据处理场景描述具体应用 定义字段解释 案例 geometry_msgs::msg::T…...

量化投资策略_因子打分选股的案例实现
一:因子打分选股的介绍 因子打分选股是一种量化投资策略,它通过选取多个与股票收益率相关的因子,对股票进行综合评分,然后根据评分来选择股票构建投资组合。以下是构建多因子打分选股模型的一般步骤: 数据预处理&…...

架构师知识梳理(七):软件工程-工程管理与开发模型
软件工程概述 软件开发生命周期 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。软件开发时期:就是软件的设计与实现,可分成…...

bp的模块被隐藏了
看我们现在没有代理那个模块了 我们点击查看 这里有被我们隐藏的模块,比如代理等,把前面的眼睛点一下 这个模块就出来了,如果想把他固定在任务栏里 拖动这个位置 就好了,如果有其他问题可以留言,看到可进我的努力给你…...

C++学习笔记(21)
243、条件变量-生产消费者模型 条件变量是一种线程同步机制。当条件不满足时,相关线程被一直阻塞,直到某种条件出现,这些线 程才会被唤醒。 C11 的条件变量提供了两个类: condition_variable:只支持与普通 mutex 搭配&…...

Ubuntu系统入门指南:常用命令详解
Ubuntu系统入门指南:常用命令详解 引言 Ubuntu是一个基于Linux内核的开源操作系统,由Canonical公司和社区共同开发和维护。它以易用性、稳定性和广泛的软件支持而著称,广泛应用于个人电脑、服务器和云计算环境。对于新手来说,掌…...

keep-alive缓存不了iframe
最近做了个项目,其中有个页面是由 iframe 嵌套了一个另外的页面,在运行的过程中发现 KeepAlive 并不生效,每次切换路由都会触发 iframe 页面的重新渲染,代码如下: <router-view v-slot"{ Component }">…...
Gradio快速部署构建AIGC的web应用 ,python
Gradio快速部署构建AIGC的web应用 ,python Gradio开源项目链接: https://github.com/gradio-app/gradiohttps://github.com/gradio-app/gradio (1)python的pip安装: pip install gradio (2)写…...

《职教论坛》
《职教论坛》投稿须知 《职教论坛》为全国中文核心期刊。为进一步提高期刊的规范化和标准化,也可使作者投搞有规可循,特对来稿提出如下要求: 一、稿件应有创新内容,应观点明确、资料准确、结构严谨、表述清楚、文字简明ÿ…...

JZ2440开发板——S3C2440的时钟体系
参考博客 (1)S3C2440-裸机篇-05 | S3C2440时钟体系详解(FCLK、PCLK、HCLK) 一、三种时钟(FCLK、HCLK、PCLK) 如下图所示,S3C2440的时钟控制逻辑,给整个芯片提供三种时钟࿱…...

[数据集][目标检测]男女性别检测数据集VOC+YOLO格式9769张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):9769 标注数量(xml文件个数):9769 标注数量(txt文件个数):9769 标注…...

static 初始化报错
在 C 或 C 中,当你在函数中使用 static 关键字初始化一个局部变量时,编译器要求初始化器(initializer)是编译时常量。如果你尝试用动态计算的值初始化 static 变量(如函数参数或运行时生成的值),…...

3D Gaussian Splatting 论文学习
概述 目前比较常见的渲染方法大致可以分为2种: 将场景中的物体投影到渲染平面:传统的渲染管线就是这种方式,主要针对Mesh数据,可以将顶点直接投影成2D的形式,配合光栅化、深度测试、Alpha混合等就可以得到渲染的图像…...

MySQL 安全机制全面解析
在如今的数字化时代,数据库安全 变得越来越重要。为了防止对数据库进行非法操作,MySQL 定义了一套完整的安全机制,包括用户管理、权限管理 和 角色管理。本文将为你深入浅出地介绍这三大安全机制,帮助你轻松掌握MySQL的安全管…...

vue原理分析(十四)研究new Vue()中的 initProvide
在Vue.prototype._init 中有一些init函数,今天我们来研究这些init函数 Vue.prototype._init function (options) {......{initProxy(vm);}......initLifecycle(vm);initEvents(vm);initRender(vm);callHook$1(vm, beforeCreate, undefined, false /* setContext *…...

Qt控制开发板的LED
Qt控制开发板的LED 使用开发板的IO接口进行控制是嵌入式中非常重要的一点,就像冯诺依曼原理说的一样,一个计算机最起码要有输入输出吧,我们有了信息的接收和处理,那我们就要有输出。 我们在开发板上一般都是使用开发板的GPIO接口…...

S3C2440开发板点亮LED灯+PWM定时器
目录 GPIO引脚和寄存器概述 点亮LED灯步骤 1.配置GPIO 2.点亮LED 设置引脚为输出 控制引脚电平 完整代码 PWM GPIO引脚和寄存器概述 GPIO端口: S3C2440的GPIO引脚可被配置为输入或输出(控制LED的引脚通常配置为输出模式)。寄存器&#…...

S-Procedure的基本形式及使用
理论 Lemma 1. ( S- Procedure[ 34] ) : Define the quadratic func- \textbf{Lemma 1. ( S- Procedure[ 34] ) : Define the quadratic func- } Lemma 1. ( S- Procedure[ 34] ) : Define the quadratic func- tions w.r.t. x ∈ C M 1 \mathbf{x}\in\mathbb{C}^M\times1 x…...

free -h 查看内存free空间不足
free空间不足 大部分被buff/cache占用 解决办法一: 手动释放缓存 释放页缓存 sudo sync; sudo sysctl -w vm.drop_caches1 释放目录项和inode缓存 sudo sync; sudo sysctl -w vm.drop_caches2 释放所有缓存(页缓存、目录项和inode缓存) sudo sync…...

rust学习笔记
参考资料:https://doc.rust-lang.org/book/ch01-02-hello-world.html 一、 编译与运行 在 Rust 中,编译和运行代码的常用命令是使用 cargo,这是 Rust 的包管理和构建工具。以下是使用 cargo 和 rustc(Rust 编译器)的具…...

【有啥问啥】复习变分下界即证据下界(Evidence Lower Bound, ELBO):原理与应用
复习变分下界即证据下界(Evidence Lower Bound, ELBO):原理与应用 变分下界(Variational Lower Bound),也称为“证据下界”(Evidence Lower Bound, ELBO),是概率模型中的…...

Linux shell编程学习笔记78:cpio命令——文件和目录归档工具(上)
0 前言 在Linux系统中,除了tar命令,我们还可以使用cpio命令来进行文件和目录的归档。 1 cpio命令的功能,帮助信息,格式,选项和参数说明 1.1 cpio命令的功能 cpio 名字来自 "copy in, copy out"…...

为什么在 JSON 序列化中不使用 transient
有些小伙伴发现了,明明在返回的实体类中指定了属性为transient。为什么前端得到的返回json中还是有这个属性的值? 类: private String name; private transient String password;返回结果: { name:"刘大大", password:…...

K8S - Volume - NFS 卷的简介和使用
在之前的文章里已经介绍了 K8S 中两个简单卷类型 hostpath 和 emptydir k8s - Volume 简介和HostPath的使用 K8S - Emptydir - 取代ELK 使用fluentd 构建logging saidcar 但是这两种卷都有同1个限制, 就是依赖于 k8s nodes的空间 如果某个service pod中需要的vol…...

IO模型---BIO、NIO、IO多路复用、AIO详解
本篇将想给详细解释一下什么是BIO、NIO、IO多路复用以及AIO~ 同步的阻塞(BIO)和非阻塞(NIO)的区别 BIO:线程发来IO请求后,一直阻塞着IO线程,需要缓冲区这边数据准备好之后,才会进行下一步的操作。 举个🌰࿱…...

蓝桥杯真题——约翰的牛奶
输入样例: 8 9 10 输出样例: 1 2 8 9 10 本题是宽搜的模版题,不论怎么倒牛奶,A,B,C 桶里的牛奶可以看做一个三元点集 我们只要找到A桶是空的,B,C桶中的状态即可 #include <iostream> #include <cstring…...

单机docker-compose部署minio
单机多副本docker-compose部署minio 简单介绍 如果服务器有限可以单机挂载多硬盘实现多副本容错(生产不推荐) 部署好的文件状态 有两个重要文件 docker-compose.yaml和nginx.conf docker-compose.yaml是docker部署容器的配置信息包括4个minio和1个ng…...