测试面试题

本文整理了关于测试面试的各类问题,涵盖测试工作流程、用例设计、问题定位、bug管理、接口测试、自动化测试、数据库操作、异常处理、日志查看、HTTP与HTTPS区别、常用命令和框架等内容,旨在帮助测试人员准备面试。
摘要由CSDN通过智能技术生成

测试面试题

一 、 测试工作流程

需求评审(有开发人员,产品经理,测试人员,项目经理)->需求确定->开发设计文档(开发人员在开始写代码前就能输出设计文档)->写出测试用例->发给开发人员和测试经理看看(正式的评审用例)->接到测试版本->执行测试用例->提交bug(有些bug需要开发人员的确定(严重级别的,或突然发现的在测试用例范围之外的,难以重现的),有些可以直接录制进TD)->开发人员修改->回归测试 — 提交测试报告—整个测试通过之后—版本上线

二、设计用例的方法

白盒测试:逻辑覆盖法,主要包括语句覆盖,判断覆盖,条件覆盖,判断-条件覆盖,路径覆盖

黑盒测试:等价划分类,边界值分析,错误推测法

**测试用例设计点 功能性 ** 易用性 安全性

兼容性(兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行)

三 、 怎么定位前端还是后台的问题

前端bug特点 1, 界面相关 2,布局相关 3,兼容性相关

后端bug特点 1,业务逻辑相关 2,性能相关 3,数据相关 4,安全性相关

前端bug主要分为3个类别:HTML,CSS, Javascript三类问题

出现样式的问题基本都是CSS的bug

出现文本的问题基本都是html的bug

出现交互类的问题基本都是Javascript的bug

\1. 查看前端给的状态码

\2. 查看后端返回信息

\3. 查看日志

\4. 对接口进行测试(Postman)

\5. 查看数据库状态

\6. 实际操作一下确定具体问题

\7. 前端是否有明显报错如(js css JavaScript)静态资源页面展示

\8. 后端获取数据库数据后端跨域接口功能实现

四 、怎么给开发提bug**

一,熟悉Bug管理工具

二,准确地给bug定级

三,准确记录bug信息

Bug的标题 和详细描述

标题主要是对你所提交的Bug进行简明扼要的描述;

提交bug时,应该说明哪些信息

所属模块 bug类型 —(哪一类的错误:代码 界面 安全 性能 设计缺陷等)— 操作系统 — 浏览器

指派给哪位开发 — bug标题 — bug的严重程度 — 修改bug的优先级

复现步骤 (重现步骤最好能有截图和视频类附) 预期结果 实际结果

五、针对bug怎么去判定等级

1.致命问题:

造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等

2.严重问题:

系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。

3.一般问题

功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。

4.轻微问题:

接口、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等

六、除了接口怎么定位问题

看服务日志,有数据库相关报错,还有代码相关报错

七、 接口自动化

我们采用unittest和ddt数据驱动搭建测试框架,(对数据excel读取、yaml配置、Requests接口请求、Re参数化、Pymysql数据库效验、日志等模块实现封装),

1.Openpyxl来处理excel,存储测试数据(用例数据)

2.pyyaml来配置文件(configparse,pyyaml)

  1. Pymysql来连接mysql数据库,执行sql数据,进行数据效验

4.Requests请求库,来向接口发起请求

5.使用logging模块来创建日志器,记录项目中的日志信息

6.使用HttpTestRunner来生成HTML测试报告

7.使用re模块来实现参数化(正则匹配)

8.使用动态创建属性(类属性)的机制来实现接口之间的依赖 (setattr getattr)

八、 python的基本数据类型

整数 int类型 print(‘3+4的值是{}’.format(add))

字符串 字符串就是一系列字符。单引号、双引号或者三引号里面的内容就是字符串。

布尔类型 boolean:布尔类型【只有两个值,分别为True和False】 True and True # ==> True

列表 List 列表用 [ ] 标识, names_python_pc = [‘毛豆’,‘刘德华’,‘张学友’,‘美女’] 有序性包含不同种类、任意类型的对象 本地可修改

元组 tuple 用”()”标识 tup1 = 1,2,3 print(tup1) 有序不可修改

字典 Dictionary {key:value} 无序 **每个键都是唯一的

name_dictionary = {‘老爸’:300,‘老婆’:1000,‘老妈’:800,‘自己’:600,‘孩子’:200} print(name_dictionary)

集合类型:set { } 无序不重复

字符串 —>string类 索引–> index()、find() 长度 -->length() 删除 --> delete

分割 --> split()

运算符

- 算术运算符:+,-,*,/,%,即加、减、乘、除、取余

- 比较运算符:==,!=,>,<,>=,<=,即等于、不等于、大于、小于、大于等于、小于等于

- 赋值运算符:=,+=,-=,*=,/=,%=,即赋值、加赋值、减赋值、乘赋值、除赋值、取余赋值

- 逻辑运算符:and,or,not,即与、或、非

for循环 while循环。

九、json和string 相互转换

json对象(dict)转string 简单地直接转换----使用json.dumps()

string转json对象(dict)----使用json.loads()

十、 常见的异常都有什么 兼容性异常

ArithmeticException 算数异常

NullPointException 空指针异常

ArrtIdexOutOfBoundException 数组越界异常

InsexOutOfBoundException 索引越界异常

ClassCastException 类型转换异常

InputFormatException 输入类型不匹配

IOException 输入输出异常

SQLException SQL异常

IllegalArgumentException 非法参数异常

十一、 fiddler 抓包咋用?为什么要抓包 怎么运用其中功能

\1. fiddler默认只能抓包HTTP协议, 不能HTTPS协议

​ 安装hTTPS证书

\2. 过滤器 filters: 过滤掉不需要关注的请求(通过服务器ip或域名进行过滤)

\3. rules --> automatic breakpoints --> before requests after responses

\4. autoresponder 进行重定向操作

\5. 使用composer进行发起请求, 进行接口测试.

\6. 抓包的目的

​ \1. 没有接口文档时, 可以以抓取的接口为参照

​ \2. 用于定位问题.(前端/后端问题)

​ \1. 通过页面发起请求, 抓包, 抓包之后确认一下,前端传递数据的准确性

​ \2. 前端调用接口的逻辑是否通畅

​ \3. 是否有多次/冗余调用

​ \4. 后端响应中, 1. HTTP协议响应状态码 2. 响应数据是否准确

​ \5. 业务逻辑是否正确

一.对PC参数进行配置

\1. 配置fiddler允许监听到https(fiddler默认只抓取http格式的)

​ 打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS,

​ 勾选

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值