【全文7000字】顺丰同城测试开发一面 49min答案

今天给大家分享一份顺丰同城的测试开发一面面试真题。老规矩,当你看到这份面试题的时候,先不要着急去看答案,你可以想想假如你在面试现场,你会怎么回答?这个思考的过程其实也是很重要的。

全文7000字干货,如果对你有帮助,希望能点个赞,这样我才有继续更新下去的动力。

1. 首先做个自我介绍吧

主要概括个人优势➕简短,2~3分钟内。自我介绍的框架:

1、职业背景:过往在什么公司工作过,做过什么工作岗位,担任了什么样的一个角色。

2、个人优势/技能:擅长做什么?核心优势是什么?

3、成功项目:在过去的工作中,你有没有做过一些有亮点的项目,这个项目是什么,项目的数结果如何(最好有数据表现)。

4、如果没有亮点项目的话,就在个人优势这里,稍微拓展一些,自己掌握了什么技术。比如会自动化的环境搭建,自动化项目的部署,掌握接口、UI自动化测试的技术等。

综上所述,过去掌握的技能和经验,可以帮助快速上手项目的测试工作,所以和咱们公司的这个测试岗还是比较匹配的。

2.介绍一下实习时,负责的测试内容

一定记住分点去说,分别负责1234哪些部分,表达要有条理。

3.你是怎么去做测试的,或者说你是怎么去保证测试质量的?

先想清楚,什么会影响测试质量?之前转载一篇京东测试大佬写的文章,里面就有提到过:实际影响质量的因素有很多,一般包括

  1. 需求评审充分性、
  2. 技术方案合理性、
  3. 测试用例颗粒度、
  4. 测试手段完备性、
  5. 开发质量、
  6. 团队能力熟练度
  7. 跨团队配合等等。

知道影响因素后,就可以从每个影响的因素去回想,你做了哪些针对性的措施来保证测试质量。以上,是第一种回答思路。

第二种回答思路:可以从测试流程的思路来作答,这样不容易遗漏。

可以从测试前、测试中、测试后3个大的部分来说,当然面试的时候不需要把所有的测试流程全部讲完,只需要挑出你在哪一部分,做了什么来保证测试质量就可以了。

4.测试的流程是怎么样的,能描述一下吗?

每家公司的测试流程不一样,但是一般会包括以下流程:

一、测试前:1、产品需求评审;2、技术方案评审;3、用例评审;4、用例设计;

二、测试中:接口测试、冒烟测试、功能/UI测试、系统测试、回归测试、代码覆盖度测试、兼容性测试、产品验收测试、线上测试、自动化脚本是否需要每次上线前跑一遍等。

三、测试后:线上问题复盘。

5. 如果你发现了一个bug,怎么推动开发去修改?

第一,自己先定一个优先级,是否是立即要修改的bug,修改这个bug是否会延误上线时间等。

第二,如果优先级高,和开发沟通,解释bug的影响范围。

第三,协作:帮助开发查找定位bug,减轻开发的压力,会更愿意去修改。

6.有没有遇到过发现bug,研发认为不是bug的情况,你是怎么解决的?

第一,自己重新复现一下,确定是bug。

第二,看bug报告描述是不是有问题,是不是自己描述不准确。

第三,获取判断的依据和标准:比如用需求文档和开发当面进行沟通,注意客观、严谨,不参杂个人情绪。

第四,如果仍然存在争议,需要产品经理介入,一起讨论。

第五,以上方法都行不通的情况下,向上反馈,由上级做出决定。

7. 除了功能测试之外,还做过其他方面的测试吗?

8. 你常用的Linux命令有哪些?

9. 怎样进行跨服务器的文件传输?

在这里插入图片描述
在这里插入图片描述

10. 如何查看服务器磁盘还有多少容量?

(1)查看内存空间

使用“free”命令可以查看服务器的内存空间,选项“-m”表示以MB(兆字节)的数据存储单位进行显示。执行结果如下所示:

在这里插入图片描述
在以上输出结果中,Mem表示系统的物理内存,total表示内存的总大小(995M),used表示已经使用的空间(168M),free表示可用空间(827M)。关于其他内容读者可参考Linux帮助手册进行学习,这里就不再详细解释。

(2)查看磁盘空间

使用“df”命令可以查看服务器的磁盘空间,选项“-lh”表示利用方便阅读的数据存储单位显示本地文件系统。执行结果如下所示:


在以上输出结果中,Filesystem是文件系统,Size表示该分区的总大小,Used表示已经使用的空间,Avail表示可用空间,Use%表示已经使用的百分比,Mounted on表示挂载路径。可以看出,系统共分为3个文件系统,其中“/dev/mapper/VolGroup-lv_root”是挂载到根目录的文件系统,总大小为8.3G,已经使用的空间为646M。通过上述命令可以看出,最小安装后的CentOS占用的内存和磁盘空间都非常小。用户可以根据自己的需要来手动安装软件和配置系统,避免因为大量预装软件而导致内存、磁盘等硬件资源的浪费。

11.MySQL的索引有了解过吗?索引有什么优缺点?

优点:

①减少了数据检索的时间

②保证了数据的唯一性

③表与表之前的参照完整性

④减少了在分组、排序的检索时间

缺点:

①创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

②除了数据表占数据空间之外,每一个索引还要占一定的物理空间。

③当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

12. MySQL的事务有什么特性?

  • 原子性(Atomicity):一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。
  • 一致性(Consistency):在一个事务执行之前和执行之后数据库都必须处于一致性状态。如果事务成功完成,那么系统中所有变化将正确应用。如果事务出错,那么系统中的所有变化自动回滚。
  • 隔离性(Isolation):在并发环境中,当不同的事务同时操作相同的数据时,每个事务都有各自的完成数据空间。数据更新时,数据所处的状态要么是更新前的状态,要么是更新后的状态。
  • 持久性(Durability):只要事务成功结束,它对数据库所做的更新就必须永久保存下来。

13. 给你三张表,student(学生表)、course(课程表)、sc(成绩表),查询平均成绩大于60分的同学的学号和平均成绩。你现在写一下SQL语句。

在这里插入图片描述
查找本学期没有选课的学生:

SELECT s.sname, s.sid FROM student s join sc on s.sid=sc.sid WHERE sc.cid IS NULL;

查找挂科的学生:

SELECT s.sname, s.sid, sc.score FROM student s join sc on s.sid=sc.sid WHERE sc.score<60;

14. 发现bug之后怎么去做定位,有去分析过bug产生的原因吗?

第一步,确认是否是bug(看是否满足预期)。

第二步,保存bug记录,视频或截图。

第三步,找到稳定的复现步骤,以及找到复现问题的最短路径。复现路径越短,说明问题的影响面越大,更应该受到重视。

通过以上几个步骤,就可以清楚的去描述问题现象。

确认问题之后,接下来开始定位bug:

首先需要定位,这个bug是前端问题还是后端问题,一般是由浅入深,先从前端着手。通过抓包看是不是数据的问题,假如接口数据没问题,就是前端问题。假如接口数据有问题,大概率就是后端问题。后端问题看状态码,查看后端日志去看代码有没有异常,检查数据库、缓存、配置是否有异常。通过以上步骤,基本都能找到bug原因。

15. HTTP状态码有了解吗?

1 1xx消息

2 2xx成功

3 3xx重定向

4 4xx客户端错误

5 5xx服务器错误

下面是常见的 HTTP 状态码:

200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误

16. 页面现在有一个数据展示的不对,怎么去判断是前端问题还是后端

前端bug特点 1, 界面相关 2,布局相关 3,兼容性相关

后端bug特点 1,业务逻辑相关 2,性能相关 3,数据相关 4,安全性相关

1、经验法

软件测试人员应不断精进自己的技能,负责的项目多了,自然对功能的实现过程有了解,也就明白如何分类bug了。例如:网页上的某个图片的分辨率不对,如果我们了解实现过程,可以想到一般情况下,是根据某个地址去服务器取图片的,数据库一般只保存地址,那么图片能正确显示,就说明后端的基本功能是满足需求的。如果具体图片分辨率有误,最可能的原因是前端显示过程出了差错。

2、查日志

当我们发现一个bug,并不确定这个bug属于前端还是后端,可以查看后端服务的日志,复现bug时,查看日志中有没有相关信息。基本可以认为,如果日志没有输出,很可能这个功能并没有与后端交互,也就不存在后端的问题。反之,如果日志有输出,可以进一步查看有无错误日志信息,进一步分析。

3、查接口

这种方法常用于查看是后端返回给前端的数据有误,还是前端显示有误。大多数浏览器都有自带的接口查看工具,如Chrome,FireFox等都可以通过F12开启抓包,在NetWork中可以看到当前页面发送的每个http请求。我们需要对比通过后端接口拿到的数据和前端显示的数据,来确认问题出在哪里。如果数据错了,页面显示是错的,也是正常的,先从后端入手去解决。

还可以分析控制台中js是否有错误,network中状态码是否有问题,如果是500等说明服务端有问题。

比如登录页面,输入账号和密码点击登录,结果没有跳转也没有反应。

可以打开控制台,看是否有js错误,如果有就是前端问题,没有且有正常post请求再看network状态码,如果是404有可能是前端参数写错或者后台接口改了,前后端都可以提,500就是后台出了问题。

17. 有了解过一些中间件的东西吗?

中间件是介于操作系统和在其上运行的应用程序之间的软件。中间件实质上充当隐藏转换层,实现了分布式应用程序的通信和数据管理。它有时被称为管道,因为它将两个应用程序连接在一起,使数据和数据库可在“管道”间轻松传递。

通过中间件,用户可执行很多请求,例如在 Web 浏览器上提交表单,或者允许 Web 服务器基于用户的配置文件返回动态网页。

常见的中间件示例包括数据库中间件、应用程序服务器中间件、面向消息的中间件、Web 中间件和事务处理监视器。每个程序通常都会提供消息传递服务,让不同的应用程序可使用简单对象访问协议 (SOAP)、Web 服务、表述性状态转移 (REST) 和 JavaScript 对象表示法 (JSON) 等消息传递框架进行通信。

虽然所有中间件都执行通信功能,但公司选用的类型将取决于要使用的服务以及需要传达的信息类型。这可包括安全身份认证、事务管理、消息队列、应用程序服务器、Web 服务器和目录。

中间件还可用于实时发生的操作的分布式处理,而不是来回发送数据。

学习资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于想自学【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

加入下方我的交流群免费获取!

猜你喜欢

转载自blog.csdn.net/weixin_54696666/article/details/125813363