面试宝典之高分回答面试题(三)

01 你们公司是如何测试支付接口的?

(1)支付流程:正常的发起一笔流量充值请求,检查点:①用户发过去的信息有携带key值②商户系统本地数据会留存一份用户的订单信息,并且会根据每笔订单信息生成一笔支付信息(同时留存到本地)③第三方支付成功,第三方有存支付订单信息 4)充值成功,用户的流量余额有对应增加。异常的去修改用户发过去的信息,商户和第三方的信息,以及第三方与用户之间的信息。
(2)同时也会有测试同步和异步,来查看订单的状态,同步测试的话,我们会直接查看页面显示的订单状态,异步测试的时候,如果出现了错误,我们会使用开发给我们的一个订单异常表来查看这个订单的相关信息,也会调用第三方提供的接口,来查看订单的状态,看成功与否。异步调用的过程我们是不知道的,但是我们会去查数据库表,有一个表t_order_exception,所有的数据都在这个表里,如果异步调用出现了问题,就会记录在这个表里面,只要打开这个表就可以看到问题,使用select * from t_order_exception where 订单号=xxxxxxxxx,如果这个表内没有这个订单号的信息,那么就表示没有问题,如果发生了问题,比如坏账的话,直接交给开发就可以了。
(3)有时候我们也会使用fiddler来做一下篡改数据

02 从你的项目中告诉我,你的接口自动化怎么做的?多接口怎么做?比如有个支付的,你怎么做的?什么情况下做自动化?

● 接口测试怎么做的:第一点,我们开发之前会有开发的接口文档,这就是接口测试的需求说明书,我们拿到以后,第一步我们先什么都不做,先研究这个说明书,有哪些请求,分为post和get,有哪些参数,哪些必填那些非必填,看请求之间的调用关系,上下游之间使用正则表达提取器,上游使用正则提取器使上下游之间联系起来,然后设置公共变量,使之后的请求都方便使用,以及设置合理的断言, 也要研究相应的http状态码,结合项目去讲,
● 多接口:(接口上下游)开发的文档比较乱,我会将接口的模块分出来,然后理清楚需求之间的关系,分清post和get,上下级关系搞清楚,将上游参数顺利传给下游,使用正则表达提取器连接起来。
● 支付接口:正常的接口搞清楚,接口的名字讲清楚,名字自己可以自由发挥,正常的支付讲完,讲一些异常支付的情况,同步在我们这边的接口是会看到的,但是为了保证准确性,再讲一下异步调用,第三方会给我们一个第三方的异步调用接口,我们会查看第三方的支付信息,会看是不是在第三方是否调用成功
● 自动化:自动化测试策略:因为我们回归测试的人力不够,所以会使用自动化测试。举例说自己做的jmeter无界面自动化:jmeter加定时器加交互命令行 。jmeter接口自动化是因为接口稳定,只能证明接口逻辑正确,不能证明页面
● 出去只要有写接口测试,就必须写get,post,上下游传递

03 你是怎么加断言的?(了解有几种断言json断言、响应断言等分别用于什么情况,断言的格式)

首先我们会根据请求的结果树的内容来添加不同的断言,响应断言是直接在测试模拟框输入,返回的响应数据,参数和值,json断言一般使用在响应数据是json格式的时候,或者说响应数据是变动的,都会使用json断言,json断言的格式

04 你们公司后台数据库有几个,数据库之间有什么关系?左连接内连的区别?你的数据库会到什么程度?

左连接是先返回左表的所有行,再加上匹配表共有的内容,使用left jion ,而内连是在查询两表共有的内容,使用的是inner join。

这边我给您举个例子,我之前在做商城统计的时候,会使用group by ,使用时将它不同的货物状态显示出来。

05 你这个电商项目,后台有几个系统。(没听明白,他举了个例子,我答商家管理用户的系统和授权给商家自己登录的系统)

一般有两个数据库,我们会有这些表 用户表 t_user(有注册用户,有内部客服角色), 角色表t_role, 订单表t_order(订单状态,金额)用户表和订单表是一对多的关系

06 你怎么用数据库查商品分页,如果每个页面有20个商品,你怎么查第2页-3页。(说出select语句)

先给商品按时间排序,因为最新收藏在最上面,然后limit10,就是第一页的。select 商品信息,价格,收藏时间,收藏人,* from Collection where 收藏人 =‘name’ order by 收藏时间 desc limit (21,60)

07 如果分页有问题,第二页应该显示10-20,结果显示的是13-23的商品。你怎么解决判断这个问题?(判断前后端的问题)

首先我会在后端查看相关的日志,看是否有对应的记录,如果说没有对应记录,那么就是后端的问题,如果说有对应记录的话,就使用抓包工具来查看前端发给后端的请求,如果说前端发送的请求是否是符合规范的,如果说前端的请求是不符合规范的,那么就是前端的问题,然后就修改前端的请求,再次发送请求,如果说前端的请求是符合规范的,那么就查看响应的内容,如果说响应的内容是正确的,那就是前端的问题,他没有正确的把响应的内容显示出来,如果说响应的内容是不正确的,那么就是后端的问题,后端修改后,重新发送请求。

08 你们公司的测试流程是什么?

我们公司的测试流程是这样的,首先我么从开发那里拿到测试需求说明书,然后充分熟读了解测试需求说明书,再根据测试需求说明书设计测试点,设计完之后,再召开测试点评审会议,参加会议的人,必须包含产品经理,相关的开发人员,以及所有的测试人员,当所有人对测试点的设计意见达到一致时,我们才可以结束测试点的评审会议,每次会议过后,我们再根据评审结果修改测试点,并且把修改后的文件以email的形式,发送给每一位参加会议的人员。接下来,我们再根据测试点编写测试用例,编写测试用例之后,再对测试用例做一个评审,之后就可以开始正式的执行测试用例了,开发人员准时提测,然后我们就开始执行测试用例,当我们执行的时候,如果发现了bug,首先要将bug提交到缺陷管理库中,开发人员修改bug之后,然后我们再对bug做一个验证,验证通过之后,我们就可以关闭bug了,同时我们还需要将开发每次提交的新版本,进行一个冒烟测试和回归测试 ,当整个系统稳定,缺陷通过率达到90%以后,就可以由项目经理来做一个验收测试,验收过后,再进行一个预发环境测试,之后就可以正式上线了,最后,再由我们相关的测试人员编写一个测试总结和测试报告。

09 写数据库语句:一个老师表 一个学生表,(1) 查李老师班的小明(2)并将小明的年纪改成26。

● select t1.* from 学生表 t1 jion 老师表 t2 on t1.班级=t2.班级 where t1.姓名=‘小明’ and t2.姓名=‘李老师’;
● update 学生表 set 年龄=26 where 姓名=‘小明’;

10 Get和post的区别?

(1)请求数据位置不一样。get请求数据在url后边用?隔开,post请求数据在请求正文里边。
(2)于get请求数据在url里,更安全一点。
(3)数据大小限制。get最大不超过2kb,post无限制。
(4)缓存。get请求,会被浏览器缓存。post不会。

11 http和https的区别?

(1)协议名不一样。
(2)默认端口不一样。http的默认端口是80,https的默认端口是443
(3)https更安全一点.。http是明文传输,https是加密传输。
(4)是否需要安装证书。http不需要,https需要。

12 你说你参与过需求评审,请问参与了什么,怎么分析的?

以电商项目为例,当时参与需求评审的时候,有那个支付的测试点,当时大家只想到了支付成功后的返回结果,没有考虑到第三方的数据是否正确,也就是异步调用给忘记了,因为你只是查看返回数据是不正确的,如果说异步调用的时候出现了错误,比如数据发送给第三方的时候被篡改了,即使是当时同步调用成功,但是异步调用的时候出现了错误,导致银行卡扣款失败或者是扣款错误,那也是一个很严重的bug。

13 如果出现了建议性的bug你怎么做?

当然这个bug也是得提交到缺陷管理库的,然后再根据实际情况做修改,去提醒开发

14 现场让你说怎么测得:水杯的测试用例。

(1)功能:能不能装水;能不能喝到;能不能放到桌子上;密封性
(2)兼容:能不能装冰水;能不能装开水;能不能盛其它液体;能不能装固体;是否适合不同人使用
(3)安全:割不割嘴;会不会烫手;材质是否安全
(4)易用:是否便于携带;使用说明是否通俗易懂;是否符合人体工学;是否美观
(5)性能:耐高温;抗摔;抗压;保温

15 如果我有一个在不同手机上出现了问题,后端也修复了,还是出现了不同型号上出现了问题,该怎么解决?

测试APP在不同的机型上由于软件、硬件等不同而出现各种各样的问题,这些都是缺陷聚集的地方,一个页面可能在安卓手机上显示正常,但可能在iPhone手机上显示错位,所以测试中尽量覆盖主流的手机型号和版本,如iPhone系列、三星系列、华为系列、小米系列、oppo系列、vivo系列等,找出在这些主流手机上使用app出现的缺陷并修复。

16

怎么做压力测试的,比如300人的压力测试,咋做的?(暂时未更新)

我们公司是使用jmeter做的压力测试,当时我们弄懂接口测试文档,分清post和get请求,分清哪些必填选项选填项之后,做好接口之间的上下有关系,添加合适的断言等准备工作,就修改了线程组的线程数,然后再添加一个聚合报告就可以执行了

17 性能测试会么?咋做的?

我在我们公司只是用jmeter做了一个简单的压力测试,当时当时我们弄懂接口测试文档,分清post和get请求,分清哪些必填选项选填项之后,做好接口之间的上下有关系,添加合适的断言等准备工作,就修改了线程组的线程数,然后再添加一个聚合报告就可以执行了

18 你怎么确保软件质量的,不听你说这些虚的概念,具体怎么做?

作为一个测试人员,要确保软件的质量,首先就要熟读需求文档,充分了解并达到用户需求,才是我们进行工作的一个最终目的,当然,只是充分了解需求文档是不够的,工欲善其事必先利其器,作为测试人员,我们也要有熟练的掌握测试的技能,要有耐心和细心去发现问题,定位问题,也要有良好的沟通技巧,因为测试过程中涉及要跟产品设计人员确认需求,跟开发人员确认缺陷,帮助开发人员定位问题,所以就需要有效的表述问题,友好的表达疑问,耐心的交流。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值