【面经】2024春招-后端开发工程师3(运营,安全,测开)

主要是面试前准备的相关材料与网络上的面经,个人不透露面试题目哈~

文章目录

      • 岗位与面经
      • 基础1:测试 & 测开

岗位与面经

1、腾讯云CSIG
星星海实验室2、小鹏汽车
【24届校招】后端研发工程师(销服方向)
广州正式研发 - 后端开发
职位描述
岗位职责:
1、负责集团核心业务系统的软件架构、系统分层、关键构件、接口设计及代码实现,解决系统性能、安全、可靠、稳定性等方面的问题;
2、参与业务梳理、需求分析,做好领域设计和建模;
3、参与互联网化的企业级业务系统创新研究,及系统中技术难点的原因分析和解决。
任职要求:
1、计算机相关/软件工程/信息工程/数学系等相关专业,本科或以上学历,具备一定Java项目实习/实战开发经验。
2、了解Spring MVC、Spring Cloud、Mybatis等开发框架,了解Mysql、Redis、ES和Kafka等中间件,有应用经验者优先。
3、了解分布式、延展性、高可用架构设计,具备高容错、复杂业务场景的系统设计和开发经验者优先;
4、参与如CRM、ERP、OMS和电商系统等系统开发经验者优先;具备一定海外规模系统项目经历者优先;汽车行业经验额外加分。
5、热爱软件开发,追求极致,思路清晰,善于思考,有上进心和很强的学习能力,责任心强,具备良好的团队合作精神。
30多分钟,飞书会议,一点都没准备
没有算法题,主要挖两个项目,八股基本结合着项目问,然后适当拓展,就mysql & redis, ds & cn这些。3、深信服
深信服是一家专注于企业级安全、云计算及IT基础设施的产品和服务供应商,拥有深信服智安全、信服云和深信服新IT三大业务品牌,致力于让每个用户数字化更简单、更安全。
深信服24届校招-测试开发工程师
深信服科技/全职/本科
工作地点:深圳市(80%在深圳)、长沙市
岗位描述:
负责深信服集团母公司旗下虚拟化、云计算、安全、企业级移动应用产品的软件测试和质量建设工作;
在这里,您可以深度参与到工程生产力团队里面,开发平台和工具,让测试工作更轻松,让研发过程更高效;您可以审查代码,发现深层次的逻辑问题,指导白盒测试,帮助软件开发过程持续集成;在这里您可以成为测试开发专家,工具开发专家,自动化测试高手,测试架构师,有胆你就来!
岗位要求:
1、本科及以上学历,专业不限;
2、掌握C/C++/Python/JAVA/PHP/GO/Shell中的一门或多门语言,有基础的编码能力。
3、有较强的思维能力,学习能力。
4、喜欢钻研技术,有广泛的技术视野,具备很强的学习能力和解决问题的能力。
线下

基础1:测试 & 测开

测试理论

  • 1、介绍一下软件测试方法

    • 白盒测试:根据软件内部代码的逻辑结构分析来进行测试。单步调试很好用。测试用例设计方法:逻辑覆盖、循环覆盖、基本路径覆盖、判定覆盖。

      缺点:系统庞大时测试开销很大,难以测试所有运行路径。

    • 黑盒测试: 测试用例设计方法:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试法、场景法。

      • 等价类划分:将全部输入数据合理划分成若干个等价类,在每一个等价类中取一个数据作为输入条件,就可以用少量代表性测试数据取得较好的测试结果。分为有效等价类(合理、有意义的输入数据构成的集合)和无效等价类
      • 边界值分析法:大量错误是发生在输入输出范围的边界上,选定测试用例时应该选取正好等于、刚刚大于、刚刚小于边界值的值作为测试数据,而不是选取等价类中的任意值,作为对等价类划分的补充
      • 错误猜测法:基于经验和直觉推测,列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据这些情况选择测试用例
      • 因果图法:考虑输入条件之间的相互组合,也考虑输出结果对输入条件的依赖关系。原因即为输入条件或者输入条件的等价类,结果即为输出条件,把因果转换为决策表,为决策表中的每一列设计测试用例。
      • 场景分析法:根据用户场景来模拟用户的操作步骤
      • 大纲法:着眼于需求。将需求转换为大纲的形式,大纲表示为树状结构,在根和叶子节点之间存在唯一路径,大纲为每条路径定义了一个特殊的输入条件集合,用于测试用例。
      • 随机测试法:不考虑任何用例和需求,完全站在用户的角度对产品进行测试
    • 动态测试:

      实际运行被测程序,输入相应的测试用例,检查运行结果与预期结果的差异,从而验证程序的正确性、有效性和可靠性,并且分析系统运行的效率和健壮性

    • α测试:一个用户在开发环境下的受控测试,模拟实际操作环境

    • β测试: 多个用户在实际使用环境下进行的测试,如一些软件的公测

    • 冒烟测试:在大规模测试之前,先对软件的基本、核心、主要功能进行测试,节省资源

    • 回归测试:开发修正完代码后再回过头来做测试

    • 随机测试:跳出思维的限制,没有思想、没有步骤地随机进行测试

    • 探索测试:有思想,有步骤地测试一些复杂的、不常用地功能

  • 2、设计一些测试用例?

    • 登录测试(功能):

      • 输入已注册的用户名和正确的密码,验证是否登录成功;
      • 输入已注册的用户名和不正确的密码,验证是否登录失败,并且提示信息正确;
      • 输入未注册的用户名和任意密码,验证是否登录失败,并且提示信息正确;
      • 用户名和密码两者都为空,验证是否登录失败,并且提示信息正确;
      • 用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确;
      • 如果登录功能启用了验证码功能,在用户名和密码正确的前提下,输入正确的验证码,验证是否登录成功;
      • 如果登录功能启用了验证码功能,在用户名和密码正确的前提下,输入错误的验证码,验证是否登录失败,并且提示信息正确。
      • 用户名和密码是否大小写敏感;
      • 页面上的密码框是否加密显示;
      • 后台系统创建的用户第一次登录成功时,是否提示修改密码;
      • 忘记用户名和忘记密码的功能是否可用;
      • 如果登录功能需要验证码,点击验证码图片是否可以更换验证码,更换后的验证码是否可用;
      • 刷新页面是否会刷新验证码;
      • 如果验证码具有时效性,需要分别验证时效内和时效外验证码的有效性;
      • 用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面;
      • 不同级别的用户,比如管理员用户和普通用户,登录系统后的权限是否正确;
      • 页面默认焦点是否定位在用户名的输入框中;
      • 快捷键Tab 和Enter等,是否可以正常使用。
    • 登录测试(安全)

      • 用户密码后台存储是否加密;

        用户密码在网络传输过程中是否加密;

        密码是否具有有效期,密码有效期到期后,是否提示需要修改密码;

        不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面;

        密码输入框是否不支持复制和粘贴;

        密码输入框内输入的密码是否都可以在页面源码模式下被查看;

        用户名和密码的输入框中分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面;

        用户名和密码的输入框中分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改;

        连续多次登录失败情况下,系统是否会阻止后续的尝试以应对暴力破解;

        同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期;

    • 登录测试(性能)

      • 单用户登录的响应时间是否小于3秒;
      • 单用户登录时,后台请求数量是否过多;
      • 高并发场景下用户登录的响应时间是否小于5秒;
      • 高并发场景下服务端的监控指标是否符合预期;
      • 高集合点并发场景下,是否存在资源死锁和不合理的资源等待;
      • 长时间大量用户连续登录和登出,服务器端是否存在内存泄漏。
    • 登录测试(兼容性)

      • 不同浏览器下,验证登录页面的显示以及功能正确性;
      • 相同浏览器的不同版本下,验证登录页面的显示以及功能正确性;
      • 不同移动设备终端的不同浏览器下,验证登录页面的显示以及功能正确性;
      • 不同分辨率的界面下,验证登录页面的显示以及功能正确性。
    • 微信红包测试:

      • 单个红包:

        • 红包金额为空、0、0.01、200.00、200.01、199.99、200
        • 留言输入数字、字母、汉字、特殊字符
        • 留言长度
        • 留言复制粘贴
        • 表情选择收藏表情、其他表情
        • 删除表情、重新选择表情
        • 选择支付方式 零钱、银行卡、添加新卡支付。其中钱数<红包钱数、其中钱数=红包钱数、其中钱数>红包钱数
        • 使用指纹确认付款(正确的、错误的指纹)
        • 使用密码确认付款(正确的、错误的密码)
      • 群发红包-普通红包: (只写了与单个红包不同的地方)

        • 红包个数 为空、0、001、100、99、101
        • 红包拆开每个金额一样 均为发红包时设置的单个金额对应的钱数
        • 红包被拆时,有相应提示
        • 发红包者自己领红包
        • 红包24小时内未被拆完,剩余钱被退回,相应支付方式中钱数增加
      • 兼容性测试:

        兼容性: 安卓、苹果 不同型号版本手机

        UI测试: 界面无错别字,风格统一

        中断测试: 不同应用之间切换、断网、来电、短信、低电量、手机没电

        网络测试: 2g/3g/4g WiFi 移动联通电信 弱网 无网

    • 测试百度搜索

    • 测试记录框

测试工具

  • 1、介绍一下自动化测试? 参考

    • 优点如下:

      • 节约成本和时间

      • CI和DevOps, 提高开发效率

      • 准确性和可靠性, 降低人因风险

      • 性能测试,压力测试

    • 自动化测试框架

      • Junit(白盒测试、API自动化、UI自动化)、Selenium(Web自动化、爬虫,Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据桌面元素的属性来定位的。)、

        TestNG(白盒测试、API自动化、UI自动化)、pytest(白盒测试、API自动化、UI自动化)、ATX(移动端的UI自动化测试) GoogleTest编写测试用例面向测试编程,先写测试用例。

        Jmeter:接口测试,性能测试。

        • 一个比较成熟的测试框架通常会包含 4 个部分,分别为基础模块,管理模块,统计模块和运行模块。
        • **管理模块:**管理模块就仿佛是车中的内饰,它对测试框架的使用操作体验有着直接的影响,分为测试数据管理和测试文件管理。 测试数据一般是测试用例用到的各种测试数据,他们是为了验证业务正确性而构造,每一组的测试案例通常会对应一对或多对测试数据。测试数据的创建又分为实时创建和事先创建。测试文件管理就仿佛是车子的外观,给人第一印象。一个测试用例通常需要包含三个文件,分别是Page类文件,测试类文件和对象库文件。
      • **运行模块:**运行模块为测试框架的发送机,用于测试用例的组织和运行,通常包含下面几个部分:测试用例调度,驱动机制,错误恢复机制。测试框架应该具有一定的错误恢复机制,测试案例执行过程中,可能出现代码运行错误或环境导致的错误。测试框架应该能够和 CI 系统低成本集成,包括通过用户输入参数指定运行环境、测试结束后自动生成测试报告等。(流水线)

        • CICD::持续集成(Continuous integration,简称CI),简单来说持续集成就是频繁地(一天多次)将代码集成到主干。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽快地发现集成错误。
  • 2、BUG描述、评级

    • 对bug的描述尽量简短但要求清晰,对bug出现的条件进行详细的描述,包括输入的测试用例、使用的环境、有没有和其他软件同时运行,以及需要写清bug出现的位置,帮助开发更好定位。

      按照用户体验(bug是否很严重的影响用户体验)、影响系统的程度进行评级。

    • 一条bug记录的组成

      • bug内容

      • bug发现时间

      • 测试条件(系统配置信息、环境、软件版本、浏览器版本…)

      • 预期结果和实际结果的对比,相关的分析

      • 如何重现这个bug的步骤

      • 这个bug的严重性(会多大程度的影响系统或用户使用)

      • bug发生的位置

    • QPS和TPS的区别

      TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。

      QPS:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准

      用来衡量服务器的机器性能。

      是软件测试结果的测量单位。

  • 3、分析报告:

    • 1、【xx测试环境】日报,质量数据,业务可用性,xx个指标,达标xx个,达标率xxx。
    • 2、【KV运行状况】日报
    • 3、【质量月报】概述,故障情况,用例可用率,质量管理。。主要是各个分类的目标和完成情况。
    • 4、【故障报告】故障主题,发现途径,发生时间,影响时长,影响说明,最终定级(核心功能影受影响比例,影响时间数量比例,投诉等)原因分析,改进措施,修复方法,处理过程。
    • 5、【风险周知】影响范围,风险级别,修复建议,修复方式,修复情况,操作指引

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/4796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JFormDesigner 替换自定义类对象, code generation , custom creation code

JFormDesigner 文件的右侧 Code Generation -> Custom Creation Code 编辑写入 自定义的类对象

【一步一步了解Java系列】:探索Java基本类型与C语言的区别

看到这句话的时候证明&#xff1a;此刻你我都在努力~ 加油陌生人~ 个人主页&#xff1a; Gu Gu Study ​​ 专栏&#xff1a;一步一步了解Java 喜欢的一句话&#xff1a; 常常会回顾努力的自己&#xff0c;所以要为自己的努…

C++初阶之类和对象(下)

一、构造函数 1、构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;} private:int _year;int _month;int _…

小程序API wx.startLocationUpdateBackground 的使用

若使用该接口&#xff0c;需要在 app.json 中进行声明 requiredPrivateInfos: [getLocation,onLocationChange,startLocationUpdate,startLocationUpdateBackground],requiredBackgroundModes: [audio,location],代码&#xff1a; 1、使用wx.startLocationUpdateBackground需要…

LeetCode 344.反转字符串

LeetCode 344.反转字符串 1、题目 题目链接&#xff1a;344. 反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一…

Java对象在堆和栈上的存储(对象布局,待完善)

0、前言 这里提到的 Java 对象不仅仅包含引用类型&#xff08;Object&#xff09;&#xff0c;还包含基本数据类型&#xff08;boolean、int、long、float、double&#xff09;。文中部分图片来源于 B站 黑马程序员。 1、在栈上的数据存储 1.1、局部变量 局部变量包含以下情…

2024最新docker部署gitlab

docker部署gitlab 快速命令 1 拉取镜像 docker pull gitlab/gitlab-ce2 启动容器 docker run -itd \-p 9980:80 \-p 9922:22 \-v /opt/soft/docker/gitlab/etc:/etc/gitlab \-v /opt/soft/docker/gitlab/log:/var/log/gitlab \-v /opt/soft/docker/gitlab/opt:/var/opt/g…

20个 Golang 常见面试问题

1 Goroutine 在 Golang中的作用是什么&#xff1f; Goroutines 使得 Golang 能够并发执行多线程任务&#xff0c;允许函数在不相互阻塞的情况下同时运行。 2 如何在 Golang 中处理共享资源的并发访问&#xff1f; Golang 提供了同步原语&#xff0c;如互斥锁&#xff08;mu…

Vite proxy-rewrite 属性详解

在前端开发中&#xff0c;为了避免跨域问题&#xff0c;我们会在vite.config.ts 中配置如下问题 rewrite: 由于不了解Nginx的知识&#xff0c;这个属性一直困扰着我&#xff0c;这个重写有啥用&#xff0c;加和不加有啥影响 server: {host: 0.0.0.0,proxy: {/api: {target: ht…

操作系统安全:安全审计,Windows系统日志详解,Windows事件ID汇总

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

从零开始安装 stable diffusion webui v1.9.3 (windows10)

从零开始安装 stable diffusion webui v1.9.3 (windows10) CUDA 安装 CUDA 12.1 | https://developer.nvidia.com/cuda-toolkit-archive CUDNN 8.x | https://developer.nvidia.com/rdp/cudnn-archive 安装路径 F:/CUDA/v12.1 安装git git官网 | https://git-scm.com/ 安…

数据结构-二叉搜索树(BST)

目录 什么是二叉搜索树 二叉搜索树的特性 (1)顺序性 (2)局限性 二叉搜索树的应用 二叉搜索树的操作 (1)查找节点 (2)插入节点 (3)删除节点 (4)中序遍历 什么是二叉搜索树 如图所示&#xff0c;二叉搜索树&#xff08;binary search tree&#xff09;满足以下条件。…

【EI会议|稳定检索】2024年航空航天、空气动力学与自动化工程国际会议(ICAAAE 2024)

2024 International Conference on Aerospace, Aerodynamics, and Automation Engineering 一、大会信息 会议名称&#xff1a;2024年航空航天、空气动力学与自动化工程国际会议 会议简称&#xff1a;ICAAAE 2024 收录检索&#xff1a;提交Ei Compendex,CPCI,CNKI,Google Schol…

WebGL开发框架比较

WebGL开发框架提供了一套丰富的工具和API&#xff0c;使得在Web浏览器中创建和操作3D图形变得更加容易。以下是一些流行的WebGL开发框架及其各自的优缺点。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.Three.js 优点&#xff1a…

装饰器模式、代理模式、适配器模式对比

装饰器模式、代理模式和适配器模式都是结构型设计模式&#xff0c;它们的主要目标都是将将类或对象按某种布局组成更大的结构&#xff0c;使得程序结构更加清晰。这里将装饰器模式、代理模式和适配器模式进行比较&#xff0c;主要是因为三个设计模式的类图结构相似度较高、且功…

VitePress 构建的博客如何部署到 github 平台?

VitePress 构建的博客如何部署到 github 平台&#xff1f; 1. 新建 github 项目 2. 构建 VitePress 项目 2.1. 设置 config 中的 base 由于我们的项目名称为 vite-press-demo&#xff0c;所以我们把 base 设置为 /vite-press-demo/&#xff0c;需注意前后 / export default…

Docker容器:搭建LNMP架构

目录 前言 1、任务要求 2、Nginx 镜像创建 2.1 建立工作目录并上传相关安装包 2.2 编写 Nginx Dockerfile 脚本 2.3 准备 nginx.conf 配置文件 2.4 生成镜像 2.5 创建 Nginx 镜像的容器 2.6 验证nginx 3、Mysql 镜像创建 3.1 建立工作目录并上传相关安装包 3.2 编写…

设计模式(三)、模板方法设计模式

模式定义 模板方法模式(Template Method Pattern):定义一个操作中算法的框架而将一些步骤延迟到子类中&#xff0c;模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 模式结构 模板方法模式包含如下角色: AbstractClass: 抽象类 ConcreteClass:具体…

SSH远程直连服务器docker容器的jupyter

SSH远程直连服务器docker容器的jupyter 动机&#xff1a;最近在公司服务器使用jupyter出现了点问题&#xff0c;也不知道怎么回事&#xff0c;jupyter lab打开都没问题&#xff0c;但是准备打开一个ipynb文件时就卡住了&#xff0c;啥反应没有&#xff0c;ctrlC 也不能关掉jupy…

JAVA——抽象类

抽象类 Java中的抽象类是一种特殊的类&#xff0c;它不能被实例化&#xff0c;即不能直接创建对象&#xff0c;只能作为其他类的基类&#xff08;父类&#xff09;来使用。抽象类主要用于定义一些通用的属性和方法&#xff0c;这些方法可以在子类中得到具体的实现。 抽象类使…