半导体基础
半导体是介于导体和绝缘体之间的一种介质,在不同条件下表现出不同的导电性或者不导电特性,
电子半导体器件材料大部分为硅,锗等元素
本征半导体:完全不含杂质的纯净半导体,因为不含杂质,其中载流子仅仅只靠本征激发,导电性能很差。与之相对的是非本征半导体,参杂了不同分为N型半导体和P型半导体,由于两种半导体制作在同一片硅片上,且N型多为自由电子,P型多为空穴,由于扩散作用,中间会形成电场空间,也就是PN结:具有单向导电性,电流只能正极进去,负极出来,正是由于二极管内部独特的PN结。
扩散运动和漂移运动
P型半导体和N型半导体结合之后,P区空穴载流子和N区自由电子在他们交界处就形成了自由电子和空穴的浓度差。
由于P区的空穴浓度比N区高,空穴就往N区扩散,而N区的自由电子浓度比P区高,自由电子往P区扩散,P区和N区交界面附近,形成了一个很薄的空间电荷区,在这个区域内,多子已扩散到对方并消耗。
由于P区N区的杂质离子,一个带负电荷,一个带正电荷,在空间电荷区形成内电场,扩散运动的进行使空间电荷区变宽,内电场也变强了。
这个内电场一方面阻止了扩散运动的进行,扩散就不容易进行下去;另一方面使空穴(少子)从N区往P区漂移,自由电子从P区往N区漂移,这个漂移可不是汽车漂移,是受N区高电势,P区低电势的内电场影响产生漂移,叫做少子漂移。
慢慢的空间电荷区就稳定了。总结来说多子运动叫做扩散运动,少子运动就是漂移运动,当两种运动达到动态平衡就产生了PN结。在PN结加上相应的电级引线和管壳,就构成了半导体二极管。由P区引出的电极成为了正极,由N区引出的电极成为了负极。
理解:P区多子为空穴(带正电)N区多子为电子(带负电),由于扩散作用,空穴和电子分别操作N和P区运动,在P,N区交界处本身会形成一个内电场,由于扩散作用影响,内电场强度也变强了。之后P区边缘是电子,N区边缘是空穴,这个时候又会有漂移运动,也就是不同区的少子会受到电场力的作用会朝对方区域边缘移动。叫少子飘逸
面试问题:
二极管
三极管
CMOS
同步异步
竞争冒险现象
高通低通滤波器
经纬面试准备:
1.软件测试流程:
->需求分析:测试人员参与需求分析,理解系统的功能和非功能性要求。提前发现潜在问题,制定合理测试计划
->测试计划制定:根据需求制定测试计划,确定测试范围、资源、时间、目标等
->测试用例设计:测试人员根据需求编写详细的测试用例,覆盖不同场景。
执行测试:通过手动或自动化测试执行测试用例,捕获和记录软件在不同场景下的行为
缺陷管理:测试过程中发现的缺陷要记录。修复后进行回归测试确保修改没有引入新的问题
测试报告:总结测试结果,生成详细的测试报告
验收测试与发布:在所有缺陷修复之后并且回归测试之后,进行最终的验收测试。确定系统功能符合要求之后进行发布;
2.需求分析阶段测试介入:
需求澄清:需求分析阶段的介入有助于厘清需求中不明确和矛盾的地方,提早发现问题,防止开发阶段的返工;
测试计划的制订:测试计划的指定需要参考需求,才能合理分配时间和资源
测试环境搭建:测试环境要尽可能与生产环境一致,确保测试结果的有效性;
需求分析阶段的介入有助于测试用例的思考,确保所有功能都能被相应的测试覆盖
3.黑盒白盒测试
白盒测试:白盒测试关注的是软件内部的实现,也就是深入到了代码结构层面,测试会通过覆盖代码的每一条路径和分支确保逻辑正确;
常见方法:路径覆盖,分支覆盖,语句覆盖
特点:主要用于开发人员,测试代码逻辑是否正确
黑盒测试:不关注软件的内部实现,而是关注软件功能,测试人员根据需求文档编写测试用例,检查输入输出是否符合预期
常用方法:等价类划分,边界值测试,状态转换测试,因果图
特点:适用于功能测试,用户通过测试功能和性能来验证系统是否符合要求
4.设计测试用例方法
1.等价类划分:将输入数据划分若干类,每一类中的所有数据都被认为是等效的,测试时需要其中一项就可以代表与一类,尽量减少测试用例数量;同时尽可能覆盖多的功能
2.边界值分析:边界值是最容易出错的地方,因此应该关注输入变量的边界情况
3.因果图分析:通过因果图描述输入条件和输出条件的关系,从中提取测试用例
4.状态迁移测试:
你了解到的测试方法
-
功能测试:
- 目标是验证软件的功能是否符合需求文档的规定,不关注内部实现。主要通过黑盒测试方法进行。
-
性能测试:
- 负载测试:测试系统在高负载下的表现,确保能在预期的负载范围内正常工作。
- 压力测试:超出正常负载范围,测试系统的崩溃点。
- 容量测试:测试系统在增加用户或数据量时的表现。
-
回归测试:
- 主要目的是在修改或增加功能后,确保新代码没有引入新的问题,旧功能依然正常。
-
冒烟测试(Smoke Testing):
- 在每次构建完成后,进行快速测试,验证系统的基本功能是否正常运行。确保软件版本足够稳定,适合进一步深入测试。
-
白盒测试:
- 测试人员需要了解代码的内部结构,测试代码的逻辑是否正确。常用的白盒测试方法包括语句覆盖、分支覆盖、路径覆盖。
-
黑盒测试:
- 测试人员不需要了解代码内部结构,直接根据功能需求文档编写测试用例。常用的黑盒测试方法包括等价类划分、边界值分析、决策表测试等。
-
单元测试:
- 针对单个模块或函数的测试,验证其功能是否正确。通常由开发人员编写。
-
集成测试:
- 在多个模块组合后进行测试,确保模块之间接口和交互正常。
-
系统测试:
- 完整系统的测试,验证整个软件系统是否符合用户需求和设计目标。
-
验收测试:
- 在系统交付给用户前,进行最终的验证,确保软件能满足用户的实际需求。
2.QNR面经
字符串里找出含子字符元素的最小字串
sql添加一列:alter table add cloumn name