基础知识类
1.从测试角度来看,点击搜索按钮没有反应可能有以下几个原因:
-
前端问题:
- JavaScript错误:可能在点击事件的处理程序中存在错误,导致事件未能正确执行。
- 按钮未绑定事件:搜索按钮可能没有正确绑定点击事件。
- CSS样式问题:按钮可能被其他元素覆盖,导致无法点击。
-
后端问题:
- API未响应:点击搜索按钮后,可能没有调用到后端接口,或者接口未能返回数据。
- 服务器故障:后端服务器可能出现故障,导致请求无法处理。
-
网络问题:
- 网络连接问题:用户的网络连接不稳定,导致请求无法发送或响应无法接收。
- 跨域请求失败:如果前端请求跨域资源,可能由于CORS设置不当而被阻止。
-
浏览器兼容性:
- 不兼容的浏览器:某些功能可能在特定浏览器或版本中不被支持。
-
用户输入问题:
- 输入框为空:如果搜索框没有输入内容,可能会导致搜索按钮无效。
- 输入格式不正确:例如,输入了不支持的字符或格式。
-
状态管理问题:
- 应用状态未更新:如果使用了状态管理工具(如Redux),可能状态未能正确更新,导致按钮无效。
-
测试环境问题:
- 测试环境配置错误:可能测试环境与生产环境配置不一致,导致功能异常。
针对以上原因,可以进行逐一排查,以确定问题所在。
-
接口测试的进行方式:
- 确定测试需求,了解接口文档。
- 使用测试工具(如Postman、SoapUI等)发送请求,验证返回结果。
- 检查状态码、响应时间、数据格式和内容是否符合预期。
- 编写自动化测试脚本,使用工具如JUnit、TestNG等。
-
端到端测试的方式:
- 理解系统的整体架构,识别关键用户场景。
- 使用自动化测试框架(如Selenium、Cypress)模拟用户操作。
- 验证系统各部分的集成是否正常,确保数据流和业务逻辑正确。
-
访问百度搜索URL的过程:
- 输入URL(如
https://www.baidu.com
)到浏览器。 - 浏览器解析域名,向DNS服务器请求IP地址。
- 浏览器与百度服务器建立TCP连接(通过三次握手)。
- 发送HTTP请求,获取响应。
- 渲染页面并显示给用户。
- 输入URL(如
-
三次握手与四次挥手:
- 三次握手:
- 客户端发送SYN包请求连接。
- 服务器回复SYN-ACK包确认连接。
- 客户端发送ACK包确认,连接建立。
- 四次挥手:
- 客户端发送FIN包请求断开连接。
- 服务器回复ACK包确认。
- 服务器发送FIN包请求断开连接。
- 客户端回复ACK包确认,连接关闭。
- 三次握手:
-
了解的测试工具:
- Postman:用于API测试,支持请求构建和结果验证。
- Selenium:用于Web自动化测试,能够模拟用户操作。
- JMeter:用于性能测试,能够模拟多用户并发访问。
- Charles/Fiddler:用于HTTP抓包,分析网络请求和响应。
-
Linux查看文档最后五条数据:
bash复制
tail -n 5 filename
-
Linux杀死进程和查看端口占用:
- 杀死某个进程:
kill <pid>
或kill -9 <pid>
(强制杀死)。 - 查看某个端口是否被占用:
netstat -tuln | grep <port>
或lsof -i:<port>
。 - 查看最近日志:
tail -n 100 /var/log/syslog
(或其他日志文件)。
- 杀死某个进程:
-
测试用例的构成:
- 用例ID
- 用例描述
- 前置条件
- 测试步骤
- 预期结果
- 实际结果
- 备注
-
CICD和DevOps的理解:
- CICD:持续集成与持续交付,强调自动化构建、测试和部署,确保代码质量和快速交付。
- DevOps:开发与运维的结合,强调团队协作与自动化,缩短开发周期,提高交付效率。
-
定位缺陷的方法和工具:
- 方法:重现问题、分析日志、使用调试工具。
- 工具:日志分析工具(如ELK)、调试器(如GDB)、监控工具。
- 流程:收集信息 → 重现问题 → 分析原因 → 提交缺陷报告。
-
Web安全的XSS注入问题:
- XSS(跨站脚本攻击)允许攻击者在用户浏览器中执行恶意脚本。
- 防护措施:输入验证、输出编码、使用安全HTTP头(如Content-Security-Policy)。
-
HTTP状态码的含义:
- 200:请求成功。
- 301:永久重定向。
- 404:未找到。
- 500:服务器内部错误。
-
测试的详情:
- 接口测试:验证API功能和性能。
- 业务理解:了解业务流程和用户需求。
- 功能验证:确保功能符合需求,执行测试用例。
-
发现问题的定位方法:
- 如果日志中没有记录,可以检查代码、重现问题、使用调试工具和监控工具分析。
-
使用过的测试工具:
- Charles/Fiddler:抓包工具,分析HTTP请求和响应。
- 设计抓包工具:需要实现网络代理功能,捕获和显示HTTP/S流量,支持请求修改和重发。
-
Selenium的工作原理:
- Selenium通过WebDriver与浏览器进行交互,模拟用户行为(如点击、输入等),并验证页面状态和内容。
- 用过协议吗?知道HTTP协议吗:
- 是的,HTTP(超文本传输协议)是Web上进行数据传输的基础协议,定义了客户端(如浏览器)与服务器之间的请求和响应格式。
- HTTP有哪些请求方法:
- GET:请求数据,通常用于获取资源。
- POST:向服务器提交数据,通常用于创建资源。
- PUT:更新资源。
- DELETE:删除资源。
- HEAD:获取响应头,不返回主体。
- OPTIONS:查询服务器支持的HTTP方法。
- PATCH:部分更新资源。
- 详细说一下OPTIONS方法:
- OPTIONS方法用于描述目标资源的通信选项。客户端可以使用此方法询问服务器支持哪些HTTP方法,通常用于CORS(跨源资源共享)预检请求,以便了解是否允许跨域请求。
- GET和POST的区别是什么:
- GET:
- 请求参数通过URL传递,数据量有限。
- 数据在浏览器历史记录中可见。
- 适用于获取数据,不应有副作用。
- POST:
- 请求参数通过请求体传递,数据量较大。
- 数据不在浏览器历史记录中可见。
- 适用于提交数据,可能会更改服务器状态。
- Linux:有用过吗?知道哪些常用命令:
- 是的,常用的Linux命令包括:
ls
:列出目录内容。cd
:改变目录。cp
:复制文件或目录。mv
:移动或重命名文件。rm
:删除文件或目录。cat
:查看文件内容。grep
:搜索文本。chmod
:更改文件权限。
- 知道线程和进程吗?一个线程正在运行,可以强制杀死吗:
- 是的,进程是系统中资源分配的基本单位,而线程是进程内的执行单位。一个线程可以被强制杀死,通常使用操作系统提供的工具(如
kill
命令)来终止线程。
- Python深拷贝和浅拷贝:
- 浅拷贝:创建一个新对象,但对原对象中的引用类型(如列表、字典)仍然指向相同的内存地址。
- 深拷贝:创建一个新对象,并递归复制原对象中的所有元素,确保新对象与原对象完全独立。
- Python面向对象的特点:封装、继承、多态:
- 封装:将数据和方法封装在对象内部,控制对外部的访问。
- 继承:允许新类继承现有类的属性和方法,促进代码重用。
- 多态:允许不同类的对象以相同的方式调用同一方法,增强灵活性。
- Python的数据结构:可变类型和不可变类型:
- 可变类型:如列表(list)、字典(dict)、集合(set),可以修改其内容。
- 不可变类型:如字符串(str)、元组(tuple),一旦创建后不能修改。
- Python多线程和线程池的优点:
- 多线程:适合I/O密集型任务,能够提高程序的并发性。
- 线程池:复用线程,减少线程创建和销毁的开销,提高性能,控制最大并发线程数。
- Python值传递和引用传递:
- Python中的所有参数传递都是通过对象引用来实现的,因此可以说是引用传递。对于可变对象(如列表),在函数内部修改会影响外部;对于不可变对象(如整数),则会创建新的对象。
- Python函数作用域:
- Python的作用域分为局部作用域、全局作用域和内置作用域。局部作用域在函数内有效,全局作用域在整个模块内有效,内置作用域包含Python内置的名称。
- Python函数参数传递:
- Python支持位置参数、关键字参数、默认参数和可变参数(*args和**kwargs)。可以灵活地传递参数,以满足不同的需求。
综合类
-
项目中测试假数据的生成和自动化框架:
- 测试假数据可以使用工具如Faker库(Python)或Mock数据生成器来创建。假数据通常包括用户信息、产品数据等,用于模拟真实环境。
- 自动化框架可以使用Selenium、pytest等,结合测试用例来执行自动化测试,确保功能正常。
-
数据验证的方式:
- 数据验证可以通过手动和自动两种方式进行。手动验证通常用于小规模数据的检查,而自动化验证则适用于大规模数据,使用脚本或测试工具(如Postman)进行验证。
-
印象最深的bug及处理:
- 一次在上线前发现的关键功能崩溃bug。为了定位问题,我进行了详细的日志分析,重现了问题,并与开发团队紧密合作,最终在上线前修复了该bug。这次经历让我深刻理解了团队协作的重要性。
-
典型性测试的收获和影响:
- 典型性测试是指对常见场景和边界情况的测试。通过这些测试,我学会了如何更好地识别潜在问题,增强了我的问题分析能力。这对我之后的工作帮助很大,使我在设计测试用例时更加全面。
-
个人情况及薪资预期:
- 我住在XXX(如城市名)。对于加班,我持开放态度,认为适当的加班可以提高工作效率。外包我认可,了解其性质是降低成本和灵活资源的方式。个人婚姻状况:已婚/未婚。之前薪资为XXX(如具体金额),期望薪资为XXX(如具体金额)。
-
上线前未处理完的bug:
- 如果有bug未处理完,可以评估其严重性和影响范围。对于低优先级的bug,可以考虑上线后进行修复,并在发布说明中告知相关人员;对于高优先级的bug,建议推迟上线,确保产品质量。
-
点击搜索按钮没有反应的可能原因:
- 前端问题:JavaScript错误、事件未绑定。
- 后端问题:API未响应、服务器错误。
- 网络问题:网络延迟或中断。
- 用户界面问题:按钮被覆盖或禁用。
-
对敏捷模式的认识:
- 敏捷模式强调快速迭代、持续反馈和团队协作,重视客户需求的变化。通过短周期的开发和频繁的发布,能够更快地适应市场变化,提高产品质量。
-
Fiddler的原理:
- Fiddler是一个HTTP调试代理工具,工作原理是通过在客户端和服务器之间充当中间人,拦截所有HTTP/S流量。它可以记录请求和响应,允许用户查看和修改数据,帮助开发和测试人员分析网络流量。
场景类
-
如何测试一只笔:
- 功能测试:检查笔的书写功能,包括流畅度、颜色、宽度等。
- 耐用性测试:测试笔的耐用性,包括使用寿命和耐摔性。
- 舒适度测试:评估握持的舒适度和重量。
- 安全性测试:确保材料无毒,适合儿童使用。
-
针对微信发红包的bug等级分级:
- 高等级:用户无法发送或接收红包,影响核心功能。
- 中等级:红包金额显示错误,影响用户体验,但不影响核心功能。
- 低等级:界面显示不美观或小问题,不影响使用。
-
购物车设计用例:
- 添加商品至购物车
- 从购物车中删除商品
- 修改商品数量
- 查看购物车商品列表
- 计算总价
- 结算流程测试
- 清空购物车
-
百度贴吧发贴功能界面测试:
- 检查发贴按钮是否可用
- 输入框字符限制测试
- 图片上传功能测试
- 标签功能测试
- 预览功能测试
- 发布后内容是否正常显示
-
手机打开百度App打不开的排查步骤:
- 检查网络连接是否正常。
- 清除App缓存和数据。
- 重启手机。
- 卸载并重新安装App。
- 检查是否有更新版本。
-
淘宝购买商品支付时报错的可能原因:
- 网络问题导致支付请求失败。
- 支付接口异常。
- 用户账户余额不足或支付方式无效。
- 商品信息错误(如价格变动)。
-
QQ会员灯的测试场景设计:
- 登录QQ账号,验证会员状态。
- 会员状态为真时,红灯显示;为假时,红灯不显示。
- 切换账号,验证灯的状态变化。
- 在不同设备上测试灯的显示。
-
抽奖程序的测试用例设计:
- 验证抽奖概率是否符合设定(一等奖10%,二等奖20%)。
- 验证抽奖逻辑是否正常,确保不会抽到已抽完的奖品。
- 测试不同情况下的抽奖结果,记录每次抽奖的结果。
- 检查抽奖次数是否正常,是否有异常情况。
-
淘宝购物车功能测试用例设计:
- 列表模式与宫格模式切换测试。
- 页码传参测试,验证是否正确加载数据。
- 数据边界值测试,确保最大和最小数据量正常显示。
- 多页面滑动测试,检查数据是否一致。
- 点击商品进入详情页测试。
- 多选商品、删除商品、增加商品的功能测试。
- 宫格模式的第二页无法加载时,检查前端和后端的传参和返回数据。
-
百度搜索框测试用例设计:
- 输入关键字搜索,验证搜索结果。
- 测试搜索框的字符限制。
- 检查搜索历史记录功能。
- 验证搜索建议的准确性。
- 测试不同类型的搜索(图片、视频等)。
-
朋友圈的设计测试用例:
- 发布动态功能测试。
- 评论和点赞功能测试。
- 查看好友动态测试。
- 动态隐私设置测试。
- 图片上传和展示功能测试。
-
微信朋友圈发送图片功能的测试用例:
- 上传图片功能测试(大小、格式)。
- 多张图片同时上传测试。
- 图片预览功能测试。
- 图片发送后的显示测试。
- 网络不良条件下的表现测试。
-
手机号+验证码登录界面的测试:
- 输入有效手机号和验证码,验证是否登录成功。
- 输入无效手机号,验证是否提示错误。
- 验证码超时测试,检查是否提示重新获取。
- 发送验证码功能测试,确保短信发送正常。
-
朋友圈刷新很慢的测试:
- 测试网络连接速度,验证是否影响刷新。
- 检查后台数据请求时间。
- 测试不同设备和版本的表现。
- 验证是否存在数据缓存问题。
-
抖音需要改进的地方及测试定位:
- 界面交互流畅性、加载速度等方面。
- 刷不出来时,检查网络状态、服务器响应、API调用等。
- 验证不同网络环境下的表现。
- 测试不同版本的兼容性。