作者:爱塔居
专栏:测试
1、计算机网络七层协议:物理层、数据链路层、网络层、传输层、表示层、会话层、应用层(面试问过这个)
2.TCP/IP四层模型:应用层、传输层、网络层、网络接口层(笔试问过)
3.Http和Https的区别:
①Http运行于TCP之上,明文传输,客户端和服务器都无法验明对方的身份。Http运行于SSL之上,SSL运行于TCP之上,是添加了加密和认证机制的Http
②Http的端口是80端口,Https的端口是443端口
③消耗资源不同。Https通信由于加减密处理会消耗更多的CPU和内存资源
④开销不同。Https需要向机构购买证书。
4.对称密钥和非对称密钥(面试问过)
对称加密和非对称加密_爱塔居的博客-CSDN博客
5.TCP和UDP区别(面试问过两回)
①TCP面向连接,UDP无连接,发送数据时不需要建立连接
②TCP提供可靠服务,通过TCP连接传送的数据,无差错、不丢失、不重复,且按序到达,UDP尽自己最大努力交付,不保证可靠交付
③UDP具有较好的实时性,工作效率比TCP高,适用于高速传输和实时性较高的通信或广播通信。
④每一条TCP连接都是点对点的。而UDP支持一对多、多对一、一对一、多对多的交互通信
⑤TCP对系统资源要求较多,UDP对系统资源要求较少。
6.三次握手和四次挥手/为什么三次,为什么四次(面试问过)
详谈三次握手与四次挥手_爱塔居的博客-CSDN博客
7.接口和抽象类的区别(面试问过)
①抽象类可以定义构造函数,接口不能定义构造函数
②抽象类可以有抽象方法和具体方法,而接口中只能有抽象方法
③抽象类中的成员权限可以是public、默认、protected(抽象类中抽象方法就是为了重写,所以不能被private修饰),而接口中的成员只能是public(方法默认:pubic abstrat、成员变量默认:public static final)
④抽象类中可以包含静态方法,而接口中不可以包含静态方法
⑤类可以实现很多个接口,但只能继承一个抽象类
8.JDK、JRE、JVM三者之间的关系
JDK是Java开发工具包,是Java的核心,包括了JRE、Java工具和 Java基础类库
JRE是Java运行环境,包含JVM标准实现,以及Java核心类库
JVM是Java虚拟机,是整个Java实现跨平台的最核心的部分。
9.重写和重载的区别(面试问过)
重写发生在父类子类之间,方法名必须相同,返回值类型必须相同,参数列表必须相同,访问权限不能比父类中被重写的方法的访问权限更低。构造方法不能被重写。
重载具有相同的方法名,方法的参数列表必须不同,访问修饰符、返回值类型可以相同也可以不同
10.进程和线程的区别
进程是程序运行和资源分配的基本单位。线程是cpu调度和分派的基本单位。
11.创建线程的几种方式(面试问过)
①通过继承Thread类创建线程
②通过Runnable接口创建线程
③通过Callable和Future创建线程
④通过线程池创建线程
12.Jvm的主要组成部分
①类加载器②运行时数据区③执行引擎④本地库接口
13.HTTP状态码(面试问过)
1XX:消息状态码
2XX:成功状态码
3XX:重定向状态码
4XX:客户端错误状态码
5XX:服务端错误状态码
比较常见的具体状态码:200:请求成功;301:永久重定向;302:临时重定向;404:无法找到此页面;405:请求的方法类型不支持;500:服务器内部出错
14.MySQL事务的四大特征
①原子性:事务中的所有操作要么全部执行成功,要么全部失败回滚,不能只执行其中一部分操作
②隔离性:事物间是互相隔离的,每个事务对其他事务的操作都是透明的,可以防止并发执行的事务之间产生脏读、不可重复读、幻读等问题
③一致性:事务执行前后,数据路的完整性约束没有被破坏,数据总是从一个一致性状态转移到另一个一致性状态
④持久性:事务完成后,对数据库的修改将永久保存在数据库中,即使系统故障也不会丢失。
15.查询语句知识点(笔试考过选择)
[NOT] LIKE '<匹配串>' [ESCAPE '<换码字符>']
注意%和_这两个通配符的区别。%任意长度,_任意单个字符,也要注意语句里没有as
举例:查询所有姓刘的学生的姓名、学号和性别
select Sname,Sno,Ssex from Student where Sname like '刘%';
16.聚合函数的使用(笔试考过写mysql语句)
COUNT(*) 统计元组个数
COUNT([DISTINCT|ALL] <列名>) 统计一列中值的个数
SUM([DISTINCT|ALL] <列名>) 计算一列值的总和(此列必须是数值型)
AVG([DISTINCT|ALL] <列名>) 计算一列值的平均值(此列必须是数值型)
MAX([DISTINCT|ALL] <列名>) 求一列值的最大值
MIN([DISTINCT|ALL] <列名>) 求一列值得最小值
举例:查询学生总人数
SELECT COUNT(*) FROM Student;
查询选修了课程的学生人数
SCLECT COUNT(DISTINCT Sno)
FROM SC;
计算选修1号课程的学生平均成绩
SELECT AVG(Grade) FROM SC WHERE CNO='1';
17.一条好的测试用例可以透露哪些信息(面试问的)
①功能测试:验证软件的功能是否按照预期工作,是否满足用户需求
②边界测试:测试软件在边界情况下的表现,找出可能存在的错误或问题
③异常处理:测试软件在处理异常情况下的表现,包括错误输入、无效操作。
④性能测试:测试软件在各种负载情况下的性能表现,包括响应时间、吞吐量
⑤兼容性测试:测试软件在不同平台、操作系统或浏览器上的兼容性
⑥安全测试:测试软件的安全性,包括身份验证、权限管理等。
18.(面试问的)测试用例设计的重点:确认测试范围、测试目标和测试方法,一个好的测试用例设计提高测试的效率和准确性,帮助发现软件中的缺陷,提高软件的质量。
19.软件测试用例包含的内容有哪些?(面试问的)
软件测试的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。
用例编号有一定的规则,一般是项目名称+测试阶段类型+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪
测试标题:对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。
重要级别:定义测试用例的优先级别,如果软件需求的优先级为高,则针对该需求的测试用例优先级也为高。
测试输入:提供测试执行的各种输入条件。
操作步骤:提供测试执行过程的步骤。
预期结果,提高测试执行的预期结果,预期结果应该根据软件需求中的输出得出。