软件测试面试题及答案

1、自我介绍
2、sql联表查询、分组查询、排序、求和等。
3、数据库索引相关的问题(非创建索引和索引的作用)
4、数据库分区分表相关问题
5、自动化架构如何写,写自动化的步骤,注重自动化设计的思维能力
6、接口依赖、接口的入参出参依赖怎么处理,要考虑数据串掉的问题
7、自动化如何断言
8、写接口自动化的时候遇到哪些问题、如何解决的。(考验技术的深度,问题越深、代表涉及的技术越高、能力也越强)
9、如何写好自动化接口测试,谈谈自己的理解。
10、项目中自动化是如何持续集成的
11、算法,当面手写
12、同步处理和异步处理的理解,如何用在项目中的,详细介绍
13、幂等的理解
14、做过的项目技术架构介绍、应用级别的输入输出、画架构图
15、数据库新增一个字段、测试需要考虑什么?除了功能内容的测试设计
16、测试设计有哪些点
17、异常测试设计思路有哪些
18、非关系型数据库redis如何测试,以及理解
19、中间件dts,metaQ测试的时候关注什么?
20、消息中间件消费相关的内容
21、全链路测试的理解?如何做好全链路?全链路测试需要注意什么?
22、linux命令熟悉哪些以及介绍
23、高级测试与中级测试的区别
24、目前在职离职、住在哪,自己的职位发展方向,薪资待遇有啥期望
25、还有什么需要问的?

拆解一下,总共25道题,分以下几个维度:
个人经历/反问面试:1、14、23、24、25
Linux 类:22
数据结构与算法:11
计算机/编程/测试基础:12、13、15、16、17
数据库类:2、3、4、18
自动化类:5、6、7、8、9
CI CD:10
中间件/全链路:19、20、21

2、sql联表查询、分组查询、排序、求和等。
联表查询 left/right/inner join
分组查询 group by
排序 DESC ASC
求和 sum count

3、数据库索引相关的问题(非创建索引和索引的作用)
非创建索引,不清楚
索引的作用 加快查询效率 常见的用唯一索引

4、数据库分区分表相关问题
分区分表的作用
会评审业务数据库,从数据量级、数据查询耗时等方面判断数据表是否需要进行分区分表
分区表分区的字段,必须为主键,字段的值,必须自增
一般会进行时间分区、关联字段分表,创建索引来优化查询效率

5、自动化架构如何写,写自动化的步骤,注重自动化设计的思维能力
需求分析,判断项目是否适合进行自动化
自动化框架选择,成本/产出比 ROI 考虑
自动化框架搭建,自动化脚本撰写,自动化脚本执行
问题记录,反馈 发送本次报告给相应人员
优化迭代自动化脚本(10个sheet页,空行读取了一个null值,为什么要优化,缺点用null) 二次封装 PO模式 数据分离 数据驱动

断言,sql 数据库,或json
团队有多少人,工具,是否优化框架是否熟悉,从0到1,技术,有什么难题,对应的产出,架构框架(通知消息)
执行逻辑,执行顺序,注解

6、接口依赖、接口的入参出参依赖怎么处理,要考虑数据串掉的问题
接口依赖字段参数化,入参或出参使用全局变量/局部变量 pytest-fixture
取值可以用正则表达式或者jsonpath 获取

7、自动化如何断言
assert assertequal hamcrest
8、写接口自动化的时候遇到哪些问题、如何解决的。(考验技术的深度,问题越深、代表涉及的技术越高、能力也越强)
测试用例误报

  • 需求变更,测试用例/测试脚本断言未能更新到位; fix:更新相应的测试用例/测试脚本断言,提高覆盖率
  • 代码变更,新的异常未能捕获; fix:添加捕获异常判断,提高测试脚本容错性
  • 未能进行测试用例/测试套件执行的顺序控制,并发执行后报错
    接口传参依赖,见问题6的回答

断言失败后,停止运行测试脚本;使用pytest插件pytest-assum,即使失败也会执行全部的用例
用例过多时,想并发执行用例,提高效率,使用pytest-xdist,auto n 自动化识别电脑核数,并发执行用例
用例过多时,想仅跑失败的用例;使用pytest插件pytest-rerunfailures ,重跑失败的用例
用例过多时,控制测试测试用例/测试套件执行的顺序,使用setup,teardown 控制或者pytest-ordering
case有的需要登录的token,有的不需要,使用pytest-fixture

9、如何写好自动化接口测试,谈谈自己的理解。
做好需求分析,参与需求评审,提出可能存在的风险与问题
参照需求文档与接口文档,进行接口用例设计 包含单个接口的传参数用例设计(单个,组合),集成的参数用例设计(单个,组合,乱序),功能、性能、安全、兼容、可靠、可移植
用例设计后,进行接口用例评审
撰写测试脚本,测试脚本结合业务场景,进行二次封装改造,api object模式,数据驱动,数据分离 分层
执行接口测试,定位问题,发送报告给相关人员
稳定后,GitLab+Jenkins,使用pipeline构造流水线,持续集成/持续部署持续测试
bug跟踪处理,
保证项目质量

10、项目中自动化是如何持续集成的
Git上提交测试代码,触发构建
jenkins pipeline 开始执行构建、编译、打包任务、并部署到测试环境
测试自动化代码、开始运行,将测试结果汇聚成测试报告,发送给设置好的相应人员

12、同步处理和异步处理的理解,如何用在项目中的,详细介绍
同步处理即任务处理时,是无阻塞的,能直接得到反馈的
异步处理即任务处理时,是有阻塞的,需长时间等待才能得到反馈结果

例如,在Mock平台项目中,我使用的巡逻官,就是异步处理,导入threading,具体的工作流程:每相隔半小时,进行获取项目的所有id,当项目id的开关为开时,并且当前时间距离上一次操作时间大于10s,我就打印出项目的名称信息,然后修改该项目的id开关状态为关。解决了该问题

13、幂等的理解
一次和多次请求某一个资源对于资源本身应该具有同样的结果
实现幂等的关键点就是服务端可以区分请求是否重复,过滤掉重复的请求。要区分请求是否重复的有两点:
唯一标识:要想区分请求是否重复,请求中就得有唯一标识。例如支付请求中,订单号就是唯一标识
记录下已处理过的请求标识:光有唯一标识还不够,还需要记录下那些请求是已经处理过的,这样当收到新的请求时,用新请求中的标识和处理记录进行比较,如果处理记录中有相同的标识,说明是重复交易,拒绝掉

15、数据库新增一个字段、测试需要考虑什么?除了功能内容的测试设计
新增该字段的意义,原因,需不需要增补用例,
字段级别的检查:
对该字段的格式、类型、长度、值域进行检查,是否为主键,索引,是否有相应的约束,该字段的添加是否满足预期设计,
字段间的检查:
该字段是否与其它字段有业务上的关联,是否满足指定的计算逻辑和业务规则
表级别的检查:
添加该字段,在进行查询时,主键唯一性校验,主要是复合主键的唯一性校验;表中该字段的数据量和数据波动是否正确
跨表之间的检查:
外键分析,分析事实表中的外键是否在维度表中关联,该字段是否为其它表的外键

16、测试设计有哪些点
功能靠用效护移:功能性、可靠性、易用性、效率性、可维护性、可一致性 533244
是准用一安,错译成,学姐坐,圆石 试改定分,硬装一体
适用性 准确性 互用性 依从性 安全性
容错性 易恢复性 成熟性
易学性 易理解性 易操作性
时间特性 资源特性
可测试性,可修改性,稳定性,可分析性
适应性,可安装性,一致性,可替换性

17、异常测试设计思路有哪些
具体的测试场景,回答测试设计思路:
长度异常,最大长度
精度异常,整数、小数
类型异常,字符型、整型
值域异常,边界值,离点 上点
高并发,空值unknown、null
业务规则异常

18、非关系型数据库redis如何测试,以及理解
key-value 数据存在内存里,读取数据效率高
一般会应用在下面一些场景,排行榜、计数器、消息队列推送、好友关注、粉丝等
Redis可以用来做持久存储,也可以做缓存,目前大多数公司的存储都是Mysql +Redis,Mysql作为主存储,Redis作为辅助存储被用作缓存,加快访问读取的速度,提高性能
Redis五种类型:字符串(string)、哈希(hash)、列表(list)、集合(sets)、有序集合(sorted sets)

19、中间件dts,metaQ测试的时候关注什么?
关注消息的生产者和消费者,
验证代码逻辑的正确性,数据结果的一致性,以及代码运行时的及时性、稳定性和性能。
先进行代码逻辑分析、静态代码检查、再进行代码运行验证、最后数据结果验证

20、消息中间件消费相关的内容
延时低,需求场景,小时分钟维度级别的报表展示
(这块了解不多)

22、linux命令熟悉哪些以及介绍
文件处理命令 ls,cd,pwd,mkdir,vivim,touch tail less rm
网络相关命令 ping
权限:chmod chown
进程相关 ps -ef top
linux三剑客 grep 过滤 数据查找定位 awk 数据切片 sed 数据修改
sort 排序
uniq 去重
jq 格式化
wc 统计字符

个人经历/反问面试,这个没有标准答案,常见反问面试的问题,公司招我进入的部门,研发测试比在多少?具体负责什么模块?
数据结构与算法,未出具体题目;可以刷leetcode
中间件/全链路,听说过概念,常见的MQ、kafka,全链路指全链路压测,属于性能测试的进阶

补充回答:
13、幂等的理解
https://blog.csdn.net/nonage_bread/article/details/114764227
https://baijiahao.baidu.com/s?id=1685397198139177990&wfr=spider&for=pc
19、中间件dts,metaQ测试的时候关注什么?
https://blog.csdn.net/shijinghan1126/article/details/109640989
https://www.freesion.com/article/89411025405/
20、消息中间件消费相关的内容
https://www.cnblogs.com/lyang4-09/p/14247004.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值