【五一跳槽季】测试面试官爱问的技术汇总(附视频教程及面试题)

【五一跳槽季】测试面试官爱问的技术汇总(附视频教程及面试题)
最新回答
沵残留的余温ゝ

2021-11-21 17:34:15

五一跳槽季软件测试面试高频技术点汇总如下,涵盖核心板块及典型问题

一、软件测试基础
  • 兼容性测试

    定义:验证软件在不同环境(如浏览器、操作系统、硬件)下的运行能力。

    侧重方面:浏览器兼容性(Chrome/Firefox/Edge等)、操作系统兼容性(Windows/Linux/macOS)、分辨率适配、硬件配置(如不同内存、CPU)。

  • 程序运行慢的排查方法

    监控系统资源(CPU、内存、磁盘I/O)是否占用过高。

    检查程序日志,定位耗时操作(如数据库查询、循环处理)。

    对比同环境下其他程序的运行效率,判断是否为程序本身问题。

  • 测试策略类型

    功能测试、性能测试、安全测试、兼容性测试、回归测试、冒烟测试。

  • 正交表测试用例设计特点

    用最少的用例覆盖所有输入条件的组合,高效且均衡。

  • 测试用例设计完整过程

    需求分析 → 提取测试点 → 编写用例(含前置条件、步骤、预期结果) → 评审 → 维护更新。

  • 单元测试策略

    独立测试每个模块,使用桩模块(Stub)或驱动模块(Driver)模拟依赖项。

  • 软件缺陷记录内容

    缺陷ID、标题、描述、复现步骤、严重程度、优先级、环境信息、截图/日志、关联需求。

    高质量提交技巧:清晰描述复现路径,避免模糊表述(如“偶尔出错”),提供日志或截图。

二、MySQL
  • 事务的ACID特性

    原子性(Atomicity):事务不可分割,要么全部成功,要么全部回滚。

    一致性(Consistency):事务执行后数据库状态保持合法。

    隔离性(Isolation):并发事务互不干扰(通过隔离级别实现)。

    持久性(Durability):事务提交后结果永久保存。

  • 事务隔离级别与问题

    读未提交(Read Uncommitted):脏读(读到未提交数据)。

    读已提交(Read Committed):不可重复读(同一事务内多次读取结果不同)。

    可重复读(Repeatable Read):幻读(同一事务内多次查询返回不同行数)。

    串行化(Serializable):性能最低,解决所有并发问题。

  • MySQL解决幻读的方式

    通过多版本并发控制(MVCC)间隙锁(Gap Lock)实现可重复读隔离级别下的幻读防护。

  • drop、delete与truncate的区别

    drop:删除表结构及数据,不可回滚。

    delete:删除数据,可回滚,支持条件删除。

    truncate:清空表数据,不可回滚,效率高于delete。

三、Linux
  • 常用操作场景

    部署测试环境、查看日志(tail -f)、监控资源(top/htop)、文件操作(grep/awk)。

  • 软件安装方式

    源码编译:./configure → make → make install。

    包管理器:apt(Debian系)、yum(CentOS)、dnf(Fedora)。

  • 远程连接工具

    SSH(命令行)、XshellSecureCRTMobaXterm

  • 代码补丁更新步骤

    拉取最新代码:git pull 或 svn update。

    应用补丁:git apply 或 patch -p1 < file.patch。

四、Web测试
  • 测试计划核心内容

    目标、范围、策略、资源分配、时间进度、风险评估。

    最重要部分:测试范围(明确覆盖哪些功能)和资源分配(人力、时间、环境)。

  • 性能测试目的

    验证系统在高并发下的响应时间、吞吐量、资源利用率,发现瓶颈。

  • 性能测试关键点

    明确性能指标(如TPS、响应时间)、设计真实场景、监控系统资源、分析结果并优化。

五、接口测试
  • 接口测试流程

    需求分析 → 编写测试用例 → 准备测试数据 → 执行测试(工具如Postman/JMeter)→ 比对数据库 → 提交缺陷。

  • Cookie、Session、Token区别

    Cookie:客户端存储的键值对,用于身份识别。

    Session:服务端存储的用户会话信息,依赖Cookie传递Session ID。

    Token:无状态令牌(如JWT),服务端无需存储,适合分布式系统。

  • HTTP请求方法区别

    GET:请求数据,参数在URL中,有长度限制,可缓存。

    POST:提交数据,参数在请求体中,无长度限制,不可缓存。

六、APP测试
  • APP与Web测试区别

    测试点:中断测试(来电/短信)、网络切换(WiFi/4G)、电量消耗、安装/卸载、横竖屏适配。

    工具:抓包工具(Fiddler/Charles)、自动化工具(Appium/UIAutomator)。

  • Alpha与Beta测试

    Alpha测试:内部环境测试,开发者参与。

    Beta测试:真实用户环境测试,开发者不直接参与。

七、Python
  • super()的作用

    调用父类方法,解决多继承中的方法解析顺序(MRO)问题。

    Python2 vs Python3:Python2需显式传递类名和self(super(Child, self).method()),Python3可直接用super().method()。

  • 列表与字典区别

    列表:有序集合,通过索引访问,元素可重复。

    字典:无序键值对集合,通过键访问,键唯一。

  • 一行代码去重并排序

    L = [1, 2, 3, 11, 2, 5, 3, 2, 5, 3]; result = sorted(set(L)) # 输出 [1, 2, 3, 5, 11]
八、性能测试
  • 性能测试方案内容

    测试目标、范围、环境、工具、数据模型、业务模型、测试策略、风险评估。

  • 性能指标确定方法

    参考业务需求(如并发用户数)、行业基准(如电商TPS≥1000)、历史数据对比。

  • 性能问题分析步骤

    定位瓶颈(CPU/内存/磁盘I/O/网络)、分析日志、使用工具(如perf/nmon)、优化代码或配置。

附:面试资料领取提示评论区可获取软件测试大厂面试真题资料,涵盖完整备战题库及视频教程。