测试常见面试题整理

基础知识类

1.从测试角度来看,点击搜索按钮没有反应可能有以下几个原因:

  1. 前端问题

    • JavaScript错误:可能在点击事件的处理程序中存在错误,导致事件未能正确执行。
    • 按钮未绑定事件:搜索按钮可能没有正确绑定点击事件。
    • CSS样式问题:按钮可能被其他元素覆盖,导致无法点击。
  2. 后端问题

    • API未响应:点击搜索按钮后,可能没有调用到后端接口,或者接口未能返回数据。
    • 服务器故障:后端服务器可能出现故障,导致请求无法处理。
  3. 网络问题

    • 网络连接问题:用户的网络连接不稳定,导致请求无法发送或响应无法接收。
    • 跨域请求失败:如果前端请求跨域资源,可能由于CORS设置不当而被阻止。
  4. 浏览器兼容性

    • 不兼容的浏览器:某些功能可能在特定浏览器或版本中不被支持。
  5. 用户输入问题

    • 输入框为空:如果搜索框没有输入内容,可能会导致搜索按钮无效。
    • 输入格式不正确:例如,输入了不支持的字符或格式。
  6. 状态管理问题

    • 应用状态未更新:如果使用了状态管理工具(如Redux),可能状态未能正确更新,导致按钮无效。
  7. 测试环境问题

    • 测试环境配置错误:可能测试环境与生产环境配置不一致,导致功能异常。

针对以上原因,可以进行逐一排查,以确定问题所在。

  1. 接口测试的进行方式

    • 确定测试需求,了解接口文档。
    • 使用测试工具(如Postman、SoapUI等)发送请求,验证返回结果。
    • 检查状态码、响应时间、数据格式和内容是否符合预期。
    • 编写自动化测试脚本,使用工具如JUnit、TestNG等。
  2. 端到端测试的方式

    • 理解系统的整体架构,识别关键用户场景。
    • 使用自动化测试框架(如Selenium、Cypress)模拟用户操作。
    • 验证系统各部分的集成是否正常,确保数据流和业务逻辑正确。
  3. 访问百度搜索URL的过程

    • 输入URL(如https://www.baidu.com)到浏览器。
    • 浏览器解析域名,向DNS服务器请求IP地址。
    • 浏览器与百度服务器建立TCP连接(通过三次握手)。
    • 发送HTTP请求,获取响应。
    • 渲染页面并显示给用户。
  4. 三次握手与四次挥手

    • 三次握手
      1. 客户端发送SYN包请求连接。
      2. 服务器回复SYN-ACK包确认连接。
      3. 客户端发送ACK包确认,连接建立。
    • 四次挥手
      1. 客户端发送FIN包请求断开连接。
      2. 服务器回复ACK包确认。
      3. 服务器发送FIN包请求断开连接。
      4. 客户端回复ACK包确认,连接关闭。
  5. 了解的测试工具

    • Postman:用于API测试,支持请求构建和结果验证。
    • Selenium:用于Web自动化测试,能够模拟用户操作。
    • JMeter:用于性能测试,能够模拟多用户并发访问。
    • Charles/Fiddler:用于HTTP抓包,分析网络请求和响应。
  6. Linux查看文档最后五条数据

     bash 

    复制

    tail -n 5 filename

  7. Linux杀死进程和查看端口占用

    • 杀死某个进程:kill <pid> 或 kill -9 <pid>(强制杀死)。
    • 查看某个端口是否被占用:netstat -tuln | grep <port> 或 lsof -i:<port>
    • 查看最近日志:tail -n 100 /var/log/syslog(或其他日志文件)。
  8. 测试用例的构成

    • 用例ID
    • 用例描述
    • 前置条件
    • 测试步骤
    • 预期结果
    • 实际结果
    • 备注
  9. CICD和DevOps的理解

    • CICD:持续集成与持续交付,强调自动化构建、测试和部署,确保代码质量和快速交付。
    • DevOps:开发与运维的结合,强调团队协作与自动化,缩短开发周期,提高交付效率。
  10. 定位缺陷的方法和工具

    • 方法:重现问题、分析日志、使用调试工具。
    • 工具:日志分析工具(如ELK)、调试器(如GDB)、监控工具。
    • 流程:收集信息 → 重现问题 → 分析原因 → 提交缺陷报告。
  11. Web安全的XSS注入问题

    • XSS(跨站脚本攻击)允许攻击者在用户浏览器中执行恶意脚本。
    • 防护措施:输入验证、输出编码、使用安全HTTP头(如Content-Security-Policy)。
  12. HTTP状态码的含义

    • 200:请求成功。
    • 301:永久重定向。
    • 404:未找到。
    • 500:服务器内部错误。
  13. 测试的详情

    • 接口测试:验证API功能和性能。
    • 业务理解:了解业务流程和用户需求。
    • 功能验证:确保功能符合需求,执行测试用例。
  14. 发现问题的定位方法

    • 如果日志中没有记录,可以检查代码、重现问题、使用调试工具和监控工具分析。
  15. 使用过的测试工具

    • Charles/Fiddler:抓包工具,分析HTTP请求和响应。
    • 设计抓包工具:需要实现网络代理功能,捕获和显示HTTP/S流量,支持请求修改和重发。
  16. Selenium的工作原理

    • Selenium通过WebDriver与浏览器进行交互,模拟用户行为(如点击、输入等),并验证页面状态和内容。
  17. 用过协议吗?知道HTTP协议吗
  • 是的,HTTP(超文本传输协议)是Web上进行数据传输的基础协议,定义了客户端(如浏览器)与服务器之间的请求和响应格式。
  1. HTTP有哪些请求方法
  • GET:请求数据,通常用于获取资源。
  • POST:向服务器提交数据,通常用于创建资源。
  • PUT:更新资源。
  • DELETE:删除资源。
  • HEAD:获取响应头,不返回主体。
  • OPTIONS:查询服务器支持的HTTP方法。
  • PATCH:部分更新资源。
  1. 详细说一下OPTIONS方法
  • OPTIONS方法用于描述目标资源的通信选项。客户端可以使用此方法询问服务器支持哪些HTTP方法,通常用于CORS(跨源资源共享)预检请求,以便了解是否允许跨域请求。
  1. GET和POST的区别是什么
  • GET
    • 请求参数通过URL传递,数据量有限。
    • 数据在浏览器历史记录中可见。
    • 适用于获取数据,不应有副作用。
  • POST
    • 请求参数通过请求体传递,数据量较大。
    • 数据不在浏览器历史记录中可见。
    • 适用于提交数据,可能会更改服务器状态。
  1. Linux:有用过吗?知道哪些常用命令
  • 是的,常用的Linux命令包括:
    • ls:列出目录内容。
    • cd:改变目录。
    • cp:复制文件或目录。
    • mv:移动或重命名文件。
    • rm:删除文件或目录。
    • cat:查看文件内容。
    • grep:搜索文本。
    • chmod:更改文件权限。
  1. 知道线程和进程吗?一个线程正在运行,可以强制杀死吗
  • 是的,进程是系统中资源分配的基本单位,而线程是进程内的执行单位。一个线程可以被强制杀死,通常使用操作系统提供的工具(如kill命令)来终止线程。
  1. Python深拷贝和浅拷贝
  • 浅拷贝:创建一个新对象,但对原对象中的引用类型(如列表、字典)仍然指向相同的内存地址。
  • 深拷贝:创建一个新对象,并递归复制原对象中的所有元素,确保新对象与原对象完全独立。
  1. Python面向对象的特点:封装、继承、多态
  • 封装:将数据和方法封装在对象内部,控制对外部的访问。
  • 继承:允许新类继承现有类的属性和方法,促进代码重用。
  • 多态:允许不同类的对象以相同的方式调用同一方法,增强灵活性。
  1. Python的数据结构:可变类型和不可变类型
  • 可变类型:如列表(list)、字典(dict)、集合(set),可以修改其内容。
  • 不可变类型:如字符串(str)、元组(tuple),一旦创建后不能修改。
  1. Python多线程和线程池的优点
  • 多线程:适合I/O密集型任务,能够提高程序的并发性。
  • 线程池:复用线程,减少线程创建和销毁的开销,提高性能,控制最大并发线程数。
  1. Python值传递和引用传递
  • Python中的所有参数传递都是通过对象引用来实现的,因此可以说是引用传递。对于可变对象(如列表),在函数内部修改会影响外部;对于不可变对象(如整数),则会创建新的对象。
  1. Python函数作用域
  • Python的作用域分为局部作用域、全局作用域和内置作用域。局部作用域在函数内有效,全局作用域在整个模块内有效,内置作用域包含Python内置的名称。
  1. Python函数参数传递
  • Python支持位置参数、关键字参数、默认参数和可变参数(*args和**kwargs)。可以灵活地传递参数,以满足不同的需求。

综合类

  1. 项目中测试假数据的生成和自动化框架

    • 测试假数据可以使用工具如Faker库(Python)或Mock数据生成器来创建。假数据通常包括用户信息、产品数据等,用于模拟真实环境。
    • 自动化框架可以使用Selenium、pytest等,结合测试用例来执行自动化测试,确保功能正常。
  2. 数据验证的方式

    • 数据验证可以通过手动和自动两种方式进行。手动验证通常用于小规模数据的检查,而自动化验证则适用于大规模数据,使用脚本或测试工具(如Postman)进行验证。
  3. 印象最深的bug及处理

    • 一次在上线前发现的关键功能崩溃bug。为了定位问题,我进行了详细的日志分析,重现了问题,并与开发团队紧密合作,最终在上线前修复了该bug。这次经历让我深刻理解了团队协作的重要性。
  4. 典型性测试的收获和影响

    • 典型性测试是指对常见场景和边界情况的测试。通过这些测试,我学会了如何更好地识别潜在问题,增强了我的问题分析能力。这对我之后的工作帮助很大,使我在设计测试用例时更加全面。
  5. 个人情况及薪资预期

    • 我住在XXX(如城市名)。对于加班,我持开放态度,认为适当的加班可以提高工作效率。外包我认可,了解其性质是降低成本和灵活资源的方式。个人婚姻状况:已婚/未婚。之前薪资为XXX(如具体金额),期望薪资为XXX(如具体金额)。
  6. 上线前未处理完的bug

    • 如果有bug未处理完,可以评估其严重性和影响范围。对于低优先级的bug,可以考虑上线后进行修复,并在发布说明中告知相关人员;对于高优先级的bug,建议推迟上线,确保产品质量。
  7. 点击搜索按钮没有反应的可能原因

    • 前端问题:JavaScript错误、事件未绑定。
    • 后端问题:API未响应、服务器错误。
    • 网络问题:网络延迟或中断。
    • 用户界面问题:按钮被覆盖或禁用。
  8. 对敏捷模式的认识

    • 敏捷模式强调快速迭代、持续反馈和团队协作,重视客户需求的变化。通过短周期的开发和频繁的发布,能够更快地适应市场变化,提高产品质量。
  9. Fiddler的原理

    • Fiddler是一个HTTP调试代理工具,工作原理是通过在客户端和服务器之间充当中间人,拦截所有HTTP/S流量。它可以记录请求和响应,允许用户查看和修改数据,帮助开发和测试人员分析网络流量。

场景类

  1. 如何测试一只笔

    • 功能测试:检查笔的书写功能,包括流畅度、颜色、宽度等。
    • 耐用性测试:测试笔的耐用性,包括使用寿命和耐摔性。
    • 舒适度测试:评估握持的舒适度和重量。
    • 安全性测试:确保材料无毒,适合儿童使用。
  2. 针对微信发红包的bug等级分级

    • 高等级:用户无法发送或接收红包,影响核心功能。
    • 中等级:红包金额显示错误,影响用户体验,但不影响核心功能。
    • 低等级:界面显示不美观或小问题,不影响使用。
  3. 购物车设计用例

    • 添加商品至购物车
    • 从购物车中删除商品
    • 修改商品数量
    • 查看购物车商品列表
    • 计算总价
    • 结算流程测试
    • 清空购物车
  4. 百度贴吧发贴功能界面测试

    • 检查发贴按钮是否可用
    • 输入框字符限制测试
    • 图片上传功能测试
    • 标签功能测试
    • 预览功能测试
    • 发布后内容是否正常显示
  5. 手机打开百度App打不开的排查步骤

    • 检查网络连接是否正常。
    • 清除App缓存和数据。
    • 重启手机。
    • 卸载并重新安装App。
    • 检查是否有更新版本。
  6. 淘宝购买商品支付时报错的可能原因

    • 网络问题导致支付请求失败。
    • 支付接口异常。
    • 用户账户余额不足或支付方式无效。
    • 商品信息错误(如价格变动)。
  7. QQ会员灯的测试场景设计

    • 登录QQ账号,验证会员状态。
    • 会员状态为真时,红灯显示;为假时,红灯不显示。
    • 切换账号,验证灯的状态变化。
    • 在不同设备上测试灯的显示。
  8. 抽奖程序的测试用例设计

    • 验证抽奖概率是否符合设定(一等奖10%,二等奖20%)。
    • 验证抽奖逻辑是否正常,确保不会抽到已抽完的奖品。
    • 测试不同情况下的抽奖结果,记录每次抽奖的结果。
    • 检查抽奖次数是否正常,是否有异常情况。
  9. 淘宝购物车功能测试用例设计

    • 列表模式与宫格模式切换测试。
    • 页码传参测试,验证是否正确加载数据。
    • 数据边界值测试,确保最大和最小数据量正常显示。
    • 多页面滑动测试,检查数据是否一致。
    • 点击商品进入详情页测试。
    • 多选商品、删除商品、增加商品的功能测试。
    • 宫格模式的第二页无法加载时,检查前端和后端的传参和返回数据。
  10. 百度搜索框测试用例设计

    • 输入关键字搜索,验证搜索结果。
    • 测试搜索框的字符限制。
    • 检查搜索历史记录功能。
    • 验证搜索建议的准确性。
    • 测试不同类型的搜索(图片、视频等)。
  11. 朋友圈的设计测试用例

    • 发布动态功能测试。
    • 评论和点赞功能测试。
    • 查看好友动态测试。
    • 动态隐私设置测试。
    • 图片上传和展示功能测试。
  12. 微信朋友圈发送图片功能的测试用例

    • 上传图片功能测试(大小、格式)。
    • 多张图片同时上传测试。
    • 图片预览功能测试。
    • 图片发送后的显示测试。
    • 网络不良条件下的表现测试。
  13. 手机号+验证码登录界面的测试

    • 输入有效手机号和验证码,验证是否登录成功。
    • 输入无效手机号,验证是否提示错误。
    • 验证码超时测试,检查是否提示重新获取。
    • 发送验证码功能测试,确保短信发送正常。
  14. 朋友圈刷新很慢的测试

    • 测试网络连接速度,验证是否影响刷新。
    • 检查后台数据请求时间。
    • 测试不同设备和版本的表现。
    • 验证是否存在数据缓存问题。
  15. 抖音需要改进的地方及测试定位

    • 界面交互流畅性、加载速度等方面。
    • 刷不出来时,检查网络状态、服务器响应、API调用等。
    • 验证不同网络环境下的表现。
    • 测试不同版本的兼容性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值