测试面试题总结

  • 1.get、post、put区别
    • (从服务器中获取资源)get方法用于使用给定的url给定的服务器中检索信息,即从指定资源中请求数据。使用get方法的请求应该是检索数据,并且不对其他数据有影响
    • (在服务器新建资源)post方法用于将数据发送到服务器以创建更新资源
    • (在服务器更新资源)put方法上传的内容替换目标资源中的当前内容
  • 2.什么是http协议?http和https的区别?
    • http协议;hyper-text transfer protocol 超文本传输协议应用层协议
    • https可以简单的理解为:https = http + 加密 +** 认证 + 完整性保护**
    • https默认端口号是443,http默认端口号是80
    • https协议通过SSL或者TLS协议将报文内容进行加密,client端进行加密,server端进行解密。
    • http明文传输不安全,https安全
  • 3.什么是多进程?什么是多线程?区别是什么?
    • 进程可以简单的理解为一个可以独立运行的程序单位,它是线程的集合,进程就是由一个或多个线程构成的。而线程是进程中的实际运行单位,是操作系统进行运算调度的最小单位。可理解为线程是进程中的一个最小运行单元
  • 4.深拷贝与浅拷贝的区别?什么是深拷贝?什么是浅拷贝?
    • 区别:如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。
    • 浅拷贝:copy.copy 浅拷贝,只拷贝父对象,不会拷贝对象的内部的子对象。(子对象(数组)修改,也会修改)
    • 深拷贝:copy.deepcopy 深拷贝,拷贝对象及其子对象(原始对象)
    • 赋值:赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。
  • 5 tomcat端口怎么改?怎么查看日志?怎么查看修改数据库的端口?
    • tomcat—conf—server-xml
    • logs—catalila.log
    • MySql—server my.ini
  • 6.测试提了一个bug,开发不认怎么办?
    • 自查
    • 根据需求文档、产品需求规格说明书,确认是否与计划有不一致的地方
    • 与开发人员沟通确认是否是缺陷
    • 向测试组长或测试经理反馈
  • 7. 怎么判断是前端的BUG还是后端的BUG?
    • 请求接口的URL是否正确;如果请求的接口不正确,则为前端的BUG
    • http请求的参数是否正确,如果http请求的参数不正确则,为前端的BUG
    • 如果接口URL和参数都正确,查看响应的内容是否正确;如果这种情况下响应内容不正确,则为后端的BUG。
  • 8.cookie和session的区别?
    • 图片[1]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站测试面试题总结众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹
  • 9.平时工作中是怎么去测的?(至少在这个问题中能说的出测试流程)
    • 首先根据客户需求文档提取功能模块,然后编写测试方案,提取测试点,设计测试用例,用例评审之后执行用例,提交bug,跟踪bug,编写测试报告
  • 10什么是接口?
    • 接口总的说接口有两种,一种是程序内部的接口,一种是系统对外的接口。广义的说,是客户端与后台服务间的协议;插件间通信的接口;模块的接口
  • 11.这有一个杯子,你怎么去测?(类似这种给一个实物,你怎么去测?)
    • 需求测试: 查看杯子使用说明书
    • 界面测试: 查看杯子外观
    • 功能适用性:用水杯装水看漏不漏;水能不能被喝到
    • 安全性:杯子有没有毒或细菌
    • 可靠性:杯子从不同高度落下的损坏程度
    • 可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
    • 兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
    • 易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
    • 压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
  • 12.怎么做需求分析?
    • 需求文档:显性需求,隐形需求,文字+原型图
    • 与产品经理或需求人员密切沟通,需求疑问
    • 业务背景资料–业务知识
    • 正式与非正式的培训
    • 系统升级,获取历史的需求记录或者测试记录
    • 收集线上运维的投诉反馈【生产事故】【缺陷 用例 执行记录 开发查日志】
    • 参考竞品
  • 13.怎么使用fiddler对手机进行抓包?
    • 1.允许远程连接fiddler,通过菜单栏的Tool—》FiddlerOptions—-》connects打开以下对话框
      • 图片[2]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站测试面试题总结众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹
  • 14.fiddler 怎么实现弱网测试?
    • 打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多。
    • 2、设置弱网的参数
    • 菜单Rules—>Cutomize Rules
    • 图片[3]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站测试面试题总结众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹
  • 15接口设计
    •  
  • 17.接口测试用例怎么设计的?
    • 合法、非法、非空、超长
  • 18.接口测试的步骤
    • 整理项目接口
    • 接口测试用例设计
    • 测试用例评审
    • 接口测试脚本设计
    • 接口测试脚本执行
    • 接口设计报告设计、评审
    •  
  • 19.设计用例考虑的点?
    • 功能性测试:关注功能是否正确。(完整性、适合性、正确性)
      • 是否有不正确或遗漏了的功能
      • 功能实现是否满足用户需求系统设计的隐藏需求
      • 输入能否正确接接受?能否正确输出结果?
    • 可用性测试:关注产品是否好用。(易判有用、易学习、易操作、用户错误保护、诱人用户界面、易掌握)
      • 过分复杂的功能命令
      • 困难的安装过程
      • 错误信息过于简单
      • 用户被迫去记住太多信息
      • 语法、格式和定义不一致
    • 兼容性测试:关注产品是否适用多个平台。兼容性(共存性、互操作性、)移植性( 适用性、可安装性、可替换性)
      • 兼容不同的操作系统
      • Web项目兼容不同的浏览器
      • 兼容的不同的数据库
      • 兼容不同的分辨率
      • 兼容不同的厂家的硬件设备,耳机、音响等
    • 可靠性测试:关注产品是否稳定可靠。可靠性(成熟性、可用性、容错性、可恢复性 )可维护性(模块性、可重用性、可分析性、可更改性、可测试性)
      • 输入异常的数据
      • 操作异常的文件
      • 长时间工作保持正常
      • 多次打开应用程序
    • 安全性测试:关注产品是否存在漏洞。安全性(保密性、完整性、抗抵赖性、可追踪性、真实性)
      • SQL注入
      • 口令认证
      • 加解密技术
      • 权限管理
      • 安全日志
    • 性能测试:性能效率(时间行为、资源利用、容量)
      • 系统资源,CPU、内存io读写·
      • 并发用户数
      • 最大数据量
      • 响应时间
      • 处理成功率
  • 20.session、cookie、token的区别?
    • cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器
    • session 也是类似的道理,服务器要知道当前发请求给自己的是谁。为了做这种区分,服务器就要给每个客户端分配不同的“身份标识”,然后客户端每次向服务器发请求的时候,都带上这个“身份标识”,服务器就知道这个请求来自于谁了。
    • token的意思是“令牌”,是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接token请求服务器)
  • 21.接口测试怎么测?
    • 通过python+request进行测试根据参数进行传参,正确的参数,错误的参数,参数为空,等价类,边界值去进行传参,看响应码
  • 22.GUI自动化怎么选择测试模块?
    • 一般选择用户使用度比较高的模块,一般不超过总模块的30%
  • 23.简单说一下DDT、KDT、POM的使用?
    • DDT:数据驱动测试,将测试数据跟测试脚本进行了分离,方便后期的数据维护,精简了代码的冗余,提高了代码的复用性
    • KDT:关键字驱动测试,通过给定一个字符串,在程序运行的时候去匹配程序类中对应的方法或属性,如果是方法则返回方法的引用,如果是属性则返回属性的值,主要使用的类反射机制来进行关键字驱动
    • POM:页面对象模型,pages、object、model,主要是把页面对象进行封装,调用的时候也是集体调用,调用整个页面对象,主要适用于GUI自动化测试。
  • 24.你怎么做接口测试的?
    • 先使用了POSTMAN和JMETER进行了接口测试,看主要的接口和响应等是否正常,冒烟测试是使用了python+requests库+pytest进行接口自动化测试
  • 25.python 类,函数、方法
    • 函数就是把一些需要重复使用的语句,封装起来,在需要使用的地方调用就可以了
    • 方法就是类里面的方法,方法用来描述类具有的行为,而类属性,就是类具有的共同特征,比如一个我们都是人,但是他要打你,我不打你
    • 类就是用来定义实例对象的属性和行为的,他有三种特征:
    • 封装:把重复性比较高的封装起来,以便于需要调用的地方使用;
    • 继承:子类可以继承父类除了私有属性私有方法以外的所有东西,子类可以对父类的属性进行重写,如果是多继承的话python2是深度优先,python3是广度优先;
    • 多态:同一个类,同一个方法,在同一个出口,有不同的状态
  • 26.接口自动化框架分层
    • 分为action层,business层,case层,common层,data层,report层,driver层,conf层
    • action层用来对页面的元素对象进行封装,定位
    • business层用来执行该业务逻辑
    • case层用来编写测试用例
    • common层用来封装公共函数(封装了最基础的driver对象获取(针对GUI)、定位元素对象方法、断言、浏览器关闭、连接数据库、excel等)
    • data层用来存放测试用例的数据(本次使用的是excel表格)
    • report层用来编写和存放测试报告
    • driver层用来执行测试用例
    • conf层用来存放配置文件(数据库配置文件ini,conf文件是用来获得数据库信息)和模板文件(报告)
  • 27.项目中使用过的接口自动化测试框架是如何构建的?
    • 采用的是DDT数据驱动,分为了case层,data层,report层,common层,层级之间的调用关系在开始搭建之间就在组内会议定好了,在data层采用类反射进行构建。也使用过pytest进行搭建(简单介绍了一下pytest)
  • 28.pytest用例执行顺序?
    • pytest 默认从上到下
    • 修改顺序,加装饰器@pytest.mark.run(order=n),n是数字,表示第几个执行
  • 怎么开展GUI自动化测试
    • ① 首先,需要已经完成了功能测试,此时测试版本稳定,属性、功能稳定。
    • ② 根据项目的特点、选择合适的自动化测试工具,并搭建测试环境
    • ③ 提取手工测试的测试用例 转化为自动化测试用例
    • ④ 通过工具、代码实现自动化的构造输入、自动检测输出结果是否满足预期
    • ⑤ 生成自动测试报告
    • ⑥ 持续改进、脚本优化
  • 怎么做兼容测试?
    • 图片[4]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站测试面试题总结众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹

原文章出处:https://mubu.com/doc/173i7TFQ0gp

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容