测试面试题集锦(一)| 软件测试常见必考问题与流程篇(附答案)

简介: 本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的、网络搜集(完善)、工作日常讨论等,分为以下十个部分,供大家参考。如有错误的地方,欢迎指正。有更多的面试题或面试中遇到的坑,也欢迎补充分享。希望大家都能找到满意的工作,共勉之!

本文为霍格沃兹测试学院学员学习笔记。

本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的、网络搜集(完善)、工作日常讨论等,分为以下十个部分,供大家参考。如有错误的地方,欢迎指正。有更多的面试题或面试中遇到的坑,也欢迎补充分享。希望大家都能找到满意的工作,共勉之!

软件测试工程师面试题系列篇 | 目录

1.测试常见问题与流程篇
2.测试工具篇
3.计算机网络知识篇
4.数据库篇
5.Linux 篇
6.Python 编程篇
7.自动化测试篇:包含 Selenium、Appium 和接口测试
8.性能测试篇
9.软素质篇:10 大灵魂拷问
10.反问面试官篇

一、测试常见问题和流程篇

1.介绍一下测试流程(重点,常见!)
  • 需求评审、测试计划、测试用例、用例评审、冒烟测试、测试执行、验收测试、风险评估、上线观察、问题跟进、测试报告、复盘会议;
  • 根据自己的日常经验来回答,每个点的工作内容都需要清晰掌握,有可能就某个点如何工作进行提问。
2.介绍一下测试方法
  • 按阶段:单元测试、集成测试、系统测试、验收测试
  • 按手段:黑盒测试、白盒测试、灰盒测试
  • 其他:冒烟测试、回归测试
3.介绍一下测试用例设计方法(用例设计方法&测试方法需分清楚)
  • 黑盒测试用例设计:等价类划分法、边界值分析法、错误推测法、因果图法、正交试验分析法、流程分析法
  • 白盒测试:语句覆盖、判定覆盖、条件覆盖、条件组合覆盖、判定/条件覆盖、路径覆盖
4.设计一个登录页面的用例(提供某个场景设计用例,重点!)
  • 功能测试:正确输入、为空输入、字符类型校验、长度校验、密码是否加密显示、大写提示、跳转页面是否成功、登出后用另一个账号登录
  • UI:界面布局合理、风格统一、界面文字简洁好理解、没有错别字
  • 性能测试:打开登录页面需要几秒、点击登录跳转首页需要几秒、多次点击、多人点击
  • 安全性:用户名和密码是否加密发送给服务器、错误登录的次数限制(防止暴力破解)、一台机器登录多个用户、一个用户多方登录、检查元素能否看到密码
  • 兼容性测试:不同浏览器、不同的平台(Windows、Mac)、移动设备能否工作
  • 易用性:输入框可否tab键切换、回车能否登录等
5.举例说明项目推进的能力(针对个人评价的举例说明)
  • (例)推动开发解决菜单权限需退出登录才可应用的问题。
  • 描述:XX项目上线后,由于权限更新导致用户无法使用旧界面+用户不懂得自己退出登录以应用新菜单权限,线上多个用户反馈平台相关功能无法使用。处理:远程操作+线上指导出现问题的用户退出登录,凌晨脚本批量强制用户退出登录。推进:在下一次版本中,推动开发处理菜单权限更新问题,以防每次更新菜单都出现用户使用不了功能的问题。结果:处理为用户登录期间仍可使用旧界面,直到用户退出重新登录后,才应用新菜单权限;
  • 推动冒烟测试:冒烟不通过,测试召开会议罗列项目不通的模块、存在的问题,一一对应到每个人去跟进,得到解决的时间,后续项目群说明并艾特每个人跟进。测试准时验收。
  • 推动文档质量:在日常工作中遇到需求文档、设计文档、接口文档不规范或不详细的在绝大多数,这个时候就要通过沟通或以bug的形式,促使各个岗位将各自的文档完善。
  • 结合自己的个人经验,从问题描述+处理过程+推进表现+结果,一一说明。
6.测试中遇到的比较难的一个项目是?(掌握自己简历上的项目)
  • XX项目:这个项目是一个新项目、需要对接第三方、从协助测试产品模块到转手负责整个项目加强了一定的需求理解难度、订单逻辑不熟悉、其中需求的问题推进比较困难。
  • 针对这些困难,测试方面:先快速了解需求,并与原先的测试负责人了解具体的进度和需要注意的测试点。开发方面:迅速与开发人员了解订单逻辑,以及与第三方对接的过程。产品方面:遇到某个需求问题产品不接受、最后汇报领导+开会讨论了较好的处理方案。虽然过程问题比较多,但是通过项目组的集体努力,最后项目得以按时上线
  • 说明项目(最好是简历上的项目方便面试官进一步提问)。描述有难度的地方+如何处理+结果
7.印象深刻的一个bug?
  • 隐藏得比较深的bug、影响比较大的bug、处理过程比较曲折的bug。根据自己的经验描述:如何发现的、如何处理、影响、结果、反思。
  • 举例说明:如升级版本兼容性问题、接口安全性问题、数据库安全性问题、服务器资源占用溢出问题、代码逻辑问题等
8.你们公司是不是敏捷开发?介绍一下敏捷开发?
  • 是,敏捷快速迭代、多版本同时迭代
  • 敏捷开发属于增量式开发,对于需求范围不明确、需求变更较多的项目而言可以很大程度上响应和拥抱变化、主张简单、拥抱变化、可持续性、递增的变化、高质量的工作、快速反馈、软件是你的主要目标
9.复盘会议的主要内容有哪些?
  • 这点需要结合自己平时参与的项目会议举例说明。如线上bug分析、优化改进策略、bug优先级等等
10.App 的兼容性怎么测,App 的接口测试怎么测?
  • 系统兼容(ios、安卓)、机型兼容(iPhone、华为、小米、三星、vivo、OPPO)、分辨率兼容、软件本身向前向后兼容
  • 接口测试:获取接口文档,使用fiddler抓包工具获取接口的请求方式、url、请求参数、返回参数,然后使用postman、jmeter进行测试
11.Web 端测试和 App 端测试有何不同(常见)
  • 系统结构方面

    • Web 项目,b/s架构,基于浏览器的;Web 测试只要更新了服务器端,客户端就会同步会更新;
    • App 项目,c/s结构的,必须要有客户端;App 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍;
  • 兼容方面

    • Web项目:a. 浏览器(火狐、谷歌、IE等)b. 操作系统(Windows7、Windows10、Linux等)
    • App项目:a. 设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)b. 手机设备可根据 手机型号、分辨率不同
  • 性能方面

    • web项目 需监测 响应时间、CPU、Memory
    • app项目 除了监测 响应时间、CPU、Memory外,还需监测流量、电量等
  • 相对于 Wed 项目,APP有专项测试

    • 干扰测试:中断,来电,短信,关机,重启等
    • 弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)
    • 安装、更新、卸载

      • 安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况
      • 卸载:需考虑 卸载后是否删除 App 相关的文件
      • 更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新
  • 界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换
  • 安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等
  • 边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等
  • 权限测试:设置某个 App 是否可以获取该权限,例如是否可访问通讯录、相册、照相机等

更多内容,我们在后续文章分享。

免费领取:接口测试+性能测试+自动化测试+测试开发+测试用例+简历模板+测试文档

相关文章
|
3天前
|
机器学习/深度学习 人工智能 测试技术
软件测试中的自动化测试实践与挑战
本文深入探讨了软件测试领域中的自动化测试,从基本概念到实际应用案例,揭示了自动化测试在提升软件开发效率和质量中的关键作用。同时,文章也分析了在实施自动化测试过程中面临的主要挑战,并提出了相应的解决策略。
18 5
|
5天前
|
敏捷开发 测试技术 UED
软件测试的艺术:探索性测试的力量
【9月更文挑战第14天】在软件开发的海洋中,测试是确保航船不沉没的灯塔。本文将带你领略一种非传统的测试方法——探索性测试的魅力和力量。我们将一起揭开这种方法的神秘面纱,通过具体案例分析,理解它如何提升软件质量和用户体验。准备好扬帆起航,一起探索未知吧!
|
4天前
|
监控 jenkins 测试技术
软件测试中的自动化测试策略与实践
本文将深入探讨自动化测试在软件开发中的重要性及其实施策略。我们将从自动化测试的基本概念入手,分析其在提高软件质量、缩短开发周期和降低维护成本方面的优势。通过具体案例,展示如何有效地规划和执行自动化测试,以及如何评估其效果。
13 1
|
6天前
|
安全 测试技术 UED
软件测试的艺术:探索性测试的力量
【9月更文挑战第12天】在软件开发的海洋中,测试是导航船只安全航行的关键。本文将深入探讨一种独特的软件测试方法——探索性测试(Exploratory Testing),它如同艺术家的画笔,通过即兴和创造性的测试活动揭示软件之美与缺陷。我们将一起航行于探索性测试的浪潮之中,了解它如何增强测试过程的灵活性、深度和乐趣,同时提供高效和有效的质量保证。
|
3天前
|
敏捷开发 测试技术 UED
软件测试中的探索性测试方法
在软件开发过程中,测试是确保产品质量的重要环节。本文将探讨一种常被忽视但极其重要的测试方法——探索性测试。通过分析其定义、优势及实际应用案例,揭示如何更有效地发现软件缺陷,提升软件质量。
11 0
|
4天前
|
测试技术 持续交付
软件测试中的自动化测试实践与探索
在软件开发生命周期中,测试阶段是确保产品质量和稳定性的关键环节。随着技术的快速发展,自动化测试逐渐成为提升测试效率和覆盖率的重要手段。本文将探讨自动化测试的基本概念、工具选择、实施策略以及面临的挑战,旨在为读者提供关于如何在项目中有效应用自动化测试的指导性见解。
11 0
|
5天前
|
监控 Java 测试技术
探索软件测试中的自动化测试策略
在软件开发的生命周期中,测试阶段是确保产品质量和性能的关键步骤。随着技术的进步,自动化测试已成为提高测试效率、减少人为错误的重要手段。本文将探讨自动化测试的基本概念、优势以及实施策略,旨在为读者提供一个关于如何有效利用自动化测试来提升软件开发质量的清晰视角。
|
30天前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
30天前
|
XML 存储 JSON
【IO面试题 六】、 除了Java自带的序列化之外,你还了解哪些序列化工具?
除了Java自带的序列化,常见的序列化工具还包括JSON(如jackson、gson、fastjson)、Protobuf、Thrift和Avro,各具特点,适用于不同的应用场景和性能需求。
|
30天前
|
Java
【Java基础面试三十七】、说一说Java的异常机制
这篇文章介绍了Java异常机制的三个主要方面:异常处理(使用try、catch、finally语句)、抛出异常(使用throw和throws关键字)、以及异常跟踪栈(异常传播和程序终止时的栈信息输出)。