1、请进行自我介绍
背景:
- 3年软件测试经验,熟悉功能、接口、自动化测试,主导过电商/金融项目全流程测试。
- 技术栈:Python + Selenium/Requests(UI/接口自动化)、JMeter(性能)、Postman/Charles(抓包调试)。
核心能力:
- 用例设计:熟练运用等价类、边界值等方法,设计高覆盖率的测试用例。
- 缺陷挖掘:擅长定位前后端交互问题(如接口超时、数据不一致)。
- 效率提升:通过自动化脚本(Pytest+Allure)减少60%回归测试时间。
项目亮点:
- 在XX项目中,通过参数化+数据驱动测试,发现支付模块的并发扣款BUG,提升系统可靠性。
职业态度:
- 严谨细致,注重团队协作,持续学习新技术(如CI/CD集成测试)。
结束语:
希望用我的经验为贵团队的质量保障贡献力量!
(可根据实际经历调整技术栈和项目细节)
2、请介绍一下你做过的这个电商项目,以及你在项目中的主要工作任务
项目简介:
我参与过一个B2C电商平台测试,主要功能包括商品展示、购物车、订单支付、会员系统等,采用前后端分离架构(前端Vue.js + 后端Java Spring Boot)。
我的主要任务:
- 需求分析:参与评审PRD,提取测试点,输出测试用例(覆盖功能、边界、异常场景)。
- 功能测试:执行订单流程、优惠券计算、支付接口等核心功能测试,提交Bug并跟踪修复。
- 接口测试:用Postman+Newman做API自动化测试,验证数据一致性(如库存扣减)。
- 性能测试:通过JMeter模拟高并发下单,分析响应时间及数据库瓶颈。
- 上线支持:监控生产环境日志,复现用户反馈问题,推动优化。
成果:发现并修复关键Bug 30+,支付成功率提升5%。
(可根据实际项目调整技术栈和细节)
3、请围绕APP前台的订单功能,包括下单到发货再到收货再到评价,完整个的介绍订单业务及你测在测试时都覆盖了哪些测试点?
1. 订单业务全流程
- 下单:选择商品→填写地址→选择支付方式→提交订单→支付成功→生成订单。
- 发货:商家后台审核订单→仓库拣货→物流发货→更新物流信息。
- 收货:用户确认收货→订单状态更新为“已完成”。
- 评价:用户对商品/服务评价→评价内容展示→商家回复(可选)。
2. 测试覆盖点
(1)下单阶段
- 功能:商品库存实时扣减、优惠券/积分抵扣、多支付方式(微信/支付宝/银行卡)兼容性。
- 异常:库存不足提示、支付超时/失败订单回滚、重复提交防抖。
(2)发货阶段
- 数据一致性:订单状态同步(“待发货”→“已发货”)、物流单号正确性。
- 异常:发货超时提醒、物流信息未更新兜底逻辑。
(3)收货阶段
- 超时自动确认:N天后未操作自动收货(如7天)。
- 退款逆向流程:收货前申请退款/退货的逆向逻辑。
(4)评价阶段
- 防刷评价:仅完成订单可评价、敏感词过滤。
- 数据展示:评价星级计算、商家回复同步前端。
(5)其他测试
- 性能:高并发下单(如秒杀)的库存准确性。
- 安全:订单ID防篡改、用户隐私(手机号脱敏)。
成果:保障订单成功率>99.5%,支付/物流超时率下降30%。
(可根据实际项目补充细节,如自动化测试覆盖率、埋点验证等)
4、请介绍支付功能如何测试的,有哪些测试点
1. 核心测试点
(1)支付流程测试
- 正常支付:选择支付方式(微信/支付宝/银行卡)→支付成功→订单状态更新为“已支付”。
- 支付中断:支付中途取消/退出,检查订单状态(保持“待支付”)。
- 重复支付:同一订单多次支付,防重复扣款(仅第一次生效)。
(2)支付方式兼容性
- 多平台覆盖:微信/支付宝/银联/Apple Pay等主流支付方式。
- 多环境适配:H5/APP/小程序不同端支付流程一致性。
(3)异常场景测试
- 支付失败:余额不足、银行卡限额、网络中断,检查友好提示及订单状态回滚。
- 支付超时:模拟支付平台延迟响应,验证订单超时关闭逻辑(如30分钟未支付自动取消)。
(4)数据一致性
- 金额校验:订单金额与支付金额一致(含优惠券/运费抵扣)。
- 状态同步:支付成功后,订单、库存、用户权益(如积分)同步更新。
2. 其他测试维度
- 性能测试:高并发支付(如秒杀)时接口响应时间及成功率。
- 安全测试:支付参数加密(防篡改)、敏感信息脱敏(如卡号)。
- 对账测试:支付记录与财务系统对账,确保无漏单/重复单。
成果:支付成功率≥99.8%,异常场景覆盖100%。
(可根据实际项目补充:自动化测试、Mock支付接口、风控规则验证等)
5、对于APP端,都测试过哪些手机,分别覆盖了哪些分辨率及操作系统
APP兼容性测试覆盖范围
1. 测试机型覆盖
- 主流品牌:华为、小米、OPPO、vivo、荣耀、iPhone、三星
- 重点机型:
- 高端机:iPhone 15 Pro、华为Mate 60、小米14
- 中端机:OPPO Reno 10、vivo S18、Redmi K70
- 低端机:Redmi Note 13、荣耀X50
2. 分辨率覆盖
- 常见分辨率:
- 1080P(FHD):2340×1080、2400×1080(主流安卓)
- 2K/4K:3200×1440(部分高端机)
- 刘海屏/挖孔屏:iPhone 14 Pro(2556×1179)、华为P60(2700×1220)
- 折叠屏:华为Mate X5(2496×2224展开态)
3. 操作系统覆盖
- Android:
- 主流版本:Android 12/13/14
- 低版本兼容:Android 10/11(覆盖老旧机型)
- iOS:
- 最新版:iOS 17
- 旧版兼容:iOS 15/16(覆盖未升级用户)
4. 特殊场景覆盖
- 全面屏适配:水滴屏、刘海屏、挖孔屏
- 折叠屏适配:展开/折叠状态UI适配
- 横竖屏切换:支付/视频播放等场景
测试策略:
- 云测平台(如Testin、Firebase)覆盖90%+主流机型
- 真机重点测试:Top 20销量机型 + 低配/特殊屏占比机型
(可根据项目实际调整,如海外市场需增加三星/Google Pixel机型)
6、请介绍你们发现Bug后的处理流程
-
提交Bug
- 在缺陷管理工具(如Jira、禅道)中记录,包含:复现步骤、截图/日志、严重等级(P0-P3)。
-
分配&修复
- 开发确认:负责人分析原因,修复并标记状态为“已解决”。
- 争议处理:若开发认为“非Bug”,需三方(测试+产品+开发)讨论确认。
-
回归验证
- 测试验证修复结果,通过后关闭Bug;未通过则重新激活。
-
跟踪闭环
- 统计Bug解决率、复盘高频问题(如支付超时),推动优化。
关键点:
- P0级Bug(如支付失败)需立即阻塞发布,其他Bug按优先级排期。
- 自动化回归:修复后触发相关用例,确保无回归问题。
(流程可根据团队规范调整,如敏捷团队可能合并部分步骤)
7、请介绍你们的Bug分为几个等级及每个等级的判断标准
1. 等级划分(P0-P3)
| 等级 | 标准 | 处理优先级 | 示例 |
|---|---|---|---|
| P0(致命) | 导致系统崩溃、核心功能完全不可用,必须立即修复 | 最高 | 支付失败、APP闪退、数据丢失 |
| P1(严重) | 主要功能异常,影响用户体验,但可绕行 | 高 | 订单无法提交、商品价格错误 |
| P2(一般) | 次要功能问题,对使用影响较小 | 中 | UI错位、非必现的显示错误 |
| P3(轻微) | 界面优化建议或低概率非阻塞性问题 | 低 | 文字描述不准确、颜色偏差 |
2. 补充规则
- 安全漏洞:无论等级,均视为P0(如用户数据泄露)。
- 争议处理:若测试与开发对等级意见不一致,需产品经理仲裁。
目标:确保P0/P1 100%修复后上线,P2/P3视版本周期安排。
8、当发现Bug时,开发不认可,你如何处理
-
明确争议点:
- 确认开发不认可的原因(如“非缺陷”“无法复现”“需求理解差异”)。
-
提供证据:
- 补充复现步骤、日志、截图/视频,或拉取相同环境(设备/数据)复现。
-
三方确认:
- 邀请产品经理(PO)介入,根据需求文档判定是否为Bug。
-
记录决策:
- 若确认为Bug,开发需修复;若非Bug,关闭并备注原因(避免后续争议)。
关键原则:
- 对事不对人,用客观证据沟通。
- 争议较大时,可暂标记为“待确认”,避免阻塞流程。
9、请介绍在工作中,你如何做接口自动化工作的
-
需求分析
- 梳理核心接口(如登录、支付、订单),确定自动化覆盖范围。
-
框架搭建
- 使用Python + pytest/Requests(或 Java + RestAssured)构建框架,集成Allure生成报告。
- 关键组件:
- 公共方法封装(如签名生成、数据库校验)
- 数据驱动(Excel/YAML管理测试数据)
- 环境配置(DEV/TEST/PROD多环境切换)
-
脚本开发
- 编写正向/异常用例(如参数异常、鉴权失败)。
- 添加断言:状态码、响应数据、数据库一致性(如支付后余额校验)。
-
执行与监控
- CI/CD集成(Jenkins/GitLab CI定时触发)。
- 失败用例自动重试,关键接口实时告警(邮件/钉钉)。
-
持续优化
- 定期补充新接口,清理冗余脚本,提升用例执行效率。
成果示例:
- 覆盖80%+核心接口,回归时间从2小时缩短至15分钟。
- 发现接口逻辑Bug 20+(如并发下单库存超卖)。
(可根据实际技术栈调整,如Postman+Newman方案)
10、请介绍你都会用哪些测试用例设计方法,结合项目分别举例该方法具体如何使用的
测试用例设计方法及项目应用
1. 等价类划分
场景:用户注册(手机号校验)
- 有效等价类:11位大陆手机号(如
13812341234)→ 允许注册。 - 无效等价类:10位号码、含字母、境外号码 → 提示“格式错误”。
2. 边界值分析
场景:商品购买数量限制(1~99件)
- 测试点:
- 最小值:
1件(成功)、0件(禁止)。 - 最大值:
99件(成功)、100件(提示超限)。
- 最小值:
3. 场景法(流程覆盖)
场景:订单支付 → 退款流程
- 主流程:支付成功 → 申请退款 → 退款到账。
- 异常流:支付超时后重复支付 → 仅退款最后一笔。
4. 错误推测法
场景:支付接口安全测试
- 非常规输入:金额传
-1、支付ID篡改 → 拦截并返回“参数非法”。
5. 判定表
场景:优惠券叠加规则(满减券 + 折扣券)
| 满减券可用 | 折扣券可用 | 结果 |
|---|---|---|
| 是 | 是 | 仅满减券生效 |
| 是 | 否 | 满减券生效 |
| 否 | 是 | 折扣券生效 |
6. 正交试验法
场景:多条件搜索(价格区间 + 品牌 + 分类)
- 用正交工具生成最少用例组合,覆盖所有参数交互。
项目成果:
- 等价类+边界值减少30%冗余用例,错误推测法发现隐藏Bug 15+。
(方法选择需结合业务复杂度,如金融系统需强化判定表/安全测试)
11、讲一下你知道的Linux命令
文件/目录操作
ls -l:查看详细信息(权限/大小)cd ~:切换到家目录cp -r dir1 dir2:递归复制目录rm -rf *:强制删除(慎用!)chmod 755 file:修改文件权限
2. 文本处理
cat file.log:查看文件内容grep "error" log.txt:搜索关键词tail -f log.txt:实时追踪日志sed -i 's/old/new/g' file:批量替换文本
3. 系统监控
top:实时监控CPU/内存df -h:查看磁盘空间free -m:显示内存使用ps -ef | grep nginx:查找进程
4. 网络管理
ping baidu.com:测试网络连通性netstat -tulnp:查看端口占用scp file user@ip:/path:远程传输文件
5. 压缩/解压
tar -czvf archive.tar.gz dir:压缩目录unzip file.zip:解压zip文件
6. 权限/用户
sudo command:以管理员身份执行useradd username:创建用户passwd username:修改密码
高频组合命令:
# 统计日志中404错误的次数
grep "404" access.log | wc -l
# 查找并杀死进程
ps -ef | grep java | awk '{print $2}' | xargs kill -9
(根据实际需求扩展,如awk高级文本处理、crontab定时任务)
:
12、讲一下你知道的ADB命令
常用ADB命令速查
1. 设备连接与管理
adb devices:查看已连接的设备adb connect <IP:端口>:连接远程设备(如模拟器)adb disconnect:断开设备adb kill-server:重启ADB服务
2. 安装与卸载应用
adb install app.apk:安装APKadb install -r app.apk:覆盖安装(保留数据)adb uninstall <包名>:卸载应用
3. 文件操作
adb push local.txt /sdcard/:电脑→设备传输文件adb pull /sdcard/file.txt ~/:设备→电脑拉取文件adb shell ls /sdcard:查看设备文件列表
4. 日志与调试
adb logcat:查看实时日志adb logcat -s TAG:过滤特定标签日志(如ActivityManager)adb logcat > log.txt:保存日志到文件adb bugreport:生成完整设备报告
5. 应用与进程控制
adb shell am start -n <包名/Activity>:启动应用(如com.android.settings/.Settings)adb shell pm list packages:列出所有应用包名adb shell ps | grep <包名>:查看应用进程
6. 模拟操作
adb shell input tap x y:点击屏幕坐标adb shell input swipe x1 y1 x2 y2:滑动屏幕adb shell input text "hello":输入文本
7. 性能监控
adb shell dumpsys cpuinfo:查看CPU占用adb shell dumpsys meminfo <包名>:查看应用内存
8. 截图与录屏
adb shell screencap /sdcard/screen.png:截图adb shell screenrecord /sdcard/video.mp4:录屏(Ctrl+C停止)
高频组合命令:
# 清除应用数据
adb shell pm clear <包名>
# 重启设备
adb reboot
(适用于Android测试、自动化脚本开发)
13、讲一下你如何使用Monkey对APP进行稳定性测试的
1. 基础命令
adb shell monkey -p <包名> -v 5000
-p:指定测试的APP包名-v:日志详细级别(1~3,-v -v -v最详细)5000:随机事件次数
2. 常用参数
- 事件控制:
--throttle 300:事件间隔300ms(模拟用户操作速度)--pct-touch 60:60%事件为触屏操作(其余如滑动、按键可调整)
- 异常处理:
--ignore-crashes:崩溃后继续测试--ignore-timeouts:ANR后继续测试
- 日志输出:
> monkey.log:保存日志到文件
3. 测试场景示例
# 对微信进行10万次随机操作,侧重触屏和滑动,忽略崩溃
adb shell monkey -p com.tencent.mm \
--throttle 200 \
--pct-touch 70 \
--pct-motion 20 \
--ignore-crashes \
--ignore-timeouts \
-v -v -v 100000 > monkey.log
4. 结果分析
- 日志过滤关键词:
CRASH、ANR、Exception:定位崩溃/无响应问题Failed to post event:事件注入失败(可能权限问题)
- 统计指标:
- 测试时长、事件完成率、崩溃/ANR次数
5. 进阶技巧
- 白名单测试:通过
--pkg-whitelist-file限制只测试特定APP组合 - 种子复现:
-s 123固定随机种子,复现问题路径
输出结果示例:
Events injected: 100000
// CRASH 统计
** System appears crashed (1次)
// ANR 统计
ANR in com.tencent.mm (2次)
(适用于快速验证APP抗压能力,需结合Crash日志具体分析)
14、数据库的左连接与右连接有什么区别
左连接 vs 右连接的区别
1. 核心区别
| 连接类型 | 保留数据规则 | 结果集特点 |
|---|---|---|
| 左连接(LEFT JOIN) | 保留左表全部数据,右表无匹配则填NULL |
结果行数 ≥ 左表行数 |
| 右连接(RIGHT JOIN) | 保留右表全部数据,左表无匹配则填NULL |
结果行数 ≥ 右表行数 |
2. 示例对比
- 表结构:
- 左表
users(用户信息) - 右表
orders(订单信息)
- 左表
-- 左连接:查所有用户(含无订单用户)
SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;
-- 右连接:查所有订单(含无用户信息的订单)
SELECT * FROM users RIGHT JOIN orders ON users.id = orders.user_id;
3. 使用场景
- 左连接:主表为左表时(如“统计用户下单情况,包括未下单用户”)
- 右连接:主表为右表时(如“分析订单归属,包括异常无主订单”)
注:实际开发中,左连接更常用,右连接通常可改写为左连接(调换表顺序)。
15、MySQL中如何查询前10条,直接讲关键字即可
关键字:
SELECT * FROM 表名 LIMIT 10;
扩展用法:
- 分页查询(第2页,每页10条)
SELECT * FROM 表名 LIMIT 10 OFFSET 10; -- 或简写为: SELECT * FROM 表名 LIMIT 10, 10;
(LIMIT 是MySQL核心分页关键字)
:
16、Fiddler抓包时需要设置什么?有没有用Fiddler抓过APP的包,如何抓的?
1. 基础设置
- 允许HTTPS解密:
Tools > Options > HTTPS→ 勾选Decrypt HTTPS traffic,安装证书。 - 允许远程连接:
Tools > Options > Connections→ 勾选Allow remote computers to connect(默认端口8888)。
2. 抓APP包的步骤
- 手机与电脑同网络:连接同一Wi-Fi。
- 手机配置代理:
- 手动设置代理:
电脑IP:8888(如192.168.1.100:8888)。 - iOS/Android均需安装Fiddler证书(浏览器访问
http://电脑IP:8888下载)。
- 手动设置代理:
- 开始抓包:
- 操作APP,Fiddler自动捕获请求(过滤域名:
Filters > Hosts)。
- 操作APP,Fiddler自动捕获请求(过滤域名:
3. 关键注意事项
- 抓不到包? 检查防火墙、代理是否生效,或APP是否禁用代理(如微信)。
- Android 7+:需APP信任用户证书(或系统级证书)。
示例场景:抓取APP登录接口,分析请求参数/响应数据。
1、请进行自我介绍
背景:
1、请进行自我介绍
背景:
1、请进行自我介绍
背景: