当前位置: 首页 > news >正文

自动化测试面试题

测试用例设计方法

  • 黑盒测试
    • 等价类划分
    • 边界值分析
    • 因果图法
    • 正交实验设计
    • 判定表法
    • 错误推断法
  • 白盒测试
    • 动态测试:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
    • 静态测试:不执行程序,检查代码逻辑
  • 灰盒测试:介于黑盒和白盒之间,适用于集成测试阶段。

接口测试

  • 依据:接口文档(说明、参数、参数类型、字段长度、是否必填、实现功能等)。
  • 步骤
    • 根据接口说明设计测试用例。
    • 将测试用例转化为自动化测试脚本。
    • 运行脚本,不依赖其他接口(除登录接口)。

网络协议

  • 7层协议
    • 通信子网
      • 物理层:中继器、集线器
      • 数据链路层:网桥、交换机
      • 网络层:路由器、防火墙
    • 传输层:TCP、UDP
    • 资源子网
      • 会话层
      • 表示层
      • 应用层:FTP、HTTP、Telnet、DNS
  • FTP:工作在应用层,用于文件传输。

TCP 和 UDP 区别

  • TCP:面向连接,可靠的数据传输服务,数据单元是报文段。
  • UDP:面向无连接,不可靠,尽最大努力的传输服务,数据单元是用户数据报。

前后端分离的安全性

  • 后端验证:仅依赖前端限制不安全,需要后端进行接口验证。
  • 数据加密:前后端传输、日志打印等信息应加密,特别是涉及隐私信息(如身份证、银行卡等)。

B/S 和 C/S 架构区别

  • B/S
    • 维护成本低
    • 响应速度慢
  • C/S
    • 响应速度快
    • 安全性高
    • 适用于局域网
    • 针对不同操作系统需要分别开发,维护成本高

Bug 提交内容

  • 缺陷的测试环境
  • 功能模块
  • 缺陷描述
  • 缺陷截图
  • 缺陷的优先级
  • 缺陷的严重程度

SQL 查询

  • 查询年龄最小的5个男生:
    SELECT * FROM students WHERE gender = '男' ORDER BY age, id LIMIT 5;
    
  • 统计班级身高最高的学生:
    SELECT MAX(high) FROM students;
    SELECT * FROM students WHERE high = (SELECT MAX(high) FROM students);
    

HTTP 和 HTTPS 区别

  • HTTP:明文传输,无加密。
  • HTTPS
    • 加密传输,安全性更高。
    • 使用端口 443,HTTP 使用端口 80。
    • HTTPS 需要证书,HTTP 不需要。

访问网页速度慢的原因

  • 检查本地网络是否正常。
  • 查看网络带宽是否被占用。
  • 使用 ping 命令检查服务器响应时间。

需求测试紧急上线应对措施

  • 与开发团队和产品经理沟通。
  • 优先处理关键问题。
  • 进行快速测试和回归测试。
  • 寻求团队协助。
  • 提供明确的问题报告。

前端和后端问题判断

  • 使用抓包工具确认前端是否调用接口。
  • 检查前端传参是否正确。
  • 检查后端接口返回结果是否正确。

APP 测试和 Web 测试的区别

  • APP 测试
    • 中断测试(电话、短信、蓝牙、充电、低电量等)
    • 安装、卸载操作
    • 弱网络测试
  • Web 测试
    • 浏览器兼容性
    • 响应时间、CPU、内存、吞吐量
  • 性能指标
    • Web:响应时间、CPU、内存、吞吐量
    • APP:响应时间、CPU、内存、吞吐量、流量、电量
  • 测试工具
    • Web:Selenium
    • APP:Appium
  • 页面操作
    • Web:屏幕左上角、右下角
    • APP:手势、横竖屏、触控、前后台切换
  • 安全测试
    • Web:敏感信息泄露、跨站脚本、SQL 注入
    • APP:访问通讯录、相册、相机

JMeter 操作步骤

  1. 创建线程组。
  2. 新建 HTTP 请求默认值(输入接口服务器 IP 和端口)。
  3. 新建多个 HTTP 请求(每个请求一个用例,输入接口路径、访问方式、参数等)。
  4. 创建断言和查看结果树。

性能测试指标

  • 响应时间
  • 吞吐量
  • 并发数
  • TPS(每秒事务数)
  • QPS(每秒查询数)

项目上线后的工作

  1. 输出测试报告(测试结论、数据指标、测试人员、相关文档)。
  2. 执行线上接口自动化回归用例,确保核心服务正常。
  3. 手工回归核心业务主流程,确保核心服务正常。
  4. 回归测试新增功能,确保所有功能正常上线。
  5. 线上数据监控(1-2天)。
  6. 需求收益核算,查看新功能是否达到预期收益。

Cookie、Session 和 Token 区别

  • 存储位置
    • Session:服务器
    • Cookie、Token:客户端
  • 数据类型
    • Session:任意类型
    • Cookie:字符串
  • 安全性:Token > Session > Cookie

接口测试常见问题

  • 接口功能不符合需求或与接口文档不一致。
  • 界面操作问题(手工或自动化测试)。
  • 权限问题(角色模拟测试)。

接口测试用例设计

  • 确认接口功能是否正常。
  • 全面覆盖输入参数(正常、异常、边界情况)。
  • 使用等价类划分法和边界值分析法设计测试用例。
  • 测试参数组合(必选和可选参数)。
  • 测试约束条件(如输入非数字、超出范围、违反规则等)。

确保接口测试用例的覆盖率和准确性

  • 确保业务功能覆盖。
  • 确保业务规则覆盖。
  • 确保参数验证覆盖。
  • 确保接口异常处理覆盖。

Bug 可能存在的地方

  • 前端
  • 后端
  • 数据库

OOP 核心特性

  1. 封装性:将类的属性和实现细节进行捆绑,保护数据和隐藏实现细节。
  2. 继承性:通过父类创建子类,子类继承父类的属性和方法。
  3. 多态性:通过统一方法调用实现不同行为,提高代码灵活性和可扩展性。

三次握手和四次挥手

  • 三次握手:建立 TCP 连接的过程,确保双方准备好通信。
  • 四次挥手:断开 TCP 连接的过程,确保双方都已准备好断开连接。

接口测试用例内容

  • ID
  • 模块
  • 用例标题
  • 接口名称
  • 前置条件
  • 接口地址
  • 请求方式
  • 请求头
  • 请求数据类型
  • 请求参数
  • 预期结果
  • 测试结果

性能测试用例内容

  • 用例 ID
  • 用例标题
  • 用例描述
  • 用例步骤
  • 期望性能
  • 测试结果
  • 并发数
  • 事务平均等待时间
  • 事务最大响应时间
  • 事务最小响应时间
  • 中位数
  • 吞吐量

软件测试流程

  1. 分析测试需求
  2. 制定测试计划
  3. 设计测试用例
  4. 执行测试
  5. 编写测试报告

集成测试方法

  • 非增量式集成测试:一次性组装所有模块进行测试。
  • 增量式集成测试
    • 自顶向下集成:从主程序模块开始,逐层向下组装和测试。
      • 优点:早期验证主要控制点,减少驱动器开发成本。
      • 缺点:桩模块开发量大,底层验证延迟。
    • 自底向上集成:从底层模块开始,逐层向上组装和测试。
      • 优点:早期验证底层行为,减少桩模块开发成本。
      • 缺点:启动开发工作量大,高层接口变化频繁时影响较大。

正常流程测试

  1. 打开微信,进入“我”的页面,选择“钱包”或“支付”。
  2. 点击“银行卡”,选择“添加银行卡”。
  3. 输入银行卡号、持卡人姓名、身份证号等信息,并进行验证。
  4. 设置支付密码或进行其他安全验证。
  5. 确认添加成功,并能在银行卡列表中看到新添加的银行卡。

异常流程测试

  1. 输入错误的银行卡号、持卡人姓名或身份证号,验证系统是否正确提示错误信息。
  2. 尝试使用已绑定的银行卡号进行重复绑定,验证系统是否正确提示“该银行卡已绑定”等相关信息。
  3. 尝试在绑定过程中取消操作,验证系统是否正确处理并返回到绑定前状态。

响应时间测试

多次尝试添加银行卡,记录从点击“添加银行卡”到系统完成绑定并返回结果的时间,确保响应时间在可接受范围内。


并发测试

模拟多个用户同时尝试添加银行卡的场景,验证系统在高并发情况下的稳定性和性能表现。


密码安全性测试

  1. 尝试使用弱密码进行绑定,验证系统是否正确提示“密码强度不足”等相关信息。
  2. 验证支付密码是否采用加密存储和传输,确保用户密码安全。

信息泄露测试

验证在添加银行卡过程中,系统是否对敏感信息(如银行卡号、身份证号等)进行了脱敏处理或加密显示。


不同操作系统测试

在不同版本的 Android 和 iOS 操作系统上尝试添加银行卡,验证系统在不同平台上的兼容性。


不同设备型号测试

在不同品牌和型号的手机、平板等设备上尝试添加银行卡,验证系统在不同设备上的兼容性。


银行卡号长度测试

  1. 验证系统是否能正确处理符合标准的银行卡号长度(如16位、19位等)。
  2. 尝试输入过短或过长的银行卡号,验证系统是否能正确提示错误信息。

输入字符限制测试

  1. 验证在输入持卡人姓名、身份证号等信息时,系统是否对输入字符的长度、类型等进行了限制。
  2. 尝试输入超出限制的字符,验证系统是否能正确提示错误信息。

SQL

  • 比较运算符
    • <>!=:不等于
    • BETWEEN...AND...:在某个范围之内(含最小值和最大值)
    • IN(...):在列表中的值(多选一)
    • LIKE:模糊匹配(% 匹配任意字符,_ 匹配单个字符)
    • IS NULL:是 NULL
    • AND&&:并且(多个条件同时成立)
    • OR||:或者(多个条件任意一个成立&#x

相关文章:

  • 软考高级系统架构设计师-第15章 知识产权与标准化
  • C语言KMP算法实现
  • 【外研在线-注册/登录安全分析报告】
  • leetcode 1143. Longest Common Subsequence
  • 基于springboot的商城
  • 智能体团队 (Agent Team)
  • MVCC介绍
  • NEAT 算法解决 Lunar Lander 问题:从理论到实践
  • 计算机组成原理知识点汇总(四)输入输出系统
  • 计算机是如何看待数据的?
  • 【C++详解】C++入门(一)命名空间、缺省参数、函数重载
  • dubbo SPI插件扩展点使用
  • Python变量全解析:从基础到高级的命名规则与数据类型指南
  • 一招破敌,掌控 React 渲染术:createRoot 与 root.render
  • 信创时代编程开发语言选择指南:国产替代背景下的技术路径与实践建议
  • Java学习手册:Filter 和 Listener
  • SSM--AOP 日志
  • 2025/4/20 实验作业 linux系统权限相关实验
  • 股票分析技术指标【MACD】
  • 集合框架(重点)
  • 全球安全倡议提出三周年,外交部介绍有关情况
  • 年近九旬的迪图瓦,指挥能量比盛年更为强劲
  • 鲁比奥称“美或退出俄乌谈判”,欧洲官员:为了施压乌克兰
  • 白宫慌了!将设工作组紧急处理对中国加征关税危机
  • “80后”辽宁石油化工大学副校长杨占旭已任阜新市领导
  • 云南:近两千亩拍得土地因规划变更不得开发,政府要求转型、企业无力为继