蔚来测试开发

1️⃣一面-技术面

  • 项目里用了redis,具体用途

中间件缓存 高效数据库存取、应用响应

使用场景:数据缓存(用户信息、页面数据)、页面缓存

  • 对maven了解什么,哪些命令

初始化项目:通过 mvn archetype:generate 创建新的 Maven 项目,选择合适的模板(archetype)来初始化项目。

构建项目:使用 mvn clean install 来构建项目,将所有依赖下载并安装到本地仓库。

管理依赖:在 pom.xml 中声明项目依赖,Maven 会自动下载和管理它们。

发布和部署:使用 mvn deploy 将构建的产物发布到远程仓库。

  • 对测试了解什么

测试目的、测试方法、测试流程、测试分类、问题定位、问题追踪、测试工具

  • 单元测试 集成测试 冒烟测试的区别,具体用于什么
  • 算法题:给定target、数组,找数组里有没有两数相加等于target

遍历->hashmap记录var-to-key->need=target-nums[i]->查字典

  • 针对写好的算法,设计测试用例
  • 在 WF项目中,发现导出的视频音画不同步 是怎么回事
  • 音频/视频解码时延迟

问题:视频和音频的解码处理可能存在不同的延迟,特别是当视频文件包含高分辨率或长时间视频时,解码处理的延迟可能导致视频帧和音频帧不同步。

解决方法:可以在导出时调整音频和视频的缓冲区大小或延迟时间,确保它们同步解码

  • 遇到过哪些挑战或难题?如何解决的?

在 WF 项目中,我们曾经遇到过一个性能瓶颈问题:平台在高并发情况下,视频处理模块的响应时间大幅上升,影响了用户体验。

    性能分析:我们使用 JMeter 和 Prometheus 进行了压力测试,并监控了数据库和应用服务器的资源使用情况。发现数据库查询和文件存储是瓶颈的关键所在。

    优化数据库:通过分析慢查询日志,我们对数据库查询进行了优化,添加了索引并重构了部分查询逻辑。

    缓存优化:针对频繁查询的数据,我们引入了 Redis 缓存,将热点数据存储在 Redis 中,减少数据库的访问频率。

    分布式部署:我们增加了应用服务器的实例,并使用负载均衡来分摊请求负载,提升了整体的系统吞吐量。

2️⃣二面-技术面

  • 数组和链表区别
  • git用过哪些命令
  1. git add .:添加所有更改到暂存区。
  2. git commit -m "commit message":提交暂存区中的更改并附带提交信息。
  3. git   push origin main:将本地分支的更改推送到远程仓库。
  4. git pull origin main:从远程仓库拉取最新的代码到本地分支。
  5. git clone [url]:克隆远程仓库到本地目录。
  6. git :查看仓库的当前状态,显示哪些文件被修改但尚未添加到暂存区,以及哪些文件已经在暂存区准备提交。

文件操作

1.git diff:比较工作区和暂存区的差异。

2.git log:查看提交日志。

3.git show [commit]:显示指定提交的详细信息。

撤销与恢复

  1. git reset [commit]:回退版本,移动HEAD指针到指定的提交。
  2. git revert [commit]:撤销之前的提交,创建一个新的提交来撤销之前的更改。
  3. git restore [file]:恢复或撤销文件的更改。
  4. 其他常用命令git stash:临时保存工作区的更改,以便稍后恢复。
  5. git stash pop:恢复最近一次保存的工作区更改。
  6. git  -v:查看远程仓库的详细信息。
  7. git fetch []:从远程仓库获取最新的提交,但不会自动合并到本地分支。

分支操作

git branch:列出所有本地分支。

git checkout -b [branch]:创建并切换到新的分支。

git checkout [branch]:切换到指定的分支

git merge [branch]:将指定分支合并到当前分支

  • 给你一个搜索框,怎么测试,设计测试用例

功能:ui界面 文字输入显示是否文字溢出 提示界面 点击查询调转

性能:弱网 响应 资源占用

兼容:浏览器 设备(移动端、pc)

安全:SQL注入测试 跨站脚本攻击XSS

  • 会前端吗,vue生命周期

生命周期指的是从创建一个 Vue 实例开始,到它被销毁的整个过程。每个 Vue 实例都有一系列的生命周期钩子函数,这些钩子函数可以让我们在 Vue 实例的不同阶段执行自定义的代码。

Vue 实例的生命周期大致可以分为 四个阶段

  1. 创建阶段:Vue 实例被初始化,数据和事件监听器设置,模板编译。
  2. 挂载阶段:将模板渲染为真实的 DOM,并将其插入到页面中。
  3. 更新阶段:当数据变化时,Vue 会重新渲染视图。
  4. 销毁阶段:销毁 Vue 实例,清理事件监听器,销毁组件实例。

创建阶段 1.beforeCreate:实例初始化之后,数据观测和事件/生命周期钩子设置之前被调用。此时,数据、事件、计算属性、方法等尚未设置。

应用场景:通常不用于开发中,除非需要了解 Vue 实例创建过程的最早阶段。

created:实例已经创建,数据和事件已经初始化,data、computed、methods 和事件监听器都已经设置完毕,DOM 尚未挂载。

应用场景:可以在此阶段执行一些初始化操作,如异步请求数据、定时器设置等。

挂载阶段

beforeMount:挂载开始之前被调用,相关的 render 函数首次被调用。

应用场景:在这里你可以进行一些即将挂载的准备工作,但通常不会做太多操作。

mounted:Vue 实例挂载到 DOM 后被调用。此时,组件的 DOM 已经被渲染完成,可以访问 DOM 元素。

应用场景:可以在此执行一些依赖 DOM 的操作,例如获取 DOM 元素的尺寸,或者进行一些外部库的初始化等。

更新阶段beforeUpdate:当数据更新时,视图更新前被调用。此时可以访问到更新前的数据和 DOM。

应用场景:通常不需要手动操作,除非需要在数据更新前执行某些清理工作或优化操作。

updated:当数据更新后,视图更新完成时调用。此时,组件的 DOM 已经更新,您可以对 DOM 做进一步的操作。

应用场景:用于操作更新后的 DOM,或进行一些需要重新计算的操作。

销毁阶段

beforeDestroy:组件销毁前调用。此时,实例仍然有效,可以执行一些销毁前的清理工作。

应用场景:可以用于清除定时器、取消网络请求,或者移除全局事件监听器等。

destroyed:组件销毁后调用。此时,组件实例已经被销毁,所有的监听器、子组件、事件等都已被清除。

应用场景:通常用于做一些最后的清理工作。

  • 算法题:口述判断()字符合法性
全部评论
春招吗?
点赞 回复 分享
发布于 昨天 15:50 广西

相关推荐

本帖分享本人从事测开工作若干月的感受,纯粹出于个人经验和主观感受,可能并不具备普遍参考性。[零R]bg:9本科班,本科时不关注就业,无实习。校招进入某中小公司干测开。[一R]工作时长:小于半年,已跑路。[二R]工作感受(负面):1.测开/测试地位与公司规模大致成正相关关系,小公司里地位比较低,跟着开发的屁股转,一个人可能要负责好几组的开发。出成绩没你,出问题你背。工作量大,一刻不能闲2.文档缺乏,遇到不确定的东西只能问开发,然而人家忙的时候并不想理你3.工作内容杂,涉及到的知识多,不专精于某一部分,门槛主要在于经验而非技术深度。如果你喜欢钻研某一技术,可能不适合测开4.写代码少,配环境多。如果你不喜欢配环境,大概率不会喜欢干测试5.大量时间需要花在复现bug,写报告,写总结等没什么创造性的工作上。如果你不喜欢重复性工作和验证性工作,大概率不会喜欢干测试[三R]工作发展(正面)1.薪资不低,在大厂里有些测开也能拿到和开发同等的工资2.竞争较开发小,当然也是因为不太有人优先选择测试3.岗位hc倒也还算充足4.对于转行的人而已,可能更好上手[四R]总结和建议1.测开的工作内容偏验证而非创造,如果你喜欢写代码,不要干测开;反之倒是时候适合测开2.测开更适合有耐心的人干,可能女生更为适合3.第一份工作十分重要,不要抱着先干测试再转开发的心态,难度并不小。如果确定是要做开发,那就一步到位,宁可其他方面作出妥协。#测试# #测试开发# #校招# #如果再来一次,你还会选择这个工作吗?#
点赞 评论 收藏
分享
评论
2
8
分享

创作者周榜

更多
牛客网
牛客企业服务