2020年面试问题整理

最近面试,遇到了不少题目,为今后的再面试做准备,特收集记录于此

一、关于管理方面的

1、如何构建比较完整的测试体系框架,可以从哪些方面入手?

思路:(测试技术体系建设  测试管理支撑)

主要从团队组织、环境建设、标准制定、人员培养、配置管理工作流程

a、软件测试管理体系建设可以从测试的总体规程、需求跟踪管理、软件缺陷跟踪管理、软件缺陷分析管理、软件质量度量管理、软件测试人员的职业体系规划、软件测试人员的绩效考核体系、软件测试相关的配置管理体系

b、软件测试技术体系建设可以从输出技术技能图谱,针对技术人员的系统测试培训,测试技能体系的建立、试点、推广

2、针对版本上线后,出现线上问题或漏测情况,如何规避?

 思路:

a、故障可能在需求、技术设计、开发、漏测、上线不规范等过程产生,因而,故障的控制必须从各个阶段分别入手

b、根据业务成熟度、团队成员特点有针对性应对(业务需求分析、变更管理引起.人员是否充足、是否进行冒烟测试、风险控制.)

c、针对已有的故障,在复盘时找到最根本的原因

参考

3、作为管理者,怎样招一个合格的测试人员?

 思路;

分析能力、专业技能、沟通表达、适应和学习能力、记忆力、自信心、耐心、怀疑精神、洞察力、有条理和注意细节

4、如何管理团队?

思路:可以从怎样管理人和事方面说明,当时面试的时候,面试官就说我的经验都是偏于管事多,管人方面需要加强

1)关于事

资源共享、同一个目标、

2)关于人

 多沟通、尽早发现和解决问题,充分了解组员正在做什么和怎样做

放权及授权、同等对待

5、怎样留住人员?

思路:

a、制定明确的激励计划和透明的未来目标,用人制度

b、适合的薪资制度

c、多多和团队内成员进行沟通,建立一个融洽的团队环境

d、加强项目管理,强化文档管理,培训机制

f、建立分享机制,使员工之间建立学习的氛围

6、测试质量体系规划和建设

思路:(软件规模、进度、工作量、缺陷指标、质量指标分析)

1)明确测试输入输出准则

2)测试策略、用例质量、执行质量、缺陷质量、过程质量监控(风险评估、缺陷预防)

二、关于技术方面的

1、数据库方面

1)如何使用sql生成1000万条数据?

思路:

a、生产环境拉取然后备份到测试环境(但也有问题,实际环境的数据由于各种原因不一定全部满足测试数据)

b、写代码生成数据? 涉及如何写的问题

数据库中新建函数---过程,输入批量增加数据 的代码 块

2)如何挑选出重复的数据(比如姓名字段会出现重名的情况)

思路:以姓名分组,然后使用函数统计出现重复的次数count

3)给多个表,然后写出关联的SQL语句

2、性能测试方面

1)性能测试怎么做的? 如何保证并发数? 为什么会用分布式,在做分布式时如何分配每台电脑的用户数? 服务器性能怎么做?

性能测试流程核心:搭建性能环境、设计用例、场景建模、准备测试数据、测试脚本开发(数据隔离,防止数据污染)、执行、问题分析、维护

怎么做:

如果是测试响应时间,对一个接口进行压力测试,不断加压,直到响应时间达到或超过指标,观察当前其并发数和TPS,同样的并发数,多执行几次,得到一个平均值或稳定值(即TPS和TRT曲线相对稳定的值),并记录下来

如果是测试接口的最大并发数,逐渐增加线程数,看聚合报告里吞吐量Throughput,每秒完成的请求数随着发送的Samples(发出请求数量)实时在变,当吞吐量不再往上增加时,这个时候的并发数即是最大并发数,增加线程数,tps不变,响应时间增加,报错增加,说明达到极限了

如何保证并发数:同一时刻的并发是很难做到的。我们用来发起压力的测试工具本身要能做到同一时刻发起压力,如果设置线程数过多,负载机本身资源不足会有排队,请求建立和服务端的连接过程会排队,请求数据发送到服务的时候在网络队列上也会排队,请求数据达到服务端,在服务端也会进行排队,所以严格意义上的并发多少用户数等等是比较难做到的。但是,我们可以分层去看,像一般的webserver或容器服务都有监控数据,如nginx的Active connections,tomcat的currentThreadsBusy,这些参数表明服务本身目前正在处理的最大并发线程数(监控Web层(例如Nginx)的连接数和请求数,查看实际达到服务器端的并发数是否跟我们的设定值一致)

为什么会用分布式:电脑连接数不够,为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段(分布式是从物理资源的角度去将不同的机器组成一个整体对外服务)

 分布式时如何分配每台电脑的用户数: 负载机的线程数与脚本设计的线程数一致,每台的负载机线程数是一样的,由调度机监控汇总测试结果

服务器性能怎么做: 关注吞吐量、响应时间 、事务成功率、资源使用率

N个人在客户端同时进行功能性操作的同时,在确保功能实现正确的前提下,考察服务端应用程序的各项性能指标,以及服务器硬件资源的使用情况

2)假设系统A调用系统B,把B的接口都mock了,有啥好处和坏处?

思路:

 好处:避免其它模块的出错引起的本模块错误,起到隔离作用、并行工作,进程互不影响、提前接入测试,保证测试效率,模拟数据,增加覆盖

坏处:大量使用mock测试的场景失去了真实性,可能会导致在后续的系统性测试时才发现bug,使得缺陷发现的较晚,可能会造成后续修复成本更大;

3)多个接口之间存在调用关系,在对接口压测时,系统崩了,怎么判断是哪个接口引起的问题

思路:

a、从最低层的接口先做性能测试,再看该接口调用上层的哪些业务接口

b、虽然存在多层调用,分析当前压测的接口的业务是否涉及多个接口,如果不涉及就不用考虑是其它接口的问题,如果涉及就需要一层层的向上找,看到底是哪个接口引起的系统崩溃

4)如何设计性能的测试用例

 确定性能目标;场景设计,场景设计一定从简单到复杂。(容量、安全、可靠、压力、响应时间、宽带、资源利用率、恢复能力、可扩展性)

5)App性能关注点,哪些指标

3、代码方面

1)统计1-9999中数字3出现的次数

思路:包含3的数字都统计一次,如333,则统计3次

2)数组逆序输出

3)计算1-100的和

4、自动化方面

1)ajax异步时,如何进行元素的定位?

思路:当时不太理解前端的异步是什么,回答的时候说一般元素定位不到,需要加等待时间,然后说没遇到这种情况,然后面试官也没说什么....然后百度了下,似乎就是要设置等待时间

这里应该可以答 三大延时等待处理(硬性等待 Thread sleep,隐式等待 Timeouts  显示等待 自定义)

2)如何实现用例失败或异常时需要截图

思路:

a、定义一个截图的方法并保存File

b、定义一个用例失败的监听类 ,继承testng框架的失败监听接口IHookable,该接口有一个方法run

c、在testng.xml配置监听运行

3)如何进行分布式执行webdriver用例

 思路:

a、Selenium grid使用,同时启动一个hub和至少一个node来实现

b、借助于Testng配置文件进行,即在Case中以变量形式替换真实地址

5、测试方面

1)如何测试一个下订单

思路:

一次下单的商品数量、订单的类型、同样的商品是否可重复下单、 是否可下多个订单

2)如何测试灰度配置

3)app和web测试的区别与关注点

 流程和技术测试方面是一致的

app更关注流量、耗电、浏览器、手机品牌、安卓软件版本、分辨率的兼容,弱网,网络切换,交叉中断测试、下载安装升级测试

4)https协议

5)怎样进行接口测试

思路:充分理解接口逻辑业务,配合接口参数组合,上下游服务的容错处理,如依赖的接口异常,本接口是否有很好的容错

6)微信扫码登录设计测试用例

6、其它方面

1)自己的优缺点

猜你喜欢

转载自www.cnblogs.com/wanshuang/p/12725637.html