软件测试面试题整理

一、人格相关问题

1、自我介绍结构

姓名+工作年限+简单介绍上家公司的行业+主要负责内容+个人优势+短期内的职业规划+应聘该岗位的原因

2、对未来的发展方向怎么看?

没有标准答案,职业规划来讲,可以分为技术层面和管理层面去说,技术层面的话可以是功能测试-性能测试-自动化测试(结合目前岗位所需的技能);管理层面可以是完成分配给自己的工作-独立负责项目-管理或者合理分配测试任务给各测试同事(如果大家有更好的回答结构,非常欢迎大家共享)

3、你对测试最大的兴趣在哪里?为什么?

从个人的性格、优势等来分析。

二、技术相关问题

1、测试理论以及应用
1、给你一个网站,你如何测试?
  • 从测试流程来说,从需求文档了解、准备测试环境以及编写测试用例、测试用例评审以及执行测试,集成测试以及回归测试等步骤进行测试。
  • 从测试种类来看,根据网站的需求,会从功能测试、兼容性测试、多语言测试、性能测试、安全测试等几方面来进行测试。2、如果针对一个bug,开发同事不认可,你会怎么处理?
    • 功能测试需要验证网站的功能是否符合用户需求,网站的功能是否正常以及一些常见异常情况下,功能的处理是否友好,网站的页面设计,交互流程是否有利于用户的操作习惯等方面;
    • 兼容性测试需要验证网站在不同的浏览器,不同的分辨率版本,不同的操作系统上是否正常,更进一步需要查看在不同设备(如电脑、平板、手机)上的运行是否正常;
    • 多语言测试需要验证在不同语言下网站功能是否正常,网站的页面UI是否友好等;
    • 性能测试需要验证网站在负载、压力、并发、持久性几方面的表现是否可接受;
    • 安全测试需要考虑SQL注入、密码加密、登录安全、文件上传下载安全等多方面的测试。
2、如果一个bug,开发同事不认可的话,你会如何处理?

首先是和开发沟通下具体不认可的原因,如果无法达成一致,需要找产品经理去确认更细的需求以确保各方能达成需求理解一致,如果是修改周期较长或者修改难度过大等其他原因,可以找领导协商后续的排期计划,以确保该问题是能够正常处理和跟进的。

3、说一下测试的流程?

依据项目大小,小项目的话在产品经理宣讲需求后,设计测试用例,并和项目组同事共同确认完是否有需要删减的或者增加的测试点。开始执行测试用例,并进行回归测试,最后跟踪上线。如果是大项目的话,除了在上述的流程外还要输出对应阶段的文档,如测试计划报告,测试用例大纲,集成测试报告以及最终的整体测试报告。

2、Linux
1、常用的Linux命令 (可以用"增删改查来进行记录")
  • PS:查看正在运行的进程;
  • netstat:检查Linux网络状态;
  • mkdir:创建目录
  • touch:创建文件
  • rm:删除文件
  • rmdir:删除目录
  • cd:切换目录
  • mv:移动目录
  • cat:查看文件
  • PWD:获取当前所在地址
  • sed:文本编辑
2、top命令可以看到哪些信息

监控Linux的系统状况,比如CPU、内存的使用,PID,TIME,STATE(状态)

3、find和grep的命令使用

二者的使用不同,如查找本地目录下某名的文件,find需要先加地址,再加上文件名称;grep只需要加上文件名称就可以

find ./* -name 文件名称

grep 文件名称 ./*

3、接口测试
1、cookie、session、token的区别

cookie 存储于客户端,是服务器发送到浏览器并保存的数据,存储用户的偏好设置,会话标识符等;有过期时间,过期后浏览器会自动删除;安全性较低,常用于跟踪用户会话,如自动登录等

session 存储于服务器,存储用户状态信息,每个用户有唯一sessionid,并存储在cookie中;过期时间取决于服务器配置;安全性较高;常应用于服务器跟踪用户状态场景,如购物车,用户登录状态等。

token 存储于客户端,也可以存在服务器端;是无状态身份验证机制,用于API的身份验证;加密字符串,包含用户身份信息等数据;过期时间可以设置;Token是自包含的,不需要服务器存储额外信息,减少了服务器的存储压力,但需要确保Token的安全性,防止被篡改;常用于跨域认证、单点登录(SSO)和移动应用的身份验证。

2、get和post的区别

主要在**用途、安全性、数据大小限制、数据传输(优先记住前四点)**等方面有所不同

  • 用途:get用于请求服务器发送数据,因此不会改变服务器上的数据;post用于向服务器提交数据,如表单数据,会改变服务器上的数据
  • 数据传输:get通过URL参数传递,可以在浏览器中看到传递的数据;post把数据放在请求体中(request body),在URL中不显示;
  • 安全性:GET较低,不适合传递敏感信息;post更为安全,但是数据可能会被拦截
  • 数据大小限制:GET较小,受到URL长度的限制(不同浏览器和服务器对URL长度限制不同),一般不超过2KB;post理论上没有限制
  • 缓存:GET请求可以缓存,效率更高;post请求通常不会缓存
  • 书签:GET因为数据在URL中,因此支持书签保存请求;post不支持
  • 历史记录:GET会保留在历史记录中,post不会
  • 可读性:GET数据在URL中,易于阅读和调试,post不易
  • 跨域请求:GET容易实现跨域请求,如CORS(跨域资源分享);POST若要实现,需要额外的配置
3、常见的状态码

2成功3重定向

  • 200 请求正常处理,并不代表成功处理业务
  • 301 永久重定向,资源已经分配新的URL
  • 302 临时重定向,资源已经分配新的URL
  • 404 找不到资源
  • 400 错误请求,如语法错误
  • 500 内部服务器错误
  • 503 服务不可用
  • 504 网关超时
4、计算机基础
1、说一说TCP三次挥手和四次分手

三次握手用于在TCP中建立可靠的连接,四次挥手是用于释放连接;

三次握手是首先客户端(序列号为X)向服务端(序列号为Y)发送数据请求(),然后服务器向客户端发送确认的数据包以及自己的数据包;最后客户端发送确认包给服务器,最终二者建立连接;

四次挥手是客户端向服务端携带发送完成标志的数据包,服务器返回收到的数据包,并发送携带发送完成标志的数据包;此时客户端先发送收到的数据包,等待两次最大生命周期,释放连接,同时服务器也释放连接。

2、什么是冒泡排序,可以用代码实现一下

冒泡排序实际上就是遍历待排序的数据,两两比较,如果前者大于后者,这进行交互,直至排序完成,就好像最小的数据项如同水泡一样浮上水面,使用Python进行实现如下

python 复制代码
a = int(input())
list1 = []
for i in range(a):
    list1.append(input().split())
def fun_b(list):
    n = len(list)
    for i in range(n):
        for j in range(0,n-1-i): # 从前向后比较
            if list[j] > list[j+1]:
                list[j],list[j+1]= list[j+1],list[j] # 注意这里的正确写法
fun_b(list1)
print(list1)
3、二进制1110转成十进制是多少,给出推算逻辑

1110 = 1 * 2³ +1 * 2² +1 * 2 +0 * 2º = 14

4、怎么理解零拷贝的(未答)
5、数据库
1、事务相关

在MySQL中事务支持四种隔离级别:read uncommitted 、read committed、repeatable read、serializable,其中级别最高为serializable。默认使用的是repeatable read。

2、多层连接(左连接、右连接、外连接、内连接)
内连接:将两张表中符合的数据展示出来
外连接:特例是左连接和右连接,也包括全外连接,如果
相关推荐
niuniu_66632 分钟前
Selenium 性能测试指南
selenium·测试工具·单元测试·测试·安全性测试
莓事哒33 分钟前
selenium和pytessarct提取古诗文网的验证码(python爬虫)
爬虫·python·selenium·测试工具·pycharm
软件测试曦曦3 小时前
如何使用Python自动化测试工具Selenium进行网页自动化?
自动化测试·软件测试·python·功能测试·测试工具·程序人生·自动化
互联网杂货铺5 小时前
黑盒测试、白盒测试、集成测试和系统测试的区别与联系
自动化测试·软件测试·python·功能测试·测试工具·单元测试·集成测试
Feng.Lee16 小时前
聊一聊缓存如何进行测试
功能测试·测试工具·缓存
爱学测试的雨果19 小时前
Postman —— postman实现参数化
软件测试·功能测试·测试工具·lua·postman
互联网杂货铺20 小时前
如何用Postman实现自动化测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
niuniu_6661 天前
安全性测试(Security Testing)
测试工具·单元测试·appium·测试·安全性测试
薄荷你玩_1 天前
简单粗暴,用浏览器调试端口绕过Selenium/Playwright/Puppeteer检测
selenium·测试工具
程序员三藏1 天前
Python+Jenkins+Allure Report接口自动化测试持续集成
自动化测试·软件测试·python·测试工具·ci/cd·jenkins·测试用例