一个面试题(有兴趣可以查看下)

首先:这篇文章不是我写的,而是波波大佬分享的,我只做记录

技术篇:
知识面覆盖:
1、开发更新了一个存储过程,安排你进行测试,你打算如何开展工作?
--既然是更新,说明原来就有这个存储过程,先去比较原来的存储过程和更新后的存储过程,具体更新了什么内容,评估对原功能的影响。了解清楚以后,再设计用例进行测试验证。
2、数据库增加了读写分离,安排你进行测试,你打算如何开展工作?
--首先读写分离的原理,是区分主库和从库,一般从库负责处理查询的语句,主库负责增删改,并且在修改完数据后会同步数据到从库。先去了解系统采用的读写分离策略是怎样的,哪些表用到了读写分离,然后监控主库和从库,设计案例检查增删查改功能是不是正确调用了主库和从库,另外需要注意主库同步数据到从库的响应时间会不会太长。从库还能作为备用库,作用是当主库挂掉后,能立即切换到从库工作,防止数据丢失,设计用例也应该覆盖把主机停止服务后,能自动切换到从库使用,增删查改功能是否都正常。
(这里需要特别注意一下,当主从数据不一致时应该怎么处理,系统有没有对应的处理手段)

3、网关分发策略更新了,安排你进行测试,你打算如何开展工作?
--先去了解分发策略改成了什么模式的,一般的分发策略有轮询和权重两种方式,还有保持会话的设置,当设置了保持会话后,那么在session不过期的状态下,请求都会分发到同一个网关上,再分发到服务器。根据更新后的分发策略,设计用例进行验证,分发的结果是否符合预期。HTTP协议的话测试工具可以使用一般的接口调试工具fiddler、postman、soapUI等,发生请求后统计数据是否符合预期,还可以使用apache bench、loadrunner、JMeter等性能测试工具进行辅助测试,提高测试效率;
4、接口加密算法升级了,安排你进行测试,你打算如何开展工作?
--首先,加密绝对是为了安全性考虑,先去了解加密算法具体是怎样的,使用的算法,是否能达到安全性方面的要求,如果加密算法比较简单容易伪造,则向开发提出自己的看法和建议。然后根据加密的算法设计案例验证,需要关注当加密的数据被修改后,服务端要能正常拦截。
5、有外部接入了咱们的系统,接口联调交给你负责,你打算如何开展工作?
--了解需求,明确联调的接口是哪些,找开发拿到相关接口文档,如果有加密的数据,需要把加密算法也了解清楚,然后根据接口文档和对方进行数据联调。评估配合测试的周期,联调的过程,特别注意当传参的内容,超出接口文档定义范围后,服务能正常拦截,返回的报文里应当包含传参不合法的具体内容。另外涉及到公司安全性方面的内容要严格保密,不能对外开放。
6、接口使用的是多协议的,你说一下怎么做接口测试?
--先了解清楚具体用到哪些协议,现在接口调试工具也有很多选择了,postman、fiddler、soapUI、包括loadrunner和JMeter都能用来做接口调试。如果使用到的协议里,有现成的工具可以使用的话会使用现成的工具,如果没有,我在了解清楚以后也可以查一下用什么工具可以支撑到这个测试,如果查了资料没有工具可支撑,则会向开发建议,让开发帮忙写个demo支撑这个测试,测试过程中也会优先覆盖测试开发demo的传参字段到后台的时候是不是和接口文档对应上的,避免demo本身存在缺陷的现象。工具问题解决后,多协议的接口测试就和单http协议没区别了。

问题排查:
1、调试接口的时候,发现接口返回404/405/415/500的状态码,说一些这些状态码可能是什么原因导致的?
--常见的http状态,404是URL这个地址不存在,极少数情况看下是这个URL地址需要带特殊的参数才能访问否则返回404的状态;405是请求的method不对,如post和get写反了;415则是接口不支持的媒体类型,一般是content-type不正确导致;500属于服务器内部处理错误返回的,可能是服务端本身有问题,但很多时候都是由于自己在调试接口的时候,传参的body没有符合接口文档导致的处理出错,是需要重点关注的错误。
2、服务器使用了集群,发现在测试过程中,访问一些页面偶尔会返回404,你会怎么定位404是什么原因造成的?
--404,几乎都是资源找不到导致的,因为使用了集群,偶尔只是偶尔返回,说明大部分是能请求到资源的,定位可以直接去检查每台应用服务器,检查所有服务器所有的包是不是一样的。如果发现某个应用服务器的包不一样,则停止其它应用,只保留一台应用服务器,确定这个包有问题。

3、有顾客投诉,说公司的H5页面上,看到了一些外部的贷款的广告。但是我们技术部的同事,都排查了页面说没有投放过外部广告,而且公司内部人员使用过程中也没有看到过外部广告,你认为顾客看到广告是什么原因造成的?
--从现象看,可能是DNS劫持,也可能是http劫持,还有可能是公司页面接入了一些统计服务,请求统计服务器应答的时候嵌入了广告。一方便,让运营人员和客服向顾客解释,这些广告都不是我们公司投放的,请不要点击,这些广告可能是由于ta使用的网络服务劫持被注入了广告导致,我们公司的技术部门已经在处理了。然后尽快定位问题,使用公司外部网络访问,看能否重现,抓包检查页面的广告具体内容是什么,根据经验,DNS劫持和http劫持,都可以通过将协议升级为https的方式杜绝。

加分题:
1、公司是做电商的,顾客访问量越来越大,顾客访问页面的响应时间越来越长,目前定位到原因是由于顾客访问量大的时候,页面上的很多图片、JS、CSS等静态内容占用带宽大,主要瓶颈在服务器带宽上面,你有什么优化的建议?
--因为这些都属于静态资源,可以考虑缓存和压缩机制,当客户端已缓存的内容,在向服务器发送请求的时候,服务器能判断客户端的资源没有更新,可以继续读取本地的内容(返回304),当本地的资源与服务器不一致时,才从服务器中拉取新资源覆盖本地,常见的处理方式是增加时间戳判断资源是否过期;另外访问量确实大的话,还可以考虑使用CDN服务,但是需要花费金钱增加运营开销,看实际情况是否需要使用。
2、你在测试过程中,发现公司的登录接口,传输的是密码明文,你会怎么建议公司提高安全性方面的内容;
--我会根据不同的系统不同的建议。如果是OA这种公司内部人员使用的东西,我觉得直接使用MD5对密码进行一次加密就足够了。如果是给顾客外部人员使用的,我会建议使用再增加一些混合加密算法,如MD5(timestamp+参数+密钥),如果是涉及金融系统,那么对数据安全性要求会更高,除了混合加密,还需要对传参的数据进行严格保护,我会建议将传参的整个body进行加密,如先进行urlencode编码,再进行base64,然后再使用AES、MD5混合加密方式完成,另外还建议使用更安全的https协议。在设置账号密码、支付位密码的接口,也需要增加密码复杂程度增加安全,如登录密码要求至少含有英文+数字,长度必须设置8位以上,涉及到资金的支付密码还必须包含英文大小写和数字,否则不允许设置。另外防止公司数据库泄密造成用户密码泄露,保存的数据库的密码也应该通过加密后存入到数据库,生产环境数据库只允许指定人访问密码表,测试环境的数据库密码全部脱敏处理,降低泄密的风险。
3、现在测试部有20人,目前全部都是功能测试,身为测试主管的你,发现测试部有80%的资源是用在回归测试上,只有20%的工时用在测试新功能上面,你打算怎么优化测试部的工作。
--其实这个是大多数项目的现状,80%的资源在回归功能测试上,只有20%资源测试新功能。首先是人员的合理安排,保证现有任务能满足的前提下,评估能否引入自动化测试,毕竟20人的测试团队已经不是小部门了,然后再根据项目特点,决定引入的自动化测试工具和确定框架。在引入方面,我会优先考虑从团队里抽有自动化测试经验的人来搭建环境,没有则招聘专业的自动化测试人员来担任负责人,环境能跑起来以后,再通过点带面的方式,将工具在测试组里培训开展,提升测试部的技能和办公效率。如果招聘不到的话,我认为身为测试主管,有必要优化测试人员的合理分配,并且自身也有必要去了解一下新技术,给测试部成员一个学习分享晋升的平台,能让测试部更好地为公司提供质量保障。

文章原创地址

一个面试题(有兴趣可以查看下)_第1张图片
image.png

![NLVV8QM3]3NZ)[email protected]](http://upload-images.jianshu.io/upload_images/2228269-62e31c4e7a7d6814.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![WD6FM4R_8GPQ(HCAX7RS)W.jpg

![0B8E3R$81A{%(D%I@%D0~Q.jpg

你可能感兴趣的:(一个面试题(有兴趣可以查看下))