软件测试面试题

一、测试基础
全面掌握软件测试理论基础、文档编写、测试流程
1.测试分为哪几个阶段
2.谈谈你之前测试的项目流程,在每个阶段的输出有哪些

  • 需求分析,探讨需求功能点,数据库表的设计,接口设计(需求文档)
  • 主管编写测试计划,任务分配,用例的设计,整理测试要点,用例评审(用例设计)
  • 测试过程中,bug的提交,jira,bug的生命周期(测试缺陷报告)
    3.谈谈敏捷模式的认识
    4.linux常见查看日志命令有哪些
    5.线上质量bug频频爆发怎么办
    6.如何分析一个bug是前端还是后端的问题
  • 抓接口请求信息,检查接口(用到了哪些接口),请求参数,返回的响应值
  • 如如果前端没有请求接口,或请求的适合参数与需求不符,前端的问题

二、数据库
掌握sql查询增删改查,
子查询
关联查询
分组查询:

  • 按照表中一个或多个字段,将数据进行分组,一般用于数据进行分类汇总
  • select后面的字段,只能是group by后面的字段
  • 如果展示其他的列,需要给该列用聚合(sum,max)函数
    分组过滤:
  • 分组之前的条件,用where
  • 分组之后的条件,用having
    1.常用的sql优化方式
    2.为什么select * 效率低:
  • 不需要的列会增加数据传输时间和网络开销,尤其是大类型的字段(text,varrchar)
  • 对于无用的大字段,会增加IO操作
  • 将失去mysql优化器“覆盖索引”策略优化的可能性
    3.什么是索引,为什么索引能增加查询效率
  • 数据库当成一本字典,索引就是这个字典的目录,一般会针对where条件后面的字段
  • 主键本身就是一种唯一索引
  • btree:二叉树算法
  • select * from where id = 4 #如果不加索引,一个个查找,11次
    原理:取中间一个数,大于的有一栋,小于的左移,每次减半:4次
    6
    3 9
    1 2 4 5 7 8 10 11
    4.索引是建的越多越好吗
    5.什么是ORM, 为什么要用ORM
    6.如何将查询的数据汇总到excel, txt文件
    7.关系型数据库和非关系型数据库的区别

三、Python
掌握python编程基础,面向对象高级编程,常用第三模块
1.字典和列表有什么区别
2.lambda函数是什么,在自动化测试中如何应用
3.浅拷贝和深拷贝的区别
4.类变量和实例变量的定义和区别
5.斐波那契数列
6.冒泡排序
7.用过的python的库哪些,分别用于工作有什么场景
8.装饰器是什么,装饰器一般在项目中用到哪些地方
9.利用python循环,输出1+11+111+1111+11111的值
软件测试面试题_第1张图片
改成1+12+112+1112+11112呢?

四、接口测试
1.目前市面上流行的接口大多有哪几种协议的接口:

  • http
  • https
  • rpc
  • websql
  • dubbo
  • (面试可以多说几句,我之前在项目中测过…怎么测的,用什么测的,如果只是简单回答,说明面试者积极性、综合能力和见识不突出)
    2.http协议有什么特点,能说说这些特点体现在哪些方面
  • 无状态 、灵活、无连接、简单快速
    3.postman中如何实现接口之间的关联:

4.接口未全部提测,怎么实现接口脚本间的自动关联
5.若请求的接口需要先登录后方可请求,如何进行接口测试
6.cookie和session的原理,区别是什么
7.dubbo接口如何测试:

  • 阿里巴巴开源的高性能服务框架,应用可以通过高性能rpc实现服务输出和输入,可和spring框架无缝集成
  • 搭建消费者
    8.接口测试断言从哪些方面去设计?接口测试也属于功能测试、黑盒测试
  • 状态码 200,401,403,500
  • 返回值,返回值里面很多数据是动态的
  • 数据库校验
  • 空校验,异常校验(数据异常,环境异常,前置条件异常)
  • 幂等性
  • 流程节点限制

五、自动化测试
UI自动化:APP,h5,小程序(元素定位)
接口自动化:http,dubbo… 自动化运行环境、自动化如何分布式、批量运行、如何持续集成
1.三种等待时间的区别和场景应用:

  • 强制等待、隐式等待()、显式等待
    2.之前项目做过自动化测试吗,如何推进的
  • 用selenium +python
  • 实现原理:unittest/pytest
  • 数据驱动:excel
  • 关键字驱动:封装了哪些方法
  • 遇到了哪些问题:准备几个自动化遇到的问题,如何解决的,
  • 自动化脚本(成千上万级别的用例)对公司项目产生了什么样的价值(成为公司固定资产,不管是开发、产品还是运营都会用到这个自动化脚本,可以帮我们线上监控、自动化回归、造数据、跑数据,提高了迭代效率,释放了很多人力;功能加自动化,能校验出很多因为代码提交、新功能上线产生的隐藏bug;性能,对接口进行压测,上线之后能承受多少并发量 )
    3.自动化用例在什么环境下运行,如何批量运行
    docker容器 (干净的环境,分布式) + jenkins (定时构建) + git (版本管理)
    4.RF框架用过吗,关键字驱动的原理,如何开发系统关键字
    5.selenium的底层核心原理是什么,如何开发系统关键字
    6.requests中的session会话管理的作用是什么
    7.unittest/pytest有什么区别
    8.谈谈你对自动化分层思想的理解:
  • 分层:
    业务逻辑:登录 - 输入用户名、输入密码、点击登录
    关键字驱动:
    业务层关键字(退货、发货)
    逻辑层关键字(公共方法:随机数,随机号码,数据库)
    二次封装 click()
    数据驱动:
    配置文件:
    =>能独立根据公司需求搭建自动化测试框架
    9.自动化用例在什么环境下运行,如何批量运行
    10.有没有独立搭建过自动化测试框架
    11.测试开发在企业中具体是做什么的

注意问题:
缺少测试思维,开发思维
自动化接口实战项目经验
技术难点
自动化高级、性能高级、全栈高级

参考:
https://www.bilibili.com/video/BV1LT4y1j7ny?p=3

你可能感兴趣的:(测试开发,软件测试)