测试工程师常见问题

一、元素无法定位如何解决?
1.查看元素表达方式是否写错;
2.页面可能没有对这个元素进行加载完成,需要加等待时间;
3.元素可能在iframe内,需要先切换到iframe内;
4.元素可能会发生动态变化,需要做一些模糊化处理,或者通过附近元素/子集元素去处理;
5.可能已经识别到该元素,但是该元素不可点击或者不可见,需要先执行一些页面操作,让它变得可点击或者可见

二、涉及自动化用例需要看考虑到哪些因素?
1.风险因素,有些bug可能会对系统造成毁灭性影响(卡死闪退的情况),而有些bug可以暂时不用理会
2.时间成本,用例是没有办法穷尽的
3.经济成本(花钱or不花钱)

三、常用的一些安全用例有哪些?
1.密码是否是明文存储的(可以通过抓包查看,比如登录密码)
2.敏感数据是否是加密传输(比如用户信息、协议)
3.是不是能限制能够暴力获取用户数据的(比如爬虫、逆向)
4.敏感数据是否支持复制粘贴

四、必须掌握的性能测试用例有哪些
1.单用户状态下接口响应时间(时间越快越好,不同业务逻辑API,处理花费时间肯定是不一样的。几十毫秒到几秒不等(超过10秒的通常就不可容忍了)
2.多用户状态下接口响应时间
3.内存是否泄漏
4.cpu使用是否过高

五、xml和json的区别?
json数据量传输相对较少,json支持多种数据类型(字符串、数字、布尔),json的解析更加方便
xml数据量传输相对较多,xml几乎所有的数据都是文本,xml数据管理比较混乱,xml经常用来展示一些页面信息,json通常是不会的

六、pytest的测试用例怎么进行前置准备和后置清理操作?
pytest是通过fixture来实现的,先定义fixture再调用,fixture是一个函数实现的,可以在函数上面使用一个装饰器@符号pytest.fixture来申明一个fixture,在函数内部通过yield来区分前置代码和后置代码

七、自动化测试的基本步骤?
制定测试计划 -> 分析测试需求 -> 选择合适的自动化工具、搭建测试环境 -> 设计测试用例 -> 编写测试脚本 -> 执行自动化脚本 -> 分析测试结果,生成测试报告(记录测试问题 -> 追踪bug -> 回归测试 -> 再去执行自动化测试)-> 结束

八、什么是序列化和什么是反序列化?
序列化就是将对象转化成一个字节流的过程
反序列化就是把一个字节流转化成一个对象
在接口自动化中就需要将序列化对象转化成json格式,,这就是一个序列化的过程,而把json对象转化成一个编程语言就是一个反序列化的过程

九、selenium如何定位下拉选择框
1.定位select元素
select_elem = driver.find_elemeen_by_name(‘下拉选择按钮’)
2.初始化select对象
from selenium.webdriver.support.select import Select
s = Select(select_elem)
3.选择选项,通过文本内容
s.select_by_visible_text(‘文本内容’)

十、对集合点的理解以及在项目中的应用
1.集合点是测试脚本中的一个标记,当每个虚拟用户执行到标记处时,会停留在标记处等待其他的虚拟用户,当达到预期设置的并发数时,标记处的所有用户同时执行后续的请求;
2.集合点会产生瞬间高并发,但也会降低平均压力,所以在压测过程中,如果有瞬间高并发的业务,就需要使用集合点(比如抢购、秒杀的业务)
3.没有类似业务,就不需要加集合点

十一、主键、外键、索引的区别
主键:唯一表示一条记录,不能有重复的,不允许为空
外键:表的外键是另一表的主键,外键可以有重复的,可以为空
索引:该字段没有重复值,但可以有空值
主键用来保证数据完整性,外键用来和其他表建立联系,索引提高查询排序的速度
一个表只能有一个主键,一个表可以有多个外键,一个表可以有多个索引

十二、如何定位一个bug是客户端还是服务端?
1.通过抓包分析,通过对客户端进行抓包,分析服务端返回的数据是否符合预期,如果服务端数据正确,那就是客户端问题;
2.日志分析,通过查看客户端、服务端日志,分析有没有异常日志信息,从而确定具体的原因

十三、什么是事务?
事务是数据库中的一种概念,比如一系列操作一起向系统提交,要么全部执行,要么都不执行,那么就可以说这是一组不能再分割的操作集合,
事务的四个特性有:1.原子性,事务中的全部操作是不可分割的,2.一致性,几个并存执行的事务,执行结果必须按照某一顺序串行来执行,并且结果相一致,3.隔离性,事务执行不受其他事务的干扰,事务执行的中间,结果对其他事务必须是透明的,4.持久性,对于任意已提交的事务,系统必须包装该事务对数据库的改变不会丢失,即使数据库出现问题

十四、测试工程师主要工作流程有哪些?
需求分析 -> 编写测试计划和测试方案 -> 设计测试用例 -> 执行测试用例 -> 跟踪bug -> 回归测试 -> 输出测试报告

十五、举例,当用户点击微博关注按钮无反应,如何排查该问题?
1.确认问题出现的终端(Android、IOS、web)
2.确认复现频率是必现还是有几率出现
3.确认问题的影响范围是否造成损失,是否是阻塞操作,是否容易被发现
4.确定问题的前置条件,包括设备的情况、账号情况、用户使用习惯等
5.根据前端的表现、接口数据、日志信息等来定位问题
6.根据问题的修复成本安排修复计划

十六、冷热启动的区别及共同点?
冷启动:启动该程序时后台没有该应用程序的进程,系统会重新给该应用程序分配一个新的进程
热启动:当用户启动该程序,后台已经有该用户的进程
共同点:无论是冷启动还是热启动,都需要重新检测硬件设备,将RAM清零,即所有的变量都初始化为零

十七、接口测试的检查点有哪些?
1.服务端的日志信息
2.数据库的落库
3.服务端的业务逻辑
4.前端的展示效果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值