• <sup id="mk476"></sup>
    <dl id="mk476"></dl>
  • <progress id="mk476"><tr id="mk476"></tr></progress>
    <div id="mk476"><tr id="mk476"></tr></div>
    <sup id="mk476"><ins id="mk476"></ins></sup>
  • <progress id="mk476"></progress>
    <div id="mk476"></div>
    <div id="mk476"><tr id="mk476"></tr></div>
  • <div id="mk476"></div>
    <dl id="mk476"><s id="mk476"></s></dl><dl id="mk476"></dl><div id="mk476"></div>
  • <div id="mk476"></div>
    <dl id="mk476"><ins id="mk476"></ins></dl>

    【测试工程师面试】 记录XX银行面试

    LZ在一个18线小城市做测试,近来想走出自己的舒适区,去做一点不一样的测试工作。

    18线地区,测试工作并不多。最好的差不多就是LZ目前待着的公司了。遂决定去魔都闯荡几年,对一个在魔都无房无车无户口的人来讲,这意味着很累,然人无远虑必有近忧。即使有一天你的城市通地铁和高铁了,来了一群优质的互联网公司,?#39029;?#20102;离得近,有配得上的技能嘛。


    XX银行面试
    年前在BOSS直聘上投递的简历,年后约面试。我要求先电话面试一轮再去。【这里说一下有的公司招人职位要求和面试要求完全不一致,毕竟魔都里的?#34892;?#36828;,不想浪费一次年假和自己的无奈,去验证他们的jd和面试内容。】电话里了解到他们想招Java能力好一些的测试人员,以后的工作内容是自动化测试,并且开发一些测试平台和加密解密系统。是我?#34892;?#36259;的部分...不敢十拿九稳,但想试一下。于是就约了周一10点面试。

    一面
    提前一个小时到,问了问hr是否方便过去,HR让我直接上去。我就拖着?#20154;?#34955;,开心地乘电梯去了10楼。
    HR将我领到会议室,填了个人信息表,调查表,一会儿之后来了一个高个子瘦瘦的面试官。

    1. 用JAVA怎么读取文件中的内容?
    Property p = new Property;
    读取输入流获取的内容
    那要是多个文件,也用这个读吗?
    LZ基础太薄弱,想不出别的方法。
    你有没有想到这种读文件方式的弊端?
    LZ一脸茫然。。。【心更凉,白来了么,亏我5点多就乘着大巴冒着雨赶过来,这种面试题完全没遇到过,工作中亦未遇到过。】

     

    更新于20190302:

    package com.example.utils;
    
    import java.io.*;
    
    public class ReadFile {
    
        public static String readToString(String fileName) {
            String encoding = "UTF-8";
            File file = new File(fileName);
            Long filelength = file.length();
            System.out.println(filelength);
            byte[] filecontent = new byte[filelength.intValue()];
            try {
                FileInputStream in = new FileInputStream(file);
                in.read(filecontent);
                in.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                return new String(filecontent, encoding);
            } catch (UnsupportedEncodingException e) {
                System.err.println("The OS does not support " + encoding);
                e.printStackTrace();
                return null;
            }
        }
    
    
        public static void BufferedReaderFile(String filename) throws IOException {
            FileReader fileReader=new FileReader(filename);
            BufferedReader in = new BufferedReader(fileReader);
            String str;
            int a=0;
            while ((str = in.readLine()) != null) {
                a+=1;
                System.out.println("the " + a);
                System.out.println(str);
                }
    
        }
    
        public static void inputStreamFile(String filename) throws IOException {
            InputStream inputStream = new FileInputStream(filename);
    /*
            int a = inputStream.read();
            String s=inputStream.toString();
            System.out.println(a);
            System.out.println(s);
    */
    
            byte[] b = new byte[200];//把所有的数据读取到这个字节当中
            //声明一个int存储每?#21619;?#21462;到的数据
            int i = 0;
            //定义一个记录索引的变量
            int index = 0;
            //循环读取每个数据
            while((i=inputStream.read())!=-1){//把读取的数据放到i中
                b[index]=(byte) i;
                index++;
            }
            //把字节数组转成字符串
            System.out.println(new String(b));
            //关闭流
            inputStream.close();
            }
    
    
        public static void main(String[] args) throws IOException {
            //表示磁盘路径的两?#30452;?#31034;方式:1、\\   2、/
            String filecontent = readToString("aaa.txt");
            System.out.println(filecontent);
    
    
            System.out.println("========我?#37096;?#22987;读文件啦================");
            BufferedReaderFile("aaa.txt");
    
    
            System.out.println("========int是个什么鬼================");
            inputStreamFile("aaa.txt");
        }
    
    }
    

     

      

     

    2.设计模式了解吗?
    饱汉模式,饿汉模式,工厂模式,spring mvc模式
    不对。饱汉模式,饿汉模式不是设计模式,是单例模式中的。
    哦,是的,我记错了。
    设计模式一共有22种左右。
    嗯嗯。
    你?#20013;?#20010;单例模式可以吗?
    拿着笔,在自己刚填内容背面,?#20013;?#30528;,心中记着单例模式重点?#20852;?#26377;什么来着,
    private class a{}
    又想着单例模式中饱汉饿汉的区别,哪一?#32844;?#20840;,还没写完,面试官就说:"我一看你写的就知道你写错了"
    没关系,?#34892;?#24320;发也不知道。只要你愿意学,我就可以教你。
    【这是我听到的能让我坚持?#24405;?#32493;面试的话】
    【面试官】我想招个开发能力强的人,我没空去写?#28909;?#21152;密解密的代码,需要别人来写完。框架我都搭好了。

    更新于20190302

     

     

    3.说?#30340;?#20204;的测试流程
    我们,巴拉巴拉,接到需求后,会有一个需求文档,通过邮件的?#38382;?#21457;给整个项目组,包括PM,开发,测试和支持。并约定一个接下来的时间,进行启动大会kick off meeting
    每个人对需求文档,提出自己的问题,?#28909;?#19982;以往的需求,是否有冲突的地方。
    ?#28909;?#38656;求实现的方式,是通过接口,还是存储过程,是通过用mq同步数据的方式,还是代码中跨数据库,那是否同一个操作要实现跨数据库的事务等?#21462;?/span>
    然后带着这些问题,参加启动大会,项目中的每个人提出来,最后总结具体实现的方式,覆盖的范围。
    假设是接口的话,会详细到接口的字段,字段长度,必填性,字符类型等等,这边主要是测试和开发,会在会议上定好哪些代码中一定要校验,很多情况下,不定的细致,接口校验会漏掉,觉得页面UI已经有了。
    会议结束后,开发人员会将接口文档发给项目中的每个人。这个时候测试人员,要检查接口文档,检查字符长度是否和DB中长度,是否有超过DB中长度;检查异常中返回值和信息是否正确。检查最终数据流相关的字段是否准确。
    检查正常的有复杂逻辑关系的,逻辑顺序是否正确。
    不正确,提出,正确,回复邮件。之后,测试人员,编写测试用例,发给项目中的人员进行评审。
    之后,编写case并构造入?#38382;?#25454;,断言,DB中检验,等?#21462;?/span>
    等开发提交代码后,进行测试,有bug则提bug,之后再对全部case回归测试。balabala。。。

    4. 我们这儿有个接口,有158个入参,其中有100个入参。对100个入参必填做校验。
    比我们接口中?#38382;?#35201;多很多,目前我们有脚本,对少数的入参,只能填写变量名,长度,断言就可以一次性走完异常测试场景。
    你们100个入参,?#34892;?#22810;,需要根据接口文档动态生成测试脚本,包括测试用例描述,测试数据,测试结构断言。
    【面试官】我的想法是100个必填入参,用java代码,?#26469;?#21028;断,就是100个循环,单独测任何一个入参的必填;在随机个数的?#38382;?#19981;填,验证必填?#38382;?#30340;异常。
    我目前在开发测试平台,创建一个对象,包含变量名称,必填性,字符类型,字符长度,范围?#28909;?#26159;int型有的referrence表传过来的只能1-10,一个接口中的入参,将是一个list,list中每个对象,根据
    必填这个属性,生成一个list。
    list中?#26469;?#36941;历,每次少一个对象变量名称,那测试用例?#26469;?#29983;成未传入某某变量,测试数据,其他的变量和值?#26469;?#25340;接起来,map方式,map的key是字段名,value是自动生成的值,value需要在符合的长度内,值的范围也必须在。
    代码都能实现。一般一个项目的请求体的格式一致的,?#28909;?#29616;在常用的json格式,拼接一下key value,前后大括号,等等,最终测试数据也生成。
    断言部分同理,可生成。
    这个平台我在构?#24049;?#24320;始设计表结构,实现方式,还?#38383;?#21151;。关于你说的再随意若干个字段不传,我一般不会有这个样的case。原因是,java代码?#20449;卸先?#21442;不传,有?#32676;?#39034;序,你这个随机不传,断言要怎么?#30784;?/span>
    还是你们所有的必传入参不全,返回信息是同样的?
    【面试官开始对我有好转了】

    5. 说到我上面的接口测试用例自动生成平台,我的?#25151;?#22987;在做。索性趁热打铁,我说了下我已经完成了项目
    我自己用springboot写了一个mini的bug管理平台,都增加了些什么功能呢? 登录授权后,查看这个项目下,各个测试类型的bug。并且是基于我们公司的情况,
    ?#28909;?#27599;次任务需要一个CR,没有CR是不做的,CR下来了我们公司还需要有任务编号,等?#21462;K导?#21333;了是CRUD,说到CRUD,数据处理层使用JDBCTemplate实现的,页面用的Thymeleaf模板引擎。
    还加了定时,根据bug中的更新时间,每15分钟将更新时间距离当前时间小于等于15分钟的bug信息,逐条发送给测试人员和开发人员。
    这个和JIRA、bugtracker等不同,是个定时任务用来发邮件。
    系统出来了之后,要一下子录入原来的bug,一条一条很不方便,我创建了一个jmx脚本,其实就是一个简单的请求,以往测试人员会将测试用例,以excel大多这样的?#38382;?#20445;存在本地,脚本中只要填写项目id等信息,可通过类似?#38405;?#27979;试的方式,一次导入所有的bug,丰富bug系统,将以往工作中的bug全部呈现在一个平台上了。

    这之后?#30452;?#20889;了测试用例管理平台,差不多的原理,这个时候数据处理改成了mybatis,因为涉及的表更多了,用mybaits方便。我们测试的内容有接口,有UI,有存储过程,测试用例格式不太一致,所有测试任务一张表,然后之后具体的测试用例是根据测试类型,?#30452;?#26032;增到对应的3张表。
    balabala。。。后来也给大家提供了Jmeter创建的脚本,配置好项目名称等信息后,可一次性导入以往保留在本地的所有测试用例。

    6. springboot中mysql是自带的,很方便?
    不是。
    mysql是自带的?
    不是,需要引入mysql驱动jar包依赖的。况且我开发的时候,本地连接的是mysql,后来导成jar包,不能用我本地数据库,我们公司用的sqlserver
    我尽量保证sql一致性,分页部分无法一致,就改一两行代码。

    7. 有没有bug?
    ?#23567;!竟?#21704;哈】
    什么bug?
    小bug。bug邮件提醒部分,我们公司的邮箱是outlook,outlook是什么公司,微软,打开后bug信息的具体描述,本来是textarea格式,应当是分行显示的,但是没有分行。
    然后你用手机打开,手机一般是?#36824;?#21644;安卓嘛,邮箱中打开是没有问题的。
    这个也不能算bug。模板引擎不能保持兼容所有的浏览器,很多UI方便的东西,开始抛弃IE,抛弃微软了
    对对对。
    有别的bug吗?
    有,我自己知道,使用者暂时还不知道,我就暂未改。
    什么bug?
    额,?#28909;紓?#23637;示所有bug页面,既有多重查询后,显示符合条件的bug,bug页面最右下角有分页。
    因为我分页用的是get请求方法,而多重查询用的是POST请求方法,目前在不输如任何查询条件的情况下,分页功能完全OK
    输入查询条件,不管一个或者多个,第一个ok,接下来查的是所有bug,不再有查询条件的限?#35780;病!?#21621;呵】
    为什么没被发现?
    bug倒序显示,其次是查询条件限制后,查出来bug较少。所有一般不被发现。查询条件嘛,为?#21496;?#20934;查询。

    8. 我们这边的人员分配是xx个外包,其他是JF,只有一个人是行编制,当然这个人不是我。
    你如果进来,是JF,和我一样,待遇上和行编制差不多,比外包要好一些。

    9. 你们冒烟测试怎么个流程?
    额,?#28909;?#25509;口测试,冒烟测试是?#25913;?#25324;原来的所有的功能都要正常?#22253;桑?#39069;,我们的开发将代码提交到git上,通过Jenkins自动部署到服务器上的指定的中间件之后,重启中间件,热部署有时候总有问题。
    中间件重启之后,自动运行编写好的自动化测试用例,用例包含正确的断言验证,DB数据验证,异常场景的断言验证,之后会发出一封测试报告。测试报告全?#23458;?#36807;,则表明OK;
    【面试官】呵呵,据我了解,冒烟测试是针对修改项或者新增的功能所做的测试?
    哦,那开发会有自测并子自测成功后,将转测邮件发出,转测邮件上写着xx验证什么ok。
    但是,如果开发转测的功能,本次涉及到的自测了没问题,但是影响到了以往的接口,我依然不会开始测试的。我的自动化测试脚本在呢。
    【面试官】呵呵。

    还没轮到LZ提问,面试官说我去喊我领到来,走的时候顺便说?#21496;洌?#20320;在我这边是OK的,没问题的。
    ?#39029;?#24691;说?#21496;?#35874;谢。

     

     

     

    二面
    一会儿进来了二面面试官。
    1. 刚刚一面面了多?#33579;?/span>
    LZ看了下手机,40分钟。
    你们都面了什么?
    LZ开口就说,想到什么说什么。说得比较混乱。
    那你们面的什么呢?
    LZ总结了下,JAVA,测试流程,做过的项目
    面试官终于?#26102;?#30340;了。

    2. 自我介绍一下吧
    balabala。。。
    为什么要转岗到测试?
    巴拉巴拉,无非是离境数据管理条例,balabala
    你们是营销型公司?
    balabala。。。。主要是通过。。。。
    薅羊毛?
    LZ一脸茫然。。后来才反应过来面试官是觉得我们公司是个薅羊毛公司。替知名企业各个行业的Top10做精准数据营销。

    3. 说一说测试人员对数据库的认识?
    LZ听不懂。。。
    面试官?#27425;?/span>
    LZ答 要有数据库读的权限,产品一旦上线很长时间,每次修?#27169;珼B中数据会有一些不是我们期望的那样,?#28909;?#22995;名中可能存在全角字符,中英文还?#24615;?#30528;数字
    LZ继续答,数据库连接要注意数据库的安全,用堡垒机或者citrics进行连接
    【LZ搞不清楚面试官想问我什么】

    4. 你们需要写ppt吗?
    不需要。作为测试,几乎不用?#30784;?#20889;文档倒是比较多。
    【LZ也搞不清楚这个问题是想?#36866;?#20040;】

    5. 你是不是?#34892;?#23401;了?
    balabal...
    你不是本地的,在本地有房吗?
    balabala...


    6. 说?#30340;?#20204;公司薅羊毛?
    LZ应该用?#26102;?#23478;就是赚取剩余价值来怼这句话,?#19978;?#27809;有勇气。
    薅羊毛,黑产才通常薅我们的羊毛呢?
    【面试官愿闻其详的样子】
    我讲了一个短信验证码攻击的?#24405;?#22312;我随笔中有分析过验证码的安全性和?#34892;?#24615;,?#24452;?#20449;的横向轰炸和纵向轰炸】连接http://www.tdhy.tw/qianjinyan/p/9559003.html


    7. 你简历上PMP证书是什么?
    项目管理
    考了证书对你的工作有什么用?
    没什么用。。【LZ太任性了太2b了】
    没什么用?
    考之前是这么管理的,考过之后也是这样。【?#31508;?#30340;我是怎么了?】

    说?#30340;?#30340;薪资期望?

    balabala

    你目前多少?

    balabal, 但是我们公司福利很好,每个?#24452;?#26377;?#24452;?#22870;金,且一年有一个月的带薪年假,15天的带?#35762;?#20551;,还有出国旅游。公积金缴纳的是12%。每天有不限量的免费水果,还有股票奖励?#21462;?/strong>


    8.有没有什?#27425;?#39064;想问我的了?
    【该知道的,工作内容,需要的技能我都知道了,接下来也该问hr了?#24691;?#22836;。
    就没有什么想问我的?
    我心抖,凉凉?#23567;?#21018;刚对于PMP的回答会影响我吗?
    面试官看了看,回答道:会。
    我惆怅哀思中,想着要不要恳求一个重答的机会。
    面试官说,会有影响,也是我自己问题问的不好。

     

    后来二面面试官走了,叫来一面面试官。
    没有HR面,一面面试官送我走了,还问我面得怎样,我语气沉重,艰难地说还行。
    一面面试官看来觉得没有问题,来问我什么时候能到岗。
    学位学历是不是可查的?我说是的。

     

     

    后来我就撑着伞,离开了,周一面的,周五也没有收到任何通知。凉凉。

     

     

     

     

    posted @ 2019-02-24 00:36 夏天里的Jasmine 阅读(...) 评论(...) 编辑 收藏
    江苏11选5软件