软件面试相关问题整理

一、接口测试

1. 测试数据管理

原则:数据与脚本分离

数据分类与存放策略

  • 全局参数(如账号密码):存放在配置文件(如ini格式)
  • 一次性消耗数据(如注册数据):使用随机函数生成
  • 多组测试参数:采用参数化,存放于yaml、text、json、excel等文件

两大禁忌

  1. 测试数据不能硬编码在代码中
  2. 面试时避免说"将少量数据放在.py文件开头"

2. 接口测试重点

  • 接口地址和参数的正确性
  • 接口返回与预期结果的一致性
  • 数据库数据的正确性验证

3. Fiddler断点测试作用

  1. 构造请求数据:突破表单限制,绕过前端校验,验证后端校验和数据库数据
  2. 拦截响应数据:修改响应实体,验证后端返回在前端的展示效果

4. 接口测试流程

  • 关注接口地址和参数是否正确
  • 验证接口返回是否与预期一致
  • 检查数据库数据的正确性

二、H5测试

1. 业务逻辑测试

登录测试

  • 客户端已登录 → H5保持登录状态
  • 客户端未登录 → H5点击登录需拉起native登录
  • 取消登录后能否再次拉起或显示提示

翻页测试

  • 数据分页加载时,验证后续页面数据正确性
  • 快速操作场景中,请求页数是否依次递增
  • 快速上拉时是否发送对应请求

刷新与返回测试

  • 下拉刷新是否保持当前页面
  • 主动刷新是否保持当前页面
  • 返回操作是否跳转到期望页面

数据请求与返回

  • 提交数据是否正确整理到后台
  • 请求是否返回正确数据

2. H5适配测试

重点覆盖

  • 大屏(7201280)与小屏(320480)手机
  • Android 2.3、Android 4.X系统
  • iOS 5、6、7系统
  • 浏览器展示效果

3. 安全测试

  • 涉及金钱相关功能需接入支付宝实名认证
  • 链接分享需做限制,防止脚本操作

4. 用户体验测试

资源优化

  • 图片不大于50kb
  • 资源压缩与CDN加载
  • 二次发布后的有效更新
  • 文本自适应屏幕而非截断

流量控制

  • 静态资源本地缓存
  • 大数据量时做分页加载

页面性能

  • 关注首屏加载时间
  • 弱网络下的loading提示
  • 接口异常时的友好提示
  • 页面刷新/加载时避免抖动

手机操作

  • 锁屏后页面展示
  • 后台重新呼出展示
  • 滑动流畅性与点击准确性

弱网络体验

  • 网络状态差时的降级处理

5. 埋点数据检查

  • 与前端确认埋点情况
  • 收集用户点击量数据

三、H5测试方法

1. 功能测试

  • 页面请求:数据正确性、重复请求、响应速度
  • Application Cache:Cookie值正确性、清除后表现、重试机制
  • Session失效机制
  • 返回逻辑:页面返回与浏览器返回
  • 页面刷新
  • 图片适配与动画加载
  • 转场动画与loading效果
  • 隐私模式下的功能正常性
  • 接口异常提示
  • 输入框校验(黑洞词汇、特殊字符)
  • 弱网降级处理
  • 网络切换影响
  • 横竖屏切换布局
  • 滑动定位准确性
  • 浮层拖动穿透
  • 文件导入导出功能

2. 适配测试

  • 机型适配(高中低端代表机型)
  • 操作系统适配(Android 6.x~8.x,iOS 9.x~13.x)
  • 品牌适配(OPPO、华为、小米、三星、vivo、魅族、中兴等)

3. 性能测试

  • 关键指标:加载时间、页面大小、请求数量、错误数
  • 测试工具:云测平台、dynatrace、yslow、page speed、firebug
  • 翻页测试:快速连续翻页时的请求处理

4. 安全测试

  • URL直接请求拦截
  • 接入集团安全,设置白名单
  • 防止信息窃取和财产盗取

5. 线上回归

  • 4G网络下验证功能
  • 检查测试环境与生产环境URL差异

6. 接口测试关注点

  • 请求返回结果符合预期
  • 参数边界值校验
  • 入参错误处理
  • 响应性能
  • 敏感信息加密传输

四、APP测试点

1. 移动测试设计要点

安装测试:应用程序正确安装到设备

软件权限

  • 扣费风险:短信、电话、网络连接提醒
  • 隐私泄漏风险:访问手机信息、联系人信息

登录测试

  • 删除/修改后的用户登录
  • 登录超时处理

应用切换

  • 后台切换回前台的功能状态
  • 程序崩溃检查
  • 数据自动更新
  • 锁屏解屏后的应用状态
  • 电话中断后的功能恢复
  • 用户切换后的数据清理

更新测试

  • 新版本更新提示
  • 非强制升级的用户取消
  • 强制升级的处理
  • 本地直接更新

消息推送

  • 不接受推送时的消息接收
  • 推送消息与用户身份的匹配

性能测试

  • 断网重启后的正常启动
  • 长期操作下的系统资源占用

交叉事件

  • 运行时切换网络
  • 运行时使用蓝牙
  • 运行时使用相机、计算器等设备

兼容性测试

  • 不同系统和分辨率的兼容性

用户体验测试

  • 用户引导设计
  • 菜单层次深度
  • 交互流程分支
  • 选项布局合理性
  • 数据加载量控制
  • 按钮点击范围适中

网络环境测试

  • 无网络时的友好提示
  • 弱信号下的功能正常性和防crash
  • 各种网络环境下的应用表现

服务器异常测试

  • 域名解析故障(404等)的异常处理

其他测试

  • 中文字符处理
  • 信息重复性检查
  • 输入法表情使用
  • 回车键功能检查

五、通用测试思路

1. 对象测试方法(如纸、杯子)

  • 从物体本身的属性/功能出发
  • 逐步拓展测试范围

2. 功能测试通过标准

  • 测试用例执行完毕
  • 通过率95%以上
  • 无一级bug
  • 无影响功能的二级bug
  • 界面问题或非关键bug可延后处理

3. APP测试与WEB测试差异

参考一

  • 性能测试:APP需增加流量和耗电量测试
  • 兼容性测试:WEB兼容浏览器,APP兼容手机设备
  • 安装测试:APP存在客户端安装测试
  • 专项测试:交叉事件、操作类型、网络测试
  • 更新机制:WEB同步更新,APP需用户更新客户端

参考二

  • 中断测试:来电、短信、蓝牙、闹钟等中断
  • 安装卸载:版本升级测试
  • 兼容性:不同手机型号、厂家、分辨率
  • 测试工具:Fiddler用于抓包和模拟网络延时

六、测试思路与实践

1. 模块测试设计(如注册模块)

测试思路:数据 → 入口 → 出口 → 数据库验证

步骤

  1. 需求分析(输入、处理、输出分析)
  2. 数据构造
  3. 编写测试用例

分析维度

  • 输入分析:长度、类型、规则、空值、重复
  • 处理分析:正常处理、异常处理
  • 输出分析:前台、后台、数据

2. 自动化测试原则

  • 使用场景:APP升级时测试原有功能影响
  • 测试范围:重要或重复调用的接口
  • 用例设计:只需设计正向用例
  • 脚本要求:可重复执行,最后清除新增数据
  • 组织方式:一个线程组只设计一个取样器

3. 功能测试心得体会

  • 深入理解业务需求
  • 加强团队沟通
  • 关注测试用例覆盖率

4. 业务流程理解示例

云上殿堂在线祭奠项目

  • 项目核心:追思平台,提供创建殿堂、在线祭拜、亲友留言
  • 功能模块:后台(审核管理)、PC端、小程序
  • 用户角色:堂主(殿堂创建者)、非堂主
  • 闭环流程:用户创建殿堂 → 后台审核 → 殿堂展示 → 用户互动(送礼、留言) → 内容审核展示

七、开发流程

1. 需求分析

  • 接收业务需求
  • 需求调研与分析
  • 评估工作量和优先级

2. 方案设计&评审

  • 输出流程图并与需求方确认
  • 原型设计
  • PRD文档编写
  • 必要成果物:状态流程图、产品文档、原型

3. Coding&自测

  • 内部评审(流程图→原型→PRD)
  • 复杂需求分阶段评审
  • 评审通过后进行需求宣讲

4. 测试

  • 原型设计与需求方确认
  • 前端文案(页面文案、短信通知)与业务方确认

5. 部署上线

  • 文档上传wiki
  • 建立需求JRA并关联wiki
  • 提前3天发出宣讲邮件
  • 预订会议室(含zoom)

相关推荐
Lee川1 小时前
优雅进化的JavaScript:从ES6+新特性看现代前端开发范式
javascript·面试
Lee川5 小时前
从异步迷雾到优雅流程:JavaScript异步编程与内存管理的现代化之旅
javascript·面试
晴殇i6 小时前
揭秘JavaScript中那些“不冒泡”的DOM事件
前端·javascript·面试
绝无仅有7 小时前
Redis过期删除与内存淘汰策略详解
后端·面试·架构
绝无仅有7 小时前
Redis大Key问题排查与解决方案全解析
后端·面试·架构
AAA梅狸猫8 小时前
Looper.loop() 循环机制
面试
AAA梅狸猫8 小时前
Handler基本概念
面试
Wect9 小时前
浏览器缓存机制
前端·面试·浏览器
掘金安东尼9 小时前
Fun with TypeScript Generics:玩转 TS 泛型
前端·javascript·面试
掘金安东尼9 小时前
Next.js 企业级落地
前端·javascript·面试