软件测试经典面试题(小题汇总)[通俗易懂]

整理收集一些大家的题,自己来作答,回答不妥或者不全的还请大家指正网络(一)简单描述下TCP协议TCP:传输控制协议,是传输层通信协议。它有面向连接、可靠、字节流传输等特点TCP建立连接时,需要三次握手协议TCP三次握手的过程如下:客户端发送SYN保温给服务端,进入SYN_SEND(SEQ=X)状态服务端收到SYN保温,回应一个SYN(SEQ=Y)ACK(ACK=X+1)报文,进入…

大家好,又见面了,我是你们的朋友全栈君。

整理收集一些自己遇到的面试题及部分大家的题,自己来作答,回答不妥或者不全的还请大家指正

网络

(一)简单描述下TCP协议

TCP:传输控制协议,是传输层通信协议。它有面向连接、可靠、字节流传输等特点
TCP建立连接时,需要三次握手协议
TCP三次握手的过程如下:

客户端发送SYN报文给服务端,进入SYN_SEND(SEQ=X)状态
服务端收到SYN报文,回应一个SYN(SEQ=Y) ACK(ACK=X+1)报文,进入SYN_RECV状态
客户端收到服务端的SYN报文,回应一个ACK(ACK=Y+1)报文,开始建立连接

TCP/IP作用是什么?

TCP/IP协议是一套网络通信标准,让全世界的各种不同的设备之间可以进行通信

TCP与UDP的区别?

TCP传输控制协议 。UDP用户数据报协议
TCP对资源要求比较多,UDP对资源要求比较少
TCP可以保证数据的正确性,UDP有可能会丢包
TCP可以保证数据的顺序,UDP不会保证

(二)网络7层模型是那7层?列举一些具体的应用实例

从下到上,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
物理层:同轴电缆、接收器、发送器等
数据链路层:网卡、交换机、网桥
网络层:路由器、网关
传输层:TCP协议、UDP协议
会话层:SQL、ASP、 PHP等
表示层:ASCII、JPEG、PNG、MP3等
应用层:telnet、ssh、http、smtp等

怎么测试网络是否连通

使用ping命令

什么方式可以是外网连接到家里主机

telnet

如何让外网访问家里的终端?它的原理是什么?

  1. 电脑上开启远程桌面
  2. 使用teamview
    他们的原理是:
  3. 你和对方机器建立一个Socket连接
  4. 在本地虚拟一个对方的系统
  5. 对方系统会在这个Socket连接上实时发送它系统状态的数据
  6. 收到的数据,是本虚拟系统通过这个数据还原对方系统操作
  7. 本地操作这个虚拟操作系统,会发送数据命令到对方机器
  8. 对方继器接收指令,通过Hook(底层钩子)传给操作系统
  9. 然后循环

访问一个网址会经历哪些流程?

以下几个简单的流程

  1. 首先需要通过域名找到IP,如果本地缓存没有需要请求DNS服务器
  2. 得到IP后开始与目的主机进行三次握手来建立TCP连接
  3. 连接建立后进行HTTP访问,传输病获取网页内容
  4. 传输完成后与目的主机四次挥手断开TCP连接

Linux

Linux常用命令有哪些,并简述他们的作用

ls 查看当前目录
df-h 查看磁盘使用情况
kill 杀掉进程
top 查看当前主机状态
mv 移动文件
cp 复制文件
netstat-a 查看端口使用状态
rm 删除
cat 查看文件

vim怎么退出

q 不保存直接退出
wq 保存后退出
q! 强制退出

vim怎么快速查找

按下ESC输入 再输入 空格 +查找内容

如何查找日志关键词上下文

# 查看文件关键词前后10行
grep 关键词 -C 10 文件名 catalina.out
# 查看文件关键词后10行 a=after
grep 关键词 -A 10 文件名 catalina.out
# 查看文件关键词前10行 b=before
grep 关键词 -B 10 文件名 catalina.out

怎样一页一页地查看一个大文件的内容呢?

cat filename.txt | more 通过管道命令和more实现

如何查看linux端口号被占用

netstat -a 查看端口状态

如何查看进程状态?

ps -ef | grep 进程名

chown是什么?grep是什么?

chown 改变文件的拥有者和组
gerp 查找文件里符合条件的字符串

如何查看日志?

tail -f 日志文件名

5个客户端通过TCP连接到主机,如何查看这5个连接

netstat -nat|grep ESTABLISHED

数据库

哪些方法可以提高数据库查询效率?

  1. 建立索引,利用索引
  2. 只查询必要的字段
  3. 合理的处理NULL字段
  4. 慎用like等通配符

索引设计的时候要注意什么?

  1. 索引字段长度不能太长
  2. 索引的个数不能太多

数据库更新语句?GROUP BY 如何使用?

UPDATE TABLENAME SET 字段名称 = 新值 WHERE 列名称 = 旧值

GROUP BY 一般常用于对查询结果进行分组

# 如果想要对结果进行分组统计,加上SUM函数即可
SELECT SUM(列名1) 列命2 FROM TABLENAME
WHERE 列名1 列名2 
GROUP BY 列命1

如果一个数据表有成千上万条记录,访问时很慢,有哪些方法可以优化?
Redis的优势是什么

  1. 读写快,Redis是将数据放在内存里,而内存的读取速度比硬盘要快,所以Redis性能优势比其他数据库要好
  2. 并发性能好

编程

HTTP协议中GET和POST的区别

在http协议中
get方法一般用来从服务器获取数据
post方法一般用来向服务器上传数据

HTTP状态码的含义

状态码 描述
1XX 服务器收到请求,需要请求者继续执行操作
2XX 成功,操作被成功接收并处理
3XX 重定向,需要进一步的操作以完成请求
4XX 客户端错误,请求包含语法错误或无法完成请求
5XX 服务器错误,服务器在处理请求的过程中发生了错误

常用的如下

状态码 返回 描述
200 OK 请求成功。一般用于GET与POST请求
400 Bad Request 客户端请求的语法错误,服务器无法理解
401 Unauthorized 未注册或需要用户的身份认证
403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404 Not Found 服务器无法根据客户端的请求找到资源
500 Internal Server Error 服务器内部错误,无法完成请求
502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求
505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理

HTTP请求Header里包含哪些内容

浏览器F12随意截取了一段,可以看看

# 主机名
Host: cn.bing.com
# 你当前访问的方式,一般为浏览器版本,或者APP
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
# 语言信息
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
# 编码信息
Accept-Encoding: gzip, deflate, br
# HTTP请求应答模式,KeepAlive模式,也有非KeepAlive模式
Connection: keep-alive
# 本地缓存
Cookie: SNRHOP=I=&TS=; _EDGE_S=mkt=zh-cn&F=1&SID=0227DE6146F26D360001D09247DC6CAA; _EDGE_V=1; MUID=0791871266626F2726E289E1674C6E73; _SS=PC=MOZI&SID=0227DE6146F26D360001D09247DC6CAA; SRCHS=PC=MOZI; SRCHD=AF=MOZLBR; SRCHUID=V=2&GUID=552BA37B5F5640E0BFCB0985B1F1AF85&dmnchg=1; SRCHUSR=DOB=20200624&T=1592977196000; MUIDB=0791871266626F2726E289E1674C6E73; SRCHHPGUSR=HV=1592977466&WTS=63728573996&CW=1920&CH=432&DPR=1&UTC=480&DM=0; ipv6=hit=1592980798172&t=6
# 是对应服务器的响应头部信息,Content-Security-Policy: upgrade-insecure-requests
Content-Security-Policy: upgrade-insecure-requests
# 1,表示只是客户端支持
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

白盒测试方法有哪些

语句覆盖
使程序中的每个可执行语句都能执行一次的测试用例

判定覆盖
对于判断语句,在设计用例的时候,要设计判断语句结果为True和False的两种情况

条件覆盖
设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满足一次

判定条件覆盖
设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次

条件组合覆盖
设计足够的测试用例,使得程序中每个判断的所有可能的条件取值组合都至少出现一次

路径覆盖
设计所有的测试用例,来覆盖程序中的所有可能的执行路径

白盒测试覆盖率如何保证

使用条件组合覆盖达到100%
让程序中每个判断的所有可能条件取值组合都至少出现一次
这就就可以保证语句覆盖率、判定覆盖率、条件覆盖率和判定-条件覆盖率必为100%
关系如下:
参考知乎作者-吃完饭后不刷牙(https://zhuanlan.zhihu.com/p/43007988)
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129204.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html5空格代码怎么写_html怎么添加空格

    html5空格代码怎么写_html怎么添加空格本篇文章为大家介绍的是HTML的空格代码的写法,“ ”代码的用法,还有几种空格方式的解释,都在文章中,现在开始往下看吧。首先,我们知道这HTML网页中插入多个空格间隔是需要特殊字符编码的。如果是直接敲入多个空格键的话,虽然看似代码中有了多个空格效果,但其实在浏览器中还是只有1个空格间隔位置的。接下来教大家如果输入html空格字符的话,多个空格字符是如何输入的?我们采用直接复制空格字符与DW软件输入空格字符的两种方法介绍:web前端全栈资料粉丝福利(面试题、视频、资料笔记、进阶路

    2022年4月19日
    364
  • 2021第四届浙江省大学生网络与信息安全竞赛预赛部分Writeup

    2021第四届浙江省大学生网络与信息安全竞赛预赛部分Writeup前言:这次比赛感觉比去年难多了,难题都没解出来,还是太菜了orz。WebCheckin纯签到题,题目给了一个网址,直接burpsuite抓包,在响应头上拿到flagREcrackPYC题目提供python字节码,直接找到关键部分进行人工反编译,脚本如下:”””19174SETUP_LOOP48(to224)176LOAD_NAME11(range)…

    2022年7月13日
    16
  • Java实现MD5算法

    Java实现MD5算法MD5算法工具类importjava.security.MessageDigest;/**加密工具**@author刘彦青***/publicclassEncryptUtil{ /**MD5加密 * *@paramjiami *源字符串 *@return加密后的字符串*/ publicfina…

    2022年7月9日
    18
  • VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体-57

    VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体-57 PrivateDeclareFunctionReleaseCaptureLib"user32"()AsLongPrivateDeclareFunctionSendMessageLib"user32"Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwP…

    2022年5月22日
    40
  • qq群大数据可视化查询_QQ数据库

    qq群大数据可视化查询_QQ数据库2009年QQ群关系数据库可视化查询器优化推广获客神器十年老数据库最近很多人问这个QQ群关系数据库的事儿,拉出来聊一聊,顺带做了部分优化之前这个是被很多大神玩丢下来的东西,近几年手游市场的兴起,又成了手游市场的获客神器2012年之前封存的群关系数据,收录了将近8000万条群组信息,包含各种行业群,交友群,游戏群,手游推广的主要客户群体还是来源于游戏相关的群。简单讲,就是通过QQ群关系数据库,获取十年前的端游客户,从而转化为手游的消费者。为何要用这么

    2022年10月2日
    6
  • 中国超级计算机的发展过程_超级计算机最新发展史

    中国超级计算机的发展过程_超级计算机最新发展史截至2009年初的数据过去,超级计算机主要用于军事,科学和航空航天等高端领域.如今,超级计算机已进入平民时代中国计算机发展,与人们的生活密不可分.随着中国第一台超级计算机“魔方”跻身世界前十名,中国逐渐成为超级计算机的强国.超级计算机将更频繁地扮演平民的“行军”,进入家庭,促进公共服务设施,甚至帮助人们治愈目前无法治愈的疾病……项目总投资:超过100亿元项目期限:1975年至今中国超级计…

    2022年10月19日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号