2021-11-21 17:34:15
五一跳槽季软件测试面试高频技术点汇总如下,涵盖核心板块及典型问题:
一、软件测试基础兼容性测试
定义:验证软件在不同环境(如浏览器、操作系统、硬件)下的运行能力。
侧重方面:浏览器兼容性(Chrome/Firefox/Edge等)、操作系统兼容性(Windows/Linux/macOS)、分辨率适配、硬件配置(如不同内存、CPU)。
程序运行慢的排查方法
监控系统资源(CPU、内存、磁盘I/O)是否占用过高。
检查程序日志,定位耗时操作(如数据库查询、循环处理)。
对比同环境下其他程序的运行效率,判断是否为程序本身问题。
测试策略类型
功能测试、性能测试、安全测试、兼容性测试、回归测试、冒烟测试。
正交表测试用例设计特点
用最少的用例覆盖所有输入条件的组合,高效且均衡。
测试用例设计完整过程
需求分析 → 提取测试点 → 编写用例(含前置条件、步骤、预期结果) → 评审 → 维护更新。
单元测试策略
独立测试每个模块,使用桩模块(Stub)或驱动模块(Driver)模拟依赖项。
软件缺陷记录内容
缺陷ID、标题、描述、复现步骤、严重程度、优先级、环境信息、截图/日志、关联需求。
高质量提交技巧:清晰描述复现路径,避免模糊表述(如“偶尔出错”),提供日志或截图。
事务的ACID特性
原子性(Atomicity):事务不可分割,要么全部成功,要么全部回滚。
一致性(Consistency):事务执行后数据库状态保持合法。
隔离性(Isolation):并发事务互不干扰(通过隔离级别实现)。
持久性(Durability):事务提交后结果永久保存。
事务隔离级别与问题
读未提交(Read Uncommitted):脏读(读到未提交数据)。
读已提交(Read Committed):不可重复读(同一事务内多次读取结果不同)。
可重复读(Repeatable Read):幻读(同一事务内多次查询返回不同行数)。
串行化(Serializable):性能最低,解决所有并发问题。
MySQL解决幻读的方式
通过多版本并发控制(MVCC)和间隙锁(Gap Lock)实现可重复读隔离级别下的幻读防护。
drop、delete与truncate的区别
drop:删除表结构及数据,不可回滚。
delete:删除数据,可回滚,支持条件删除。
truncate:清空表数据,不可回滚,效率高于delete。
常用操作场景
部署测试环境、查看日志(tail -f)、监控资源(top/htop)、文件操作(grep/awk)。
软件安装方式
源码编译:./configure → make → make install。
包管理器:apt(Debian系)、yum(CentOS)、dnf(Fedora)。
远程连接工具
SSH(命令行)、Xshell、SecureCRT、MobaXterm。
代码补丁更新步骤
拉取最新代码:git pull 或 svn update。
应用补丁:git apply 或 patch -p1 < file.patch。
测试计划核心内容
目标、范围、策略、资源分配、时间进度、风险评估。
最重要部分:测试范围(明确覆盖哪些功能)和资源分配(人力、时间、环境)。
性能测试目的
验证系统在高并发下的响应时间、吞吐量、资源利用率,发现瓶颈。
性能测试关键点
明确性能指标(如TPS、响应时间)、设计真实场景、监控系统资源、分析结果并优化。
接口测试流程
需求分析 → 编写测试用例 → 准备测试数据 → 执行测试(工具如Postman/JMeter)→ 比对数据库 → 提交缺陷。
Cookie、Session、Token区别
Cookie:客户端存储的键值对,用于身份识别。
Session:服务端存储的用户会话信息,依赖Cookie传递Session ID。
Token:无状态令牌(如JWT),服务端无需存储,适合分布式系统。
HTTP请求方法区别
GET:请求数据,参数在URL中,有长度限制,可缓存。
POST:提交数据,参数在请求体中,无长度限制,不可缓存。
APP与Web测试区别
测试点:中断测试(来电/短信)、网络切换(WiFi/4G)、电量消耗、安装/卸载、横竖屏适配。
工具:抓包工具(Fiddler/Charles)、自动化工具(Appium/UIAutomator)。
Alpha与Beta测试
Alpha测试:内部环境测试,开发者参与。
Beta测试:真实用户环境测试,开发者不直接参与。
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)、优化代码或配置。
附:面试资料领取提示评论区可获取软件测试大厂面试真题资料,涵盖完整备战题库及视频教程。