目标
通过半个季度的学习,达到准高级工程师水准,进入大厂(BAT/TMDJKXB);
大纲
科目
- ✔语言基础
- ✔算法
- ✔计算机网络
- ✔计算机系统/云原生体系
- ✔数据库
- ✔大数据架构
- 前端
- ✔测试设计
执行规划
- ✔工作梳理
- ✔质量体系构建
- ✔技术复盘
- ✔期望岗位
- ✔岗位技能要求分析
- ✔面试题
- ✔准备简历
- 人脉资源
- ✔面试复盘
科目
语言基础
语言需要解决的问题,操作对象(支持数据类型),对象可进行哪些处理(运算/算法),语句组织(函数/类/模快),应用解决实际问题(建模/面向对象编程)
书籍:
- python学习手册
- python快速教程
- 最好的python技术书籍合集
实战:
- leetcode
- 牛客(对应面试企业的题)
算法
- 发一到两天滚一遍算法图解
- leetcode结合企业面试题刷算法
计算机网络
数据库
- sql简单语法
- sql经典实例
- leetcodesql题
- redis常见面试题刷几个
- 数据库特性操作(慢查询/分表/防攻击等)
前端
测试设计
- 《海盗派测试分析》看这本书学习测试思维的套路;测试设计
- The Little Black Book of Test Design;看这本小书学习测试思维;
- 高级软件测试分析师
- 高级软件测试管理
后两本书是国际软件测试工程师高级考试的教材
执行规划
工作梳理
质量体系构建
技术复盘
见上方
期望岗位
- 管理方向
小公司的管理岗(研发团队10-100);构建sop体系,研发平台工具,管理人员;筛选出价值观、目标能达成一致的人遵循,平等、低预期、身体力行的原则来管理
- 业务岗
- 业务方向:尽量找大数据相关的方向(大数据体系,我必须先了解下);优先考虑广告、音乐(内容)、金融业务;
- 技术方向:优先考虑性能、;sop流程建设;其次才是各类工具岗;
岗位技能要求分析
管理
管理岗位始终围绕着;团队管理/体系建设/平台研发/协调管控,来开展工作
腾讯
岗位要求1
2
3
4
5
6经验:具备两到三年以上的管理经验(相关行业),5年以上工作经验(各领域);要有质量中台团队管理经验,快速迭代的项目经验;有大型项目的经验能负责团队的管理;
团队:有团队搭建管理优化经验;
云体系:熟悉云原生,有持续交付实践经验;有智能化和中台化改造的经验;熟悉K8S、devops建设;
质量体系:能建设质量体系,有整体技术规划,工具平台的架构设计能力;架构经验要全面,含业务架构、效能流程、基础技术架构(安全/可用性/技术平台);要具备研发流程组织管控能力;具备建立sop研发体系能力,能推动运营优化流程;
技术:要有技术能力,广而深的能力,实现核心代码,解决核心问题难题,且独立/主导开发过平台;
其他:懂推荐算法,机器学习加分;岗位职责
1
2
3
4业务:开发工具、平台,服务业务,参与或组织或规划业务测试;
质量体系:负责质量体系的建设优化;参与云环境下的持续交互体系建设;深刻理解CICD 及测试各项技术,有服务化、云化软件开发的实践经验者优先;主导项目/业务进行数字化、信息化、标准化改造;
管理:团队管理/招聘/规划/搭建,出色的团队领导能力和管理能力,有丰富的团队建设经验,有能力吸引和发展杰出人才;
协作:沟通协作(跨部门),推动;擅于跨团队沟通和协作,具有强烈的责任感和大局观,良好的沟通、表达、协作能力及服务意识。个人品质要求
1
2
3自驱动能力强,诚实;
海外项目,需要有海外项目经验,良好的英文口头及书面表达能力,能使用英文作为工作语言;
具备一定的谈判能力与冲突管理能力,能够承担一定的压力;其他公司
同上
技术
业务方面,必须是历史具有经验的;过往工作主要集中在大数据业务的广告,金融风控,音乐类文娱产品;技能方面,主要考虑稳定性、性能、测试平台
广告
广告基本是我职业生涯的全部,广告业务主要分为全链路业务,专项、业务专项主要是模型、对接外部的广告sdk;
岗位要求
1 | 经验:具有3年以上广告/大数据业务的经验,具有工具/测试平台开发经验(尤其需要有前端经验);有专项经验、性能、安全、白盒; |
岗位职责
1 | 业务:负责广告产品/服务的业务测试,并负责各类专项测试; |
音视频文娱
音视频等产品,最核心的点是音视频资源、推拉流方面的质量专项,其他功能和常规产品差异不大
岗位要求
1 | 经验:三年以上的音视频产品测试经验(具备多媒体行业经验,有点播、直播、媒体服务、音视频产品) |
岗位职责
1 | 业务:负责音视频产品/服务的业务测试,并负责各类专项测试(特殊的点、音质、画质、音视频编解码、渲染、网络策略、时延、卡顿、流畅度、弱网); |
大数据
从入行以上,经历的项目都和大数据强相关(广告),因此在大数据项目方面,我的职业经历有一定的优势;大数据项目职业方向主要有,基于大数据架构的数据测试和大数据应用方面的模型测试。
岗位要求
1 | 经验:三年以上的大数据项目测试经验;需要有相应的业务的经验(典型业务、搜索推荐、广告、数仓); |
岗位职责
1 | 业务:负责大数据产品/服务的业务测试,并负责各类专项测试; |
海外
海外项目最重要的是语言和背景;英语、其次是市场所属的小语种最佳
岗位要求
1 | 语言:英文读写能力良好,具备基本的英文表达能力,能使用英文作为工作语言; |
岗位职责
1 | 业务:负责海外产品/服务的业务测试,并负责各类专项测试; |
效能
效能岗主要有两类,面向业务的效能提升;另一类是面向基础架构的效能平台建设
面试题
面试真题合集
质量流程
1 | 基本的测试流程? |
- 答案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51答①:需要关注几点;流程追溯(度量/透明)、各流程准入准出的标准(卡点)、怎么提高流程的效率,主要的流程有:
1、需求评审
2、设计评审
3、方案评审
4、开发自测/集成测试
5、测试环节
6、rc验收环境
7、内测环节
8、公测环节
9、线上问题处理
流程需要遵循SOP理念(标准、作业(度量/落地)、程序(效率))、基于上下文(业务+公司)和风险来设计;兼顾成本和质量;因此在设计流程时,需要考虑以下方面:
1、如何建立质量标准,OKR、KPI等工具如何和标准结合;维护质量标准,有无线上/线下问题的收集归纳机制;
2、有没有配套工具,来运营流程;分析优化问题;
3、如何提高流程的效率,如何建立适合公司的敏捷模式,如何和云原生、中台等相结合提效;
4、如何根据公司的规模,人员情况,推动以上问题的处理;
答②:测试的工作要求提前发现问题,暴露风险;该场景下优先要解决问题,然后分析问题,形成后续经验;
1、因此要赶快把风险暴露出来;先评估现阶段的风险,影响的范围;
2、然后把风险立即暴露给项目组,组织协调资源,修改计划;
3、完成修复计划;复盘问题,考虑为何没有提前发现主流程问题,是需求变更没有及时同步,还是开发私自更加了主流程代码或者其他代码合入问题,还是测试设计不合理;
4、针对具体的原因,和未来可能出现的风险,优化流程,新增一些卡点策略或流程要求;
答③:测试是一系列的活动;我理解的测试方法,应该是不局限于测试设计的;
测试活动的主要过程有,测试信息收集(KYN)、测试信息分析(MFQ/SFDIPOT)、测试方法建模(PPDCS)、测试点覆盖率/有效性分析、最后是执行环节、其实每个环节都很重要需要注意,都要考虑方式方法;
但是我们一般问的都是测试设计/或者说是建模时候的方法;根据收集到的信息,分析信息,在根据场景不同、特征不同使用不同的方法(如引导词法)。一般来说,我们需要有功能、性能、稳定性、兼容性、及其他质量属性方面的评测;针对流程和对象,我们一般需要考虑界面、功能、数据、接口、环境、操作、时间维度行为等;
针对具体的功能点,最重要的是挖掘特征或特性,根据主要或不同的特征来使用具体的设计方法保障覆盖和有效性;比如如果是一些输入数据或者参数,具有数据/类型特征的,(如登录,注册输入的场景,就考虑使用等价类,边界值,覆盖有效等级类的各类,然后各类无效等价类边界值);如果特征是一些状态变化的,(比如视频播放,暂停,恢复播放这些),我会考虑使用状态迁移法;如果是流程性的,(比如新手引导),我会考虑使用流程图;如果是输入直接有逻辑关系,输入输出有因果关系(比如抽奖活动的一些,IP限制,国家限制,不同国家,不同奖品不同中奖率这些),我会考虑因果图+判定表,然后使用没一列作为一条测试点;然后比如是一些数据报表,组合查询,这种输入参数没有逻辑约束,我可能直接就用组合法(也就是正交实验法);白盒测试设计方法,主要是覆盖率方面考虑吧;考虑覆盖路径/覆盖条件/覆盖条件组合/覆盖语句这些,还是要根据具体业务和当前项目的情况来;这个问题有点大,我不确定我答的方向是否是对的;其他的一些方法,考虑其他方面,基于风险的,比如有些模块,测试/线上经常出问题,那功能迭代,过去的bug,是不是要做下参考甚至走一遍,其他的就是人员,为了保障质量是否对每个人员的开发质量,或者测试人员的质量需要做量化,如果有些人质量不好,是不是要进行一些培训或者帮助、或者调整;对提测功能大小、代码合并啊这些;当然这些都是要考虑,但一般不在测试设计环境考虑了,会在其他阶段;
测试设计效果度量,主要考虑有效性和覆盖率;覆盖率一般从代码维度或者测试功能维度考虑;有效性更依赖个人的经验,当然也有特定的训练方法,覆盖率和有效性都是相对的概念,没有绝对的标准;
答④
单测是对系统最小粒度的测试;白盒层面的测试,一般是覆盖代码的函数/类/模块/多模块的测试(讲的时候需要体现单测的标准/覆盖率/流程/度量);我们这边的单测是由开发实现单测代码,部分功能由测试codereview,检查单测代码的覆盖率(覆盖率要达到90%);这种方式导致了单测环境测试参与不多,对整个项目的单测覆盖率很难衡量、还有就是需要codereview测试能参与的人力比较少,考虑通过开源框架实现一个待测覆盖率的检查脚本,同时开发单测时需要一些测试数据,这块未来考虑实现一个mock工具通过测试造数,开发调用给开发提供数据;冒烟是有测试在用例设计时标记冒烟用例(通过在线excel文档维护),提交给开发执行,开发执行通过后,标记执行通过,然后在进行提测;提测时,测试会先验收一遍冒烟用例,一旦冒烟不通过则会打回,且会记录,后续项目会根据文档数据归总,会影响开发的绩效;
答⑤
(各环节标准/落地+运营/业务风险结合)建立标准的目的,是为了控制风险,设计过程要和项目及业务实际相结合才能有效落地;
我们质量保障的设计在各环节都有准入准出标准,依次是需求分析阶段需求要想进入评审,首先要通过业务方的优先级判断;且必须要有原型图有文档,且同一个需求评审不能多于两次,且一个季度考核期内的需求二次评审的占比不能超过1%;开发/设计/测试方案评审同理(测试用例的覆盖率不低于90%),一般各环境工作周期超过三天的都需要进行评审环境,三天以内不需要;在提测前开发必须要进行单测且单测的覆盖率不低于90%(由开发自己实现),然后就是冒烟阶段(冒烟用例通过率必须是100%),测试执行,用例必须全部执行/中高等级用例必须全部执行且通过,低级别用例未执行率/通过率不超过5-10%,rc验收前用例修复率必须达到100%,或者低级别用例不能超过5个、中高级别必须全部修复,且整体bug遗留率不能超过1%;然后就是rc验收必须无误;灰度用例必须全部通过,线上反馈的bug不能超过总bug数的1%,且不能有中高级别的bug;
整个过程主要通过tapd,在线excel文档,禅道来追溯;
答⑥
测试,rc验收通过,产品/设计验收通过,无bug遗留(或风险达成共识);传易这边的标准是无中高级别bug遗留或低级别bug遗留率不超过1%;上线环境、配置完成准备,且审核通过;然后就进行灰度发布;灰度梯度加量(无误),线上无问题,则逐步到全量;
答⑦
(工作占比,体系化思维,流程);我的日常工作在不同的时间段,工作重心不一样;在前面一年左右,主要负责大数据数据相关的测试,涉及的业务主要是版税结算,音乐的效果数据报表,音乐资源去重这些;已经自动化相关的建设,ui自动化、接口自动化、性能、压测;后面主要负责广告业务的测试已经部分音乐服务端业务的测试;在自动化工作中,我一开始的目的是想先把相应的工具搭起来,先解决从未到有的问题,以实现产出,后续主要是优化,建立规范标准,优化工具,来让工具产生实际的价值,解决监控,重复性回归的问题;当时的规划是提升自动化的覆盖率。让效果可量化,建立可视化的仪表(但这一块没机会落地),因为从22年年中开始就一直有大的人员的调整;在业务测试方面,我的工作思路是先用,先体验,在依赖需求,和相应的同事,以及网上相关的资料,和现在存在和遇到的问题来熟悉产品,发现痛点,从而设计测试方案,建立质量衡量的标准;在过程中遇到相关的问题会请教leader,协商解决然后推广;
答⑧⑨
我们人员共分了四组,一组负责主业务(音乐)客户端的测试,另一组负责音乐服务端的测试,剩下的第三组负责增值(广告)、会员、游戏、活动业务的测试,我这组负责大数据、脚本工具相关、质量体系探索相关的工作;人员分配是这样的;在质量保障方面,除了接口自动化ui自动化的定时巡检外,还有人工巡检、monkey稳定性、客户端/服务端性能、普罗米修斯的监控和服务的监控机制、已经运维相关同事的值班机制。
答⑩
覆盖率=度量场景/所有场景*100%(由于我们没法了解到所有场景,因此覆盖率是一个主观的概念;)但我们可以以其他明确的对象为锚;如从代码覆盖/产品功能覆盖方面入手;假设我们以代码的语句/判定+条件/分支/路径/组合条件方面来判断覆盖率,假定以代码的所有属性覆盖界定为百分百,那么我们就能得到一个确定的覆盖率值(这是白盒覆盖率);功能方面,假定所有最小粒度的功能都覆盖到了我们认为是覆盖了50%,然后每个小功能的每个可能的特征(数值/因果相关/状态流/组合)都覆盖了,假定为90%;所有可能错误都覆盖了在假定为100%;当我们发现测后环节出现问题,我们则认为当前覆盖是不足100%;然后分析问题,定位原因,明确覆盖率的不足的地方;我们要明白,覆盖率作为一个相对指标,我们一般是没法得到明确值的,要评估覆盖率的有效性,最好是通过线上质量(问题)和现有的覆盖测试大纲来对比评判;
代码实现接口自动化框架:接口执行、接口断言、接口结果查看、多接口执行、接口构造、接口数据维护、问题收集、监控通知、结果报告、持续集成、度量体系;因此要实现的模块有,执行模块、参数构造模块、参数化模块、问题收集模块、数据存储模块、前后置处理模块、调度的控制器、智能化(可视化操作支持、效果度量/结果仪表盘);会使用到的开源框架、pytest(用例调度/参数化)+multiprocess(并发)+request+allour
答①①
性格、协作、风险;要具体来看,如果是工作外的,求同存异吧,我会诚恳的表达自己的观点,但我不把说法他人作为目的;如果是工作中的分歧,我会听他说出他的观点,尊重他的观点,然后我会表达出我的观点,针对分歧的地方,我一般会从商业价值,对用户的体验和价值,成效方面来表达观点,如果仍难达成一致,我会找相应的决策人员来一起协商决定,如果最后拍板了,不管决定如何,我都会积极的落实,但是针对具体的风险我还是会做一些操作。
场景设计
1 | 一个视频红包的场景让设计一下测试用例? |
- 答案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24答①:红包的显示;红包的位置;红包的动效;红包的倒计时;放置不同类商品红包的显示效果,未开奖时的点击效果,开奖时的点击效果;多个红包;领取红包时的交互动作;领取红包时的音效/特效,是否支持各类音效和特效;领取各类商品,领取成功的效果;领取各类商品,领取失败的效果,自定义各类失败的效果显示;红包跳转外部的场景、其他app、端内其他视频、端内其他活动页;红包埋点;红包兼容(系统、设备、系统版本);红包接口的性能;红包安全机制(作弊策略);红包未开奖时打开,等到开奖效果;红包未开奖时打开,且一直等待到红包有效期结束;红包开奖后一直等待有效期结束后效果;点击关闭按钮关闭红包;点击系统返回按钮关闭红包;打开红包后,切换到后台在切换回前台;打开红包后,切换到其他应用,在切换回来;打开红包后,断网进行领奖;触发领奖按钮后,应用崩溃;每日领取红包达到上限后,继续领取;切换不同系统语言后,领取红包;手机连上代理后领取红包;领取红包后,领取产品同步;领取功能是否稳定,用monkey重复动作;改功能在app不同版本内能否正常使用;或者有没有有效隔离(【腾讯文档】视频红包用例
https://docs.qq.com/mind/DSUVzTk5EaXNKWlFn)
答②:内容见(职业--传易音乐工作总结;重点体现在架构,维护;需要体现出有效性/覆盖率方面的价值。
答③:弱网测试:即弱网仿真测试;通过模拟在相应网络环境下的操作来提前发现该网络环境下的问题,以保障产品在不同网络环境下的质量;
两种仿真方式:仿真模拟(Qnet腾讯、fiddler)+另一个是真实网络环境构建;重点是弱网标准(2/3/4),弱网操作;第一种可通过fiddler配置实现,终端在通过fiddler来进行代理连接来实现弱网模拟;弱网的原理是通过延迟发送的方式来实现的即数据包/速度=时间,我可以通过变更延迟发送的时间来实现每秒的网速控制;另一种可通过搭建弱网wifi的方式实现;还有就是腾讯qnet弱网测试;覆盖场景。
具体的实施,需要有一个完善的方案,分析要覆盖的弱网的场景(收集场景的数据流转和网络拓扑结构)、确定仿真的方式+要仿真的网络环境(要验证仿真的有效性)、根据业务风险+场景的特点(确定要覆盖的用例)、观察/采集场景下的网络数据(时延、丢包率等)和应用表现、从而分析弱网环境下的质量
备注:(https://tech.kujiale.com/ku-jia-le-zhuan-xiang-ce-shi-zhi-ruo-wang-shi-zhan/ https://zhuanlan.zhihu.com/p/608308463)
答④:接口性能的好坏;直观的标准就是不出问题;能处理预期内的压力,并且有好的性能体验;具体可观察以下方面接口(响应时间(平均/最大/top95响应时间),异常率,吞吐量、各中间件的处理能力);服务所在机器的资源消耗(cpu、内存、网络、磁盘、进程线程数状态等,各中间件的资源消耗)
答⑤:接口分析要从请求/响应/处理逻辑入手:响应不符合预期,在了解接口文档和预期需求后,先从请求入手,分析请求特点,在通过变更请求参数进行验证性的调用,如果有日志辅助的话,也可以看下过程日志定位;如果这样还无法定位问题,然后走读接口逻辑代码,确认问题;
答⑥:接口分析要从请求/响应/处理逻辑入手:1、我一般会在读文档前先利用提供的调式数据调用一下接口,看是否能返回(冒烟);2、然后我会从接口文档的响应入手分析响应参数,异常响应,响应耗时、超时等入手来构造请求数据测试;3、我会基于接口文档+接口应用场景等,来对接口的请求参数进行构造,一般是通过分析请求参数特征,使用等价类、边界值、因果图、组合测试等方法构造,来进行验证性的测试;同时我会分析接口的处理逻辑,基于处理逻辑的特征,通过流程法、状态转换法、边界值、错误溯源法来构造数据测试;
答⑦:登录页面测试点:https://www.processon.com/view/link/64e7890e01d25d53abfce2f7
答⑧:见(职业--传易工作总结)
答⑨:网页访问很慢,是典型的性能问题;性能问题可能是前端性能瓶颈或者后端服务性能问题。可以从两个方面来看;
先压一下网页的接口确认下,服务这边是否有性能瓶颈;服务又可以根据业务类型分析是IO密集型、还是计算型;然后进一步从架构、代码实现、分压机制、负载机制、数据流转(库/表结构)、网络拓扑结构、服务器资源等多方面分析;
前端性能瓶颈,可以观察页面渲染耗时(css样式实现)、大文件渲染情况、前端缓存策略、分压机制、终端资源消耗等方面来分析;
一般来说。前端页面内容较少,或无大文件的情况下,一般不会出现性能瓶颈;可以做一些优化和前端缓存策略来解决性能问题。
答②: 接口/性能/压测
1 | 接口: |
网络协议
1 | 浏览器输入URL发生了什么?经历了哪些阶段? |
- 答案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17答①:整个过程很复杂,分为以下几个阶段如图;①应用层生成数据包并发送(浏览器解析地址,HTTP数据包构造,调用套接字方法,控制操作系统协议栈,生成TCP数据包、封装IP数据包、从而控制网卡驱动程序、生成以太数据包、信号转换发起请求)②数据链路层(子网内,请求广播给网关即路由器)③网络层(光电转换、IP协议+路由表等,数据传输给互联网路由器)④传输层(tcp(三次握手建立连接/四次挥手断开连接)+tcp ack应答机制,实现数据包传递)⑤应用层(网卡(端口、套接字、电信号转换成数字信号、包组装、缓存数据提供给应用、应用协议读取、客户端解析渲染))见上方:网络全流程图
答②:见上方:网络全流程图
答③:udp和tcp最大的区别是;udp是无连接的(不用建立连接),没有应答机制,没有流控制和拥塞控制;不能保障传输的可靠性和顺序;tcp有连接,有断开,有应答,有拥塞和流控制(窗口滑动机制);能保障传输的可靠,顺序;但正因为tcp协议如此的复杂,因此在传输速度上会比udp慢;一般情况下都会使用tcp(一般都会用),域名解析(dns域名解析使用udp)
答④:
数据传输:
数据传输:TCP协议使用滑动窗口机制来控制数据的发送和接收,以及实现流量控制和拥塞控制。滑动窗口机制是指每个TCP连接都有一个发送窗口和一个接收窗口,用于记录可以发送或接收的数据包的范围。发送窗口和接收窗口都是由三个变量组成:序列号seq、确认号ack和窗口大小。序列号和确认号用于标识每个数据包的位置和顺序,窗口大小用于表示可以发送或接收的数据包的数量。滑动窗口机制的过程如下:
①发送方根据自己的发送窗口大小和对方的接收窗口大小来确定可以发送多少数据包,并按照序列号依次发送。同时,发送方会启动一个定时器,用于检测是否收到对方的确认。
②接收方根据自己的接收窗口大小来确定可以接收多少数据包,并按照顺序接收。如果接收到正确且有序的数据包,就向发送方发送一个ACK标志位为1的数据包,表示确认已经接收,并将最后一个接收到的数据包的len值加1作为自己的确认号。同时,接收方会根据自己的缓冲区情况来调整自己的接收窗口大小(同时还会根据应答中的接收方的窗口大小数据来调整),并通知发送方。
③发送方收到对方的ACK数据包后(由于tcp头部维护了seq和ack值会先确认ack是否无误),就认为已经成功地发送了相应的数据包,并将自己的发送窗口向前滑动一定距离,以便继续发送后续的数据包。同时,发送方会根据对方通知的接收窗口大小来调整自己的发送窗口大小,并实施拥塞控制算法来避免网络拥塞。
④如果发送方在定时器超时之前没有收到对方的ACK数据包,就认为可能发生了丢包或延迟,并重传相应的数据包。同时,发送方会根据重传情况来调整自己的定时器和拥塞窗口大小,并重新启动定时器。
数据由多个TCP数据包构成时,第一个数据包的序列号seq是0(建立连接),第二个数据包的seq=seq①+len长度(包的最后的len值+1作为seq②);确认号ack的值表示实际接收的数据量,即对应的发送包的len最后的值+1,因此多个包时ack①=seq②;因为ack的计算方法和seq是相同的;也就是通过这种方式控制包传输顺序和确认是否收到包;因此根据seq和ack的编号我们就能判断是否丢包,以及包最后按顺序组装。
系统/云原生
1 | linus命令:比较两个文件内容的不同命令? |
- 答案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21答①:diff txt1 text2 -y -W 50 //-y指以并列形式显示两个文件的不同,-W指单列宽度为50
答②:管道符号|会将前方的输入作为标准输出,输出给后方命令(当一些命令如ls、mkdir不接受标准输出时,还需要对标准输出进行转换,如echo hello| xargs ls);
kill 用来关闭进程或线程,可在关闭时传递信号如kill -9(强制信号) pid,如此命令是kill掉所有相关名称的进程或线程(ps -a | grep github | awk 'NF=1' | xargs kill -9);
grep:文本过滤函数。可过滤出文本中含关键词的行grep "过滤关键字" txt;
答③:替换操作使用sed命令。sed -i 's/替换前参数/替换后/g' txt;因此整个命令为,"grep -rl '替换前参数' 路径|xargs sed -i 's/替换前参数/替换后/g'";
答④:很多;常见的目录文件操作:ls 、touch、cp、vim、rm、mv;权限用户:chmod、chown、who、su、passwd;文本操作:cat、tail、head、grep、sed、awk;资源监控:du、df、free、vmstat、top、ps、netstat、tcpstat、lsof;系统:env、export、dmesg、uname;时间:time、date、sleep;
答⑤:chmod是授权函数;在linux文件中,权限分为读/写/执行,每个文件的权限角色有所有者/所有组/其他人,chmod能基于此规则,给不同的角色授予不同的权限;如+增加权限 (chomod -R +124/777 ./),表示给当前文件夹及其子文件夹所有者执行权限,所有组写权限,其他人读文件权限;可通过ls -l查看;
答⑥:单体式,指将一个程序系统打包成一个独立的程序单元;而微服务指将程序系统按业务分拆成不同的独立服务;单体式的优点是开发、扩展功能、部署方便,缺点是不利于维护、重用、修改;微服务会增加开发、维护的难度,但拆分后服务的复杂度低,灵活性强、可独立部署、容错性强,更方便扩展;
答⑦:查端口号可以使用以下两个命令(lsof -i|grep pid/netstat -nap|grep pid)
答⑧:查询进程ps -ef|grep pro/netstat -anp|grep pid/lsof -p pid/lsof -i tcp:80
答⑨:ll==ls -l, 查看详细文件信息;显示信息会比ls更详细,主要会显示权限和所有者信息,同时会显示文件大小、时间信息;
sql数据库
1 | mysql:Like Distinct? |
- 答案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18答①:like是模糊匹配函数,通常在where过滤中使用;通配符有%_[]等;distinct是参数去重函数,通常在select子句中使用,能对结果集中的特定列的值去重显示;
答②:问题很大,不可能全部覆盖,因此需要考虑全面
数据:增加insert into、delete/drop/update select count/sum/avg from join/right where groub by union order by limit
库:create databases、drop databases、show databases
表:create table、drop table、alter table、desc table、show table(表数据)
其他:视图create view、存储过程、事物处理的方法
答③:select *,
row_number() over (partition by 页面,商品
order by 商品访问次数 desc) as ranking
from 班级表 limit 10
第二种:
for (select top 10 页面id from 页面 order by 页面pv desc) as page
select 商品id from 商品 where 页面id in page.id order by 商品pv desc
答④:iO操作中写入/编辑对象很频繁的表不建议用索引,数据量小的表也不建议使用索引;这是由于索引有两种实现方式,一种是哈希索引,一种是B+树(平衡树)索引,底层维护了索引值和所在行内存地址的对应关系,因此查询时,无需查全表,根据索引值就能很快的查到所在行数据;但是写/编辑操作的时候,需要维护索引数据,会加大工作量,从而影响性能;
大数据
1 | 项目中用了Elasticsearch,其中的遇到难点是什么呢(答的 es如何跨域 和 es如何通过内网IP进行访问 )? |
- 答案
1
2答④:见数据测试专题
答⑥:见模型测试专题
语言/算法
1 | 代码题,列出一个列表中重复的元素? |
- 答案
1
2
3答:【腾讯文档】算法题①https://docs.qq.com/doc/DSVNFRU5BU3pCZ2hh
答②:多进程/线程:工作中主要是UI自动化,多设备执行的场景;客户端性能,monkey,资源采集多设备的场景会用到多进程;之所以这样是因为Python多线程,有gil(全局解释器锁,这是互斥锁),同时只能有一个线程能拿到锁,只能使用多核设备的一个核进行上下文切换,本质上没有并行(cpython有此机制,jpython没有);多进程使用的模块multiprocessing模块(进程池/管道/队列/遍历);要提高性能,一般要使用多进程加协程。
管理协作
1 | 如果让我从头搭建一个团队 我将从哪几个方面开始规划? |
- 答案
1
2
3
4
5
6
7
8
9
10答①:团队是为公司战略服务的,因此需要基于战略来规划团队;从以下方面考虑;
规划:理解公司的战略规划,拆解到具体自己所在的组,明确负责组的短长期的职责和规划;基于规划来分配资源;
成本:提前做好预算和成本把控,和公司财务及管理层,协商;
资源:引入合适的人员(考虑人员风格、专业能力、性格、协作能力、解决复杂问题的能力、价值观是否是公司需要的);
运营:根据当前的项目、战略和资源情况,制定合适的OKR;用来运营管理人员,坚持价值驱动,一起成长的理念;本着公正、尊重、包容、身体力行的态度,做好先行者工作;
工具:运用好管理/评测/统计类工具,使团队的工作运营能实现数字化、透明、提升团队的效率;
迭代:做好团队的成长规划,和公司战略结合;坚持能者上,不能者下的公平原则;和业务结合,做好引导创新的工作;设计好合理的协作,优化机制。针对问题及时优化处理;
答②:这个问题比较复杂;考虑从上级管理/成绩/协作/风格,同时这是个匹配度问题;
我想一下,团队之间,关系还比较亲密;除了工作私下也经常联系,会一起玩;对我的评价,我的上级莉姐,有说个几个方面吧(情商不高,太实诚,和外部对接的时候容易承诺别人,主动去抗责任;踏实,但不擅长表现工作的价值吧,不懂上级的需求吧(主要是他觉得我的PPT做的很差,向上级汇报的ppt,我记的最多的他让我改了近二十次);同事反馈的最多的,除了上面的这两种,有时候他们会觉得我有点话痨吧;)
其他
1 | 对我们公司了解?知道和现在的公司多达区别?为什么选择我们公司? |
- 答案
1
2
3
4
5答①:风格、价值观的问题(以shein举例);有一定的了解,了解到公司是做海外电商的,主要做快时尚服饰产品,现在在向电商平台迈进;美国是公司最大的市场,去年的营业额超过了300亿美金;很认可公司的价值观,客户至上,全力以赴,快速反映、融合协作、创新;之所以选择公司,是因为公司盛名远播,在快速发展,个人有很好的发展机会;公司和自己比较匹配,因为我也是做海外市场的,很认可公司的企业文化,来之前通过朋友也了解过团队的氛围,这也是我很喜欢的一点;
答②:离职原因(实话实说,侧重客观)
答③:业务方面(质量),体系方面(自动化体系),专项方面(专项能力),流程方面(sop)
面试复盘
2023/08/04 海外小说公司STARY 测试工程师 结论:通过面试;婉拒
公司规模较小,深圳这边可能就一百人左右,研发共四十多人,其中测试七人;需要招一个提升团队技术的测试人员(确定?);
问题
1 | 思路不太清晰; |
2023/08/06 客路旅行 高级性能测试 结论:应该未通过面试公司规模很大,应该类似于传易集团;业务线很多,其中测试总人数有60人,分各业务线和基础效能部门;
问题
1 | k8s介绍未答出来; |
答:
1 |
|
2023/08/10 SHEIN 高级大数据测试 结论:应该未通过面试shein是这几年发展最快的公司,岗位是aitab的大数据测试,负责电商数据测试
问题
1 | 对大数据各组件的特性不清楚? |
答:
1 |
|
2023/08/14 TCL 测试工程师(带团队) 结论:面试通过了tcl岗位是惠州的业务岗,需要带外包团队,表示和职业规划不匹配
问题
1 | 无 |
答:
1 | 无 |
2023/08/15 万兴大数据测试 结论:面试通过了,已经在走流程了此岗位较匹配,不管是工作内容,还是薪资都比较满意
问题
1 | 性能优化,各中间件问题? |
答:
1 | 无 |
2023/08/17 跨越速运业务测试 结论:面试通过了,但钱没谈拢工作内容和薪资都不太匹配
问题
1 | 性能优化,各中间件问题? |
答:
1 | 无 |
2023/08/25 传易互联支付 结论:无
``
问题
1 |
答:
1 | 无 |