记录第一次银行测试岗面试【总结几点面试不要犯得错误】
LZ在一个18线小城市做测试,近来想走出自己的舒适区,去做一点不一样的测试工作。
18线地区,测试工作并不多。最好的差不多就是LZ目前待着的公司了。遂决定去魔都闯荡几年,对一个在魔都无房无车无户口的人来讲,这意味着很累,然人无远虑必有近忧。即使有一天你的城市通地铁和高铁了,来了一群优质的互联网公司,我除了离得近,有配得上的技能嘛。
XX银行面试
年前在BOSS直聘上投递的简历,年后约面试。我要求先电话面试一轮再去。【这里说一下有的公司招人职位要求和面试要求完全不一致,毕竟魔都里的有些远,不想浪费一次年假和自己的无奈,去验证他们的jd和面试内容。】电话里了解到他们想招Java能力好一些的测试人员,以后的工作内容是自动化测试,并且开发一些测试平台和加密解密系统。是我感兴趣的部分...不敢十拿九稳,但想试一下。于是就约了周一10点面试。
一面
提前一个小时到,问了问hr是否方便过去,HR让我直接上去。我就拖着热水袋,开心地乘电梯去了10楼。
HR将我领到会议室,填了个人信息表,调查表,一会儿之后来了一个高个子瘦瘦的面试官。
1. 用JAVA怎么读取文件中的内容?
Property p = new Property;
读取输入流获取的内容
那要是多个文件,也用这个读吗?
LZ基础太薄弱,想不出别的方法。
你有没有想到这种读文件方式的弊端?
LZ一脸茫然。。。【心更凉,白来了么,亏我5点多就乘着大巴冒着雨赶过来,这种面试题完全没遇到过,工作中亦未遇到过。】
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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
|
2.设计模式了解吗?
饱汉模式,饿汉模式,工厂模式,spring mvc模式
不对。饱汉模式,饿汉模式不是设计模式,是单例模式中的。
哦,是的,我记错了。
设计模式一共有22种左右。
嗯嗯。
你手写个单例模式可以吗?
拿着笔,在自己刚填内容背面,手写着,心中记着单例模式重点叫私有什么来着,
private class a{}
又想着单例模式中饱汉饿汉的区别,哪一种安全,还没写完,面试官就说:"我一看你写的就知道你写错了"
没关系,有些开发也不知道。只要你愿意学,我就可以教你。
【这是我听到的能让我坚持下继续面试的话】
【面试官】我想招个开发能力强的人,我没空去写比如加密解密的代码,需要别人来写完。框架我都搭好了。
3.说说你们的测试流程
我们,巴拉巴拉,接到需求后,会有一个需求文档,通过邮件的形式发给整个项目组,包括PM,开发,测试和支持。并约定一个接下来的时间,进行启动大会kick off meeting
每个人对需求文档,提出自己的问题,比如与以往的需求,是否有冲突的地方。
比如需求实现的方式,是通过接口,还是存储过程,是通过用mq同步数据的方式,还是代码中跨数据库,那是否同一个操作要实现跨数据库的事务等等。
然后带着这些问题,参加启动大会,项目中的每个人提出来,最后总结具体实现的方式,覆盖的范围。
假设是接口的话,会详细到接口的字段,字段长度,必填性,字符类型等等,这边主要是测试和开发,会在会议上定好哪些代码中一定要校验,很多情况下,不定的细致,接口校验会漏掉,觉得页面UI已经有了。
会议结束后,开发人员会将接口文档发给项目中的每个人。这个时候测试人员,要检查接口文档,检查字符长度是否和DB中长度,是否有超过DB中长度;检查异常中返回值和信息是否正确。检查最终数据流相关的字段是否准确。
检查正常的有复杂逻辑关系的,逻辑顺序是否正确。
不正确,提出,正确,回复邮件。之后,测试人员,编写测试用例,发给项目中的人员进行评审。
之后,编写case并构造入参数据,断言,DB中检验,等等。
等开发提交代码后,进行测试,有bug则提bug,之后再对全部case回归测试。balabala。。。
4. 我们这儿有个接口,有158个入参,其中有100个入参。对100个入参必填做校验。
比我们接口中参数要多很多,目前我们有脚本,对少数的入参,只能填写变量名,长度,断言就可以一次性走完异常测试场景。
你们100个入参,有些多,需要根据接口文档动态生成测试脚本,包括测试用例描述,测试数据,测试结构断言。
【面试官】我的想法是100个必填入参,用java代码,依次判断,就是100个循环,单独测任何一个入参的必填;在随机个数的参数,不填,验证必填参数的异常。
我目前在开发测试平台,创建一个对象,包含变量名称,必填性,字符类型,字符长度,范围比如是int型有的referrence表传过来的只能1-10,一个接口中的入参,将是一个list,list中每个对象,根据
必填这个属性,生成一个list。
list中依次遍历,每次少一个对象变量名称,那测试用例依次生成未传入某某变量,测试数据,其他的变量和值依次拼接起来,map方式,map的key是字段名,value是自动生成的值,value需要在符合的长度内,值的范围也必须在。
代码都能实现。一般一个项目的请求体的格式一致的,比如现在常用的json格式,拼接一下key value,前后大括号,等等,最终测试数据也生成。
断言部分同理,可生成。
这个平台我在构思和开始设计表结构,实现方式,还未成功。关于你说的再随意若干个字段不传,我一般不会有这个样的case。原因是,java代码中判断入参不传,有先后顺序,你这个随机不传,断言要怎么写。
还是你们所有的必传入参不全,返回信息是同样的?
【面试官开始对我有好转了】
5. 说到我上面的接口测试用例自动生成平台,我的确开始在做。索性趁热打铁,我说了下我已经完成了项目
我自己用springboot写了一个mini的bug管理平台,都增加了些什么功能呢? 登录授权后,查看这个项目下,各个测试类型的bug。并且是基于我们公司的情况,
比如每次任务需要一个CR,没有CR是不做的,CR下来了我们公司还需要有任务编号,等等。说简单了是CRUD,说到CRUD,数据处理层使用JDBCTemplate实现的,页面用的Thymeleaf模板引擎。
还加了定时,根据bug中的更新时间,每15分钟将更新时间距离当前时间小于等于15分钟的bug信息,逐条发送给测试人员和开发人员。
这个和JIRA、bugtracker等不同,是个定时任务用来发邮件。
系统出来了之后,要一下子录入原来的bug,一条一条很不方便,我创建了一个jmx脚本,其实就是一个简单的请求,以往测试人员会将测试用例,以excel大多这样的形式保存在本地,脚本中只要填写项目id等信息,可通过类似性能测试的方式,一次导入所有的bug,丰富bug系统,将以往工作中的bug全部呈现在一个平台上了。
这之后又编写了测试用例管理平台,差不多的原理,这个时候数据处理改成了mybatis,因为涉及的表更多了,用mybaits方便。我们测试的内容有接口,有UI,有存储过程,测试用例格式不太一致,所有测试任务一张表,然后之后具体的测试用例是根据测试类型,分别新增到对应的3张表。
balabala。。。后来也给大家提供了Jmeter创建的脚本,配置好项目名称等信息后,可一次性导入以往保留在本地的所有测试用例。
6. springboot中mysql是自带的,很方便?
不是。
mysql是自带的?
不是,需要引入mysql驱动jar包依赖的。况且我开发的时候,本地连接的是mysql,后来导成jar包,不能用我本地数据库,我们公司用的sqlserver
我尽量保证sql一致性,分页部分无法一致,就改一两行代码。
7. 有没有bug?
有。【哈哈哈】
什么bug?
小bug。bug邮件提醒部分,我们公司的邮箱是outlook,outlook是什么公司,微软,打开后bug信息的具体描述,本来是textarea格式,应当是分行显示的,但是没有分行。
然后你用手机打开,手机一般是苹果和安卓嘛,邮箱中打开是没有问题的。
这个也不能算bug。模板引擎不能保持兼容所有的浏览器,很多UI方便的东西,开始抛弃IE,抛弃微软了
对对对。
有别的bug吗?
有,我自己知道,使用者暂时还不知道,我就暂未改。
什么bug?
额,比如,展示所有bug页面,既有多重查询后,显示符合条件的bug,bug页面最右下角有分页。
因为我分页用的是get请求方法,而多重查询用的是POST请求方法,目前在不输如任何查询条件的情况下,分页功能完全OK
输入查询条件,不管一个或者多个,第一个ok,接下来查的是所有bug,不再有查询条件的限制啦。【呵呵】
为什么没被发现?
bug倒序显示,其次是查询条件限制后,查出来bug较少。所有一般不被发现。查询条件嘛,为了精准查询。
8. 我们这边的人员分配是xx个外包,其他是JF,只有一个人是行编制,当然这个人不是我。
你如果进来,是JF,和我一样,待遇上和行编制差不多,比外包要好一些。
9. 你们冒烟测试怎么个流程?
额,比如接口测试,冒烟测试是指囊括原来的所有的功能都要正常对吧,额,我们的开发将代码提交到git上,通过Jenkins自动部署到服务器上的指定的中间件之后,重启中间件,热部署有时候总有问题。
中间件重启之后,自动运行编写好的自动化测试用例,用例包含正确的断言验证,DB数据验证,异常场景的断言验证,之后会发出一封测试报告。测试报告全部通过,则表明OK;
【面试官】呵呵,据我了解,冒烟测试是针对修改项或者新增的功能所做的测试?
哦,那开发会有自测并子自测成功后,将转测邮件发出,转测邮件上写着xx验证什么ok。
但是,如果开发转测的功能,本次涉及到的自测了没问题,但是影响到了以往的接口,我依然不会开始测试的。我的自动化测试脚本在呢。
【面试官】呵呵。
还没轮到LZ提问,面试官说我去喊我领到来,走的时候顺便说了句,你在我这边是OK的,没问题的。
我诚恳说了句谢谢。
二面
一会儿进来了二面面试官。
1. 刚刚一面面了多久?
LZ看了下手机,40分钟。
你们都面了什么?
LZ开口就说,想到什么说什么。说得比较混乱。
那你们面的什么呢?
LZ总结了下,JAVA,测试流程,做过的项目
面试官终于问别的了。
2. 自我介绍一下吧
balabala。。。
为什么要转岗到测试?
巴拉巴拉,无非是离境数据管理条例,balabala
你们是营销型公司?
balabala。。。。主要是通过。。。。
薅羊毛?
LZ一脸茫然。。后来才反应过来面试官是觉得我们公司是个薅羊毛公司。替知名企业各个行业的Top10做精准数据营销。
3. 说一说测试人员对数据库的认识?
LZ听不懂。。。
面试官复问
LZ答 要有数据库读的权限,产品一旦上线很长时间,每次修改,DB中数据会有一些不是我们期望的那样,比如姓名中可能存在全角字符,中英文还夹杂着数字
LZ继续答,数据库连接要注意数据库的安全,用堡垒机或者citrics进行连接
【LZ搞不清楚面试官想问我什么】
4. 你们需要写ppt吗?
不需要。作为测试,几乎不用写。写文档倒是比较多。
【LZ也搞不清楚这个问题是想问什么】
5. 你是不是有小孩了?
balabal...
你不是本地的,在本地有房吗?
balabala...
6. 说说你们公司薅羊毛?
LZ应该用资本家就是赚取剩余价值来怼这句话,可惜没有勇气。
薅羊毛,黑产才通常薅我们的羊毛呢?
【面试官愿闻其详的样子】
我讲了一个短信验证码攻击的事件,在我随笔中有分析过验证码的安全性和有效性,【短信的横向轰炸和纵向轰炸】
7. 你简历上PMP证书是什么?
项目管理
考了证书对你的工作有什么用?
没什么用。。【LZ太任性了太2b了】
没什么用?
考之前是这么管理的,考过之后也是这样。【当时的我是怎么了?】
说说你的薪资期望?
balabala
你目前多少?
balabal, 但是我们公司福利很好,每个季度有季度奖金,且一年有一个月的带薪年假,15天的带薪病假,还有出国旅游。公积金缴纳的是12%。每天有不限量的免费水果,还有股票奖励等。
8.有没有什么问题想问我的了?
【该知道的,工作内容,需要的技能我都知道了,接下来也该问hr了】摇头。
就没有什么想问我的?
我心抖,凉凉中。刚刚对于PMP的回答会影响我吗?
面试官看了看,回答道:会。
我惆怅哀思中,想着要不要恳求一个重答的机会。
面试官说,会有影响,也是我自己问题问的不好。
后来二面面试官走了,叫来一面面试官。
没有HR面,一面面试官送我走了,还问我面得怎样,我语气沉重,艰难地说还行。
一面面试官看来觉得没有问题,来问我什么时候能到岗。
学位学历是不是可查的?我说是的。
最后给大家整理了一些项目和面试经验
相关文章:

记录第一次银行测试岗面试【总结几点面试不要犯得错误】
LZ在一个18线小城市做测试,近来想走出自己的舒适区,去做一点不一样的测试工作。 18线地区,测试工作并不多。最好的差不多就是LZ目前待着的公司了。遂决定去魔都闯荡几年,对一个在魔都无房无车无户口的人来讲,这意味着…...

一篇带你精通php
华子目录 什么是phpphp发展史平台支持和数据库支持网站静态网站和动态网站的区别静态网站动态网站的特点 关键名词解析服务器概念IP的概念域名DNS端口 web程序的访问流程静态网站访问流程动态网站访问流程 php标记脚本标记标准标记(常用) php注释 什么是…...
Go 语言函数
文章目录 Go 语言函数1. **函数的定义**:2. **参数和返回值**:3. **函数调用**:4. **多返回值**:5. **匿名函数**:6. **函数作为值**:7. **变参函数**:8. **递归函数**:9. **函数方法…...
前端小技巧: 拍平数组的6种常见方法
关于数组拍平 所谓数组拍平,就是按照顺序,把他们全放在一个数组中需要考虑多层级和嵌套的问题来彻底拍平数组 * 实现方案 1 )一般思路, 先实现一级扁平化,然后递归,直到全部扁平 function flat(arr) {const res […...

c++day6
#include <iostream>using namespace std; class Animal { public:virtual void peform() 0; }; class Monekey:public Animal { public:void peform(){cout << "猴子黑桃A" << endl;} }; class Elepthant:public Animal {void peform(){cout &l…...

LeetCode(1)合并两个有序数组【数组/字符串】【简单】
目录 1.题目2.答案3.提交结果截图 链接: 88. 合并两个有序数组 1.题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合…...

剪贴板管理软件 Paste Wizard mac中文版功能特色
Paste Wizard mac是一款剪贴板管理工具,它可以帮助用户更高效地管理剪贴板中的文本、图片、链接等内容。 Paste Wizard mac特色功能 提供了多种方式来保存和管理剪贴板中的内容。用户可以创建自定义的标签,将内容按照标签进行分类,方便快速查…...

【数据结构】树的基本性质(计算树的总结点数与叶结点数)
树的基本性质 ⭐️计算树的总结点与叶结点数💫性质1💫性质2💫例题1💫例题2 ⭐️计算树的总结点与叶结点数 💫性质1 性质1 树中的结点数等于所有结点的度数之和加1 例如上面这棵树,A的孩子为B、C、D&…...

android手机平板拓展电脑屏幕
有这么两个软件 spacedesk_driver_Win_10_64_v1065_BETA.msi 安装在电脑上 spacedeskv0.91.1_chinese.apk 安装在android设备上 同一个局域网投屏就好了。 局域网无限投屏是很吃带宽的。 建议usb共享网络,不占用带宽、延迟低。 下载地址: https:/…...

接口测试的流程
接口通俗的理解就是不同部分之间的连接通道,可以是程序之内的,也可以是不同程序之间的。一般公司都会要求做接口测试,因为这是测试前移和测试左移的一种方式,会极大的解决bug的成本。 接口测试流程 接口测试的流程一般包括&…...
HMAC 详解:在 Golang 中实现消息认证码
目录 什么是 HMAC HMAC 的主要用途 HMAC 的工作原理 Golang 中的 crypto/hmac 包 如何选择合适的哈希函数和密钥长度 小结 什么是 HMAC HMAC(Hash-based Message Authentication Code)是一种基于 Hash 函数和密钥的消息认证码,由 H.Kr…...

阻塞队列和定时器的使用
阻塞队列 谈到队列,大家就能想到队列的先进先出原则,但有些特殊的队列,虽然也是先进先出的,但是带有阻塞功能,我们把这种队列叫做阻塞队列. ★如果队列为空,执行出队操作就会阻塞,阻塞到另外一个线程往队列里添加元素(队列不为空)为止. ★如果队列满了,执行入队操作时,也会阻…...

JavaScript脚本操作CSS
脚本化CSS就是使用JavaScript脚本操作CSS,配合HTML5、Ajax、jQuery等技术,可以设计出细腻、逼真的页面特效和交互行为,提升用户体验,如网页对象的显示/隐藏、定位、变形、运动等动态样式。 1、CSS脚本化基础 CSS样式有两种形式&…...
Rust4.1 Managing Growing Projects with Packages, Crates, and Modules
Rust学习笔记 Rust编程语言入门教程课程笔记 参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community) Lecture 7: Managing Growing Projects with Packages, Crates, and Modules src/main.rs // s…...
RPA在财务预测和分析中的应用
在现代企业管理中,财务数据分析是决策制定和战略规划的关键环节。大数据的兴起带来财务数据的复杂性和数量不断增加,企业为此消耗了大量人力和物力。随着当今数字化、智能化时代的到来,越来越多企业引进RPA技术来提高工作效率,实现…...

无人机航拍技术基础入门,无人机拍摄的方法与技巧
一、教程描述 买了无人机,可是我不敢飞怎么办?禁飞区越来越多,到底哪儿才能飞?我的无人机跟你一样,为什么我拍不出大片?厂家的说明书看不进去,有没有一套无人机的课程,可以快速上手…...
PTA 哈密尔回路(建图搜索)
题目 著名的“汉密尔顿(Hamilton)回路问题”是要找一个能遍历图中所有顶点的简单回路(即每个顶点只访问 1 次)。本题就要求你判断任一给定的回路是否汉密尔顿回路。 输入格式: 首先第一行给出两个正整数:…...

如何利用产品帮助中心提升用户体验
在当今竞争激烈的市场中,提供优秀的用户体验是吸引和保留客户的关键。而一个高效和易于使用的产品帮助中心,正成为越来越多企业用以提升用户体验的重要工具。产品帮助中心是一个集中的信息库,为用户提供关于产品功能、故障排除、常见问题解答…...

【Python大数据笔记_day05_Hive基础操作】
一.SQL,Hive和MapReduce的关系 用户在hive上编写sql语句,hive把sql语句转化为MapReduce程序去执行 二.Hive架构映射流程 用户接口: 包括CLI、JDBC/ODBC、WebGUI,CLI(command line interface)为shell命令行;Hive中的Thrift服务器允许外部客户端…...

css呼吸效果实现
实现一个图片有规律的大小变化,呈现呼吸效果,怎么用CSS实现这个呼吸效果呢 一.实现 CSS实现动态效果可以使用动画( animation)来属性实现,放大缩小效果可以用transform: scale来实现,在这基础上有了动画,就可以设置一个…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...