这是一份非常经典的软件测试/测试开发面试题库,涵盖了从技术深度、项目经验到软技能和职业规划的各个方面。
💡 核心策略
面试官问这些问题,主要考察三个维度:
-
硬实力:技术深度(自动化、接口、Selenium)、业务理解。
-
软实力:沟通能力(特别是与开发的沟通)、问题解决能力。
-
潜力:职业规划、学习能力、抗压能力、主动性。
下面我挑选其中几个高频且容易拉开差距的题目进行详细解答。
🔥 高频核心题解析
1. 2.10 【高频考题】开发不认可提的bug
❌ 错误回答:
"我就找产品经理评理"或者"我不管,我觉得这就是bug"。
(这种回答显得情商低,缺乏职业素养)
✅ 正确思路(STAR法则 + 协作心态):
"我会把这看作一次协作沟通,而不是对抗。我的处理步骤通常是:
自查自纠:先确认自己的bug描述是否清晰,有没有复现步骤,是不是因为测试环境差异导致的偶发问题。我会录制视频或截图,确保证据确凿。
理解立场:私下和开发同学沟通,询问他认为不是bug的具体原因。是因为需求理解不一致?还是属于性能优化而非功能缺陷?
对标需求 :如果沟通后仍存疑,我会回归到需求文档 或产品PRD,看是否违背了产品设计初衷。如果是明确的业务逻辑错误,我会拿文档说话。
引入第三方:如果双方僵持,我会邀请产品经理或项目经理介入,由产品方来做最终裁决。
尊重结论:如果最终判定为非bug,我会更新用例或记录备注,避免下次重复提报。"
2. 2.6 描述Selenium实现自动化测试的流程
✅ 标准答案(面试必背):
Selenium自动化测试的核心流程主要包括以下几个阶段:
环境准备:搭建测试环境,配置好浏览器驱动(如ChromeDriver),安装Selenium库及相关语言(Python/Java)。
脚本开发:
使用WebDriver打开浏览器并访问目标页面。
通过元素定位(ID、XPath、CSS Selector等)找到页面元素。
执行操作:如输入文本(send_keys)、点击(click)、下拉选择等。
使用显式等待或隐式等待确保元素加载完成。
断言验证:通过断言(Assert)来判断实际结果与预期结果是否一致,从而判定测试通过与否。
测试报告:使用Allure、HTMLTestRunner等生成可视化的测试报告。
持续集成:通过Jenkins定时或触发执行自动化脚本,实现回归测试的自动化。
3. 2.7 设计测试用例的万能思路
✅ 万能公式(边界值 + 等价类 + 场景法):
我通常遵循"从粗到细"的思路:
提取测试点:先梳理需求,把功能点拆解出来。
基础覆盖 :使用等价类划分 和边界值覆盖正常和异常输入(比如输入框长度限制)。
流程覆盖 :使用场景法模拟用户的实际业务流程(比如登录-下单-支付的全链路)。
异常覆盖 :考虑异常场景(如断网、重复提交、权限不足)。
组合覆盖 :考虑组合条件(如不同账号类型 + 不同支付方式)。
回归用例:将核心功能用例转化为自动化用例。
4. 2.11 软件测试和软件测试开发的区别
✅ 核心区别(技术栈 + 职责):
软件测试(Test) :更偏向于功能测试,侧重于发现bug。主要负责需求评审、用例编写、手工执行、缺陷跟踪,技术要求相对较低(但逻辑思维要强)。
软件测试开发(Test Dev) :更偏向于开发 。不仅要会测试,还要会写代码搭建自动化框架,负责接口自动化、UI自动化、性能测试工具的开发,以及CI/CD的集成。薪资更高,技术深度更深。
5. 2.13 当不同的项目存在大量重复的用例
✅ 回答思路(自动化 + 复用):
"我会考虑引入自动化测试 和模块化的设计思路:
将这些重复的用例抽取出来,作为公共用例库。
利用数据驱动(Data-Driven)的方式,通过读取Excel或CSV中的数据来驱动同一个脚本,避免重复编写。
使用**Page Object Model (POM)** 模式,将页面元素和操作封装成独立的类,实现代码复用。
建立测试组件库,将常用的校验逻辑、接口请求封装成函数,供各个项目调用。"
6. 2.19 让你去做纯功能测试你愿意吗
✅ 高情商回答:
"我当然愿意。因为功能测试是测试的基石,只有把功能测试做扎实,才能更好地发现深层的问题。
而且,即使是纯功能测试,也需要很强的逻辑思维和业务理解能力。在做功能测试的过程中,我可以积累丰富的业务经验,为以后向自动化测试或性能测试转型打下坚实的基础。同时,我也会主动思考如何用工具来提高功能测试的效率,比如编写一些辅助脚本或测试用例管理工具。"
7. 2.3 个人的职业规划是什么
✅ 结构化学术回答(短期+中期+长期):
短期(1-2年):夯实基础,熟练掌握公司的业务和测试流程,提升自动化测试脚本的编写能力,能够独立完成测试任务。
中期(3-5年) :成为团队中的核心测试骨干,掌握测试框架的搭建与维护,能够带领小组完成大型项目的测试工作,或者深入研究专项测试(如性能、安全)。
长期(5年以上) :成为测试专家 或测试架构师,不仅懂技术,还懂流程管理,能够推动整个团队的测试体系建设和效率提升,或者在某一技术方向上有深入的研究和贡献。
🎯 其他题目的快速应答要点
-
2.1 选择走测试为什么还要学这么多的开发...
- 答:现代测试越来越离不开自动化,学开发是为了更好地写自动化脚本、定位问题、理解系统架构,提升测试效率,而不仅仅是点点点。
-
2.8 黑盒测试用的多还是白盒测试用的多?
- 答 :在功能测试阶段,黑盒测试用得最多,因为测试人员通常不需要关注内部代码逻辑。白盒测试主要在单元测试阶段由开发使用。
-
2.16 如何判断是前端问题还是后端问题?
- 答:通过抓包工具(如Fiddler)。如果前端发出的请求正确,但返回的数据不符合预期,通常是后端问题;如果请求都没发出去,或者页面渲染错误,通常是前端问题。
-
2.17 自动化元素查找失败的原因有哪些?
- 答:定位器写错、元素未加载完成(缺少等待)、元素在iframe中、元素被遮挡、浏览器版本与驱动不匹配等。
📌 面试小贴士
-
STAR原则:回答问题时,尽量使用"情境(Situation)- 任务(Task)- 行动(Action)- 结果(Result)"的结构,显得逻辑清晰。
-
突出亮点:如果你有自动化项目经验,一定要多讲,这是加分项。
-
态度谦逊:即使遇到不会的问题,也可以说"这个问题我目前不太熟悉,但我可以分享我的思考思路......",表现出你的学习能力和思考深度。
祝你面试顺利,拿下心仪的Offer!