软件测试面试问题汇总

1.一个url请求的全过程

  • 总体来说分为以下六个步骤:
  • 1、DNS解析
  • 2、TCP连接
  • 3、发送HTTP请求
  • 4、服务器处理请求并返回HTTP 文
  • 5、浏览器解析渲染页面
  • 6、连接结束

2.tcp的三次握手和四次挥手

参考:TCP协议 “3次握手,4次挥手” 详细解释_echo-CSDN博客

3.中间件测试

4.微服务测试

5.python怎么操作数据库

  •  1.首先安装pymysql     
  • 2.导入库    
  • 3.建立连接 conn = pymusql.connect()
  • 4.建立游标  
  • 5.发起请求 curs.execute(sql,args)
  • 6.得到结果  curs.fetchone()  或者curs.fetchall()
  • 7.关闭游标 curs.close()
  • 8.连接   conn.close()

6.python 切片

7.python中对列表进行增删改查

参考:python中列表的常用操作增删改查 – FANDX – 博客园

8.判断bug前端还是后端 :测试人员如何判断是前端的bug还是后端的bugp>

  • 通常可以利用抓包工具来进行分析。可以从三个方面进行分析:请求接口,传参,响应。
  • 1. 请求接口url是否正确,如果请求的接口url错误,为前端的bug
  • 2. 传参是否正确。如果传参不正确,为前端的bug
  • 3. 请求接口url和传参都正确,查看响应是否正确,如果响应内容不正确,为后端bug
  • 4. 也可以在浏览器控制台输入js代码调试进行分析

如果定位为后端的bug,可以进一步通过以下方法精确定位是哪里出bug:

  • 1. 查看 错日志,通过日志分析问题点
  • 2. 查看数据库确认数据的正确性
  • 3. 查看缓存是否正确

9.get和post的区别

  • 1、请求参数位置不同:
  • get,通过拼接url进行传递参数;
  • post,通过body体传输参数
  • 2、缓存性:
  • get请求是可以缓存的
  • post请求不可以缓存
  • 3、后退页面的反应
  • get请求页面后退时,不产生影响
  • post请求页面后退时,会重新提交请求
  • 4、传输数据的大小
  • get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)
  • post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。
  • 5、安全性
  • 这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,防君子不防小人就是这个道理。对传递的参数进行加密,其实都一样。

10.http和https的区别

  • 1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  • 2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  • 3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • 4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的 络协议,比http协议安全。

11.https用到什么证书

      https=http+ssl

      SSL证书(SSL Certificates)是HTTP明文协议升级HTTPS加密协议必备的数字证书

12.任务重,时间紧的时候怎么分配测试任务

      时间紧,任务重,该如何保证测试质量 软件性能测试 – 松勤 – 松勤软件测试-软件测试在线教育领跑者-国内最专业的软件测试学习平台

13.app用户体验测试

  •     1).横竖屏测试
  •     2).兼容
  •     3).弱点弱 测试
  •     4).稳定性
  •     5).响应时间
  •     6).安装包大小
  •     7).用户习惯
  •     8).耗电、流量
  •     9).可操作控件的幂等测试。当用户快速点击APP中的按钮等可操作控件时,会出现什么效果li>
  •     10).用户引导
  •     11).友好提示
  •     12).设计风格。和系统风格一致,本身风格一致

14.delete,drop,truncate区别

  • 1、delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除
  • 2、delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚,
  • 3、执行的速度上,drop>truncate>delete

15.数据库约束

  •        1、主键约束(Primay Key Coustraint) 唯一性,非空性
  •   2、唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个
  •   3、检查约束 (Check Counstraint)对该列数据的范围、格式的限制(如:年龄、性别等)
  •   4、默认约束 (Default Counstraint)该数据的默认值
  •   5、外键约束 (Foreign Key Counstraint)需要建立两表间的关系并引用主表的列

16.python for..in..循环和while循环的场景

    注意:python 无do-while循环

  • for..in..循环:知道循环执行的次数
  • while循环:不知道循环执行的次数

17.cookie,session和token的区别

  • 1)cookie数据存放在客户的浏览器上,session数据放在服务器上。而token是接口测试时的鉴权码,一般情况下登陆后才可以获取到token,然后在每次请求接口时需要带上token参数。
  • 2)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session,session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie
  • 3)可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie

18.app端和web端测试区别

     安装、兼容、性能

19.元组和列表的异同

  • 相同点:都是有序的;都是异构的,能够包含不同类型的对象,都支持切片和索引
  • 不同点:声明方式不同,元组使用(),列表使用[];元组是不可变的,列表是可变的

20.python常用的数据结构

    数字、字符串、列表、元组、集合、字典

21.android和iOS的测试区别

  • 1 . Android长按home键呼出应用列表和切换应用,然后右滑则终止应用;
  • 2. 多分辨率测试,Android端20多种,ios较少;
  • 3. 手机操作系统,Android较多,ios较少且不能降级,只能单向升级;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash);
  • 4.  操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等;
  • 5. push测试:Android推送可以应用绕过系统限制;IOS只能根据系统配置来推送。
  • 6.  安装卸载测试:Android的下载和安装的平台和工具和渠道比较多,ios主要有app store,iTunes和testflight下载;
  • 7.  升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本 ),对于Android若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法)

22 .mq

    生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由MQ服务端给其推送消息。

    作用:消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构

    主要的MQ产品包括:RabbitMQ、ActiveMQ、RocketMQ、ZeroMQ、Kafka、IBM WebSphere 等。

23.拆箱装箱
    装箱就是  自动将基本数据类型转换为包装器类型;拆箱就是  自动将包装器类型转换为基本数据类型。
24.深拷贝浅拷贝
    浅拷贝—能复制变量,如果对象内还有对象,则只能复制对象的地址
    深拷贝—能复制变量,也能复制当前对象的 内部对象

25.数据库除了增删改查还会啥
    安全性能,数据安全,数据备份,数据还原,数据采集,数据挖掘,备份恢复、数据索引、访问权限

26.状态码:

  • 1xx通知信息
  • 2xx成功  200 请求成功
  • 3xx重定向   302 重定向
  • 4xx客户端错误  400 错误请求 ,401未授权,403禁止,404未找到,405方法未允许
  • 5xx服务端错误 500内部服务器错误,502 关错误,503服务无法获得,504 关超时

27.在linux中如何解压

     在 Linux 中通常比较常用的是 tar 命令,zip 和 rar 命令则是 Windows 中比较常用

     1.tar命令

     2. rar 命令

     3.zip命令

28.常用的Linux命令

  • ls          显示文件或目录

              -l           列出文件详细信息l(list)

              -a          列出当前目录下所有文件及目录,包括隐藏的a(all)

  • mkdir         创建目录

             -p           创建目录,若无父目录,则创建p(parent)

  • cd               切换目录
  • touch          创建空文件
  • echo            创建带有内容的文件。
  • cat              查看文件内容
  • cp                拷贝
  • mv               移动或重命名
  • rm               删除文件

            -r            递归删除,可删除子目录及文件

            -f            强制删除

  • find              在文件系统中搜索某文件
  • wc                统计文本中行数、字数、字符数
  • rmdir           删除空目录
  • tree             树形结构显示目录,需要安装tree包
  • pwd              显示当前目录
  • ln                  创建链接文件
  • head、tail    显示文件头、尾内容

28. 络的七层协议

   物理层,数据层, 络层,传输层(tcp协议),会话层,表现层,应用层(http协议)

29.selenium框架测层级目录

30.request+pytest框架的层级目录

31.测试前应该准备什么p>

32.非功能案例

另参考:2021非常全的接口测试面试题及参考答案 – 51Testing软件测试

文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树首页概览23043 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月6日
下一篇 2021年10月6日

相关推荐