1.介绍下你最近经历的一个项目,详细说下你是怎么测的?
这个算是业务题目中问的最多的一个了,阿里大概三次到四次技术面,这个问题至少会出现两次把。回答这个问题很看个人,一定要突出自己的特色,每个人的测试都有自己侧重点,比如服务端交易、促销、商品或者客户端、性能等等,然后拿自己最了解最擅长的项目先自己仔细回味总结一遍,特别是应该把自己的测试点想全,想深一点。拿自己做个例子,因为最近一年多时间主测服务端交易内容,所以讲了个交易项目,从商品的选择到购物车、结算页、创单、支付流程、售后、回滚流程的测试点,然后再从客户端兼容性、版本兼容性、服务端配置开关的注意点,所以讲的比较全面,这个问题回答的比较让面试者满意。
关键点:
1.提前准备好自己要讲的项目,完善项目的所有测试点,异常点
2.按照条理给面试官讲清楚,并且要表现的自己考虑的很完善
2.你测交易肯定接触过幂等把,说说你的理解,你觉得支付应该靠什么控制幂等?
这个问题面试官没有问的很深,简单说了下自己理解的幂等的概念–幂等概念来自数学,表示N次变换和1次变换的结果是相同的。这里讨论在某些场景下,客户端在调用服务没有达到预期结果时,会进行多次调用,为避免多次重复的调用对服务资源产生副作用,服务提供者会承诺满足幂等。
然后支付是靠交易传递的订单号去做幂等的。
3.组内的测试平台是你负责维护的,用的java ssm框架,那么你讲下spring aop的理解,然后说下你的代码哪里有用到过aop
本人当时回答这个问题的时候是比较虚的,自己对spring aop的了解比较浅,只是单纯的用了这个框架,具体的实现其实一点都没有深究,这也跟自己的职业关系比较大,毕竟测试工作大部分时间都耗费在业务测试上,自己写平台肯定也是以功能实现为目的快速开发。
答:aop理解–自己对aop的理解应该是是一种思想吧,面向切面编程,就是一个业务方法接口或者实现类,只需要执行相关的业务代码,其他公共关注行为就交给切面行为来完成,就比如 日志,运行时间,包括回滚事务等等,这样就可以保证我们代码的维护性,业务代码只写业务,其他公共方法就由自己专门的公共类去维护,我因为写过python,所以觉得这个python的装饰器差不多,允许一个方法的传参。
应用aop方面–自己曾经写过一个aop的方法去计算服务实现类的运行时间,就是在spring的配置文件配置一个<apect>切片,然后调用的是自己时间运行类,然后计算出自己的运行时间。(这个回答大家可以忽略其的专业性,因为自己根本没写过这个,也没有用aop去实现过平台的功能,感觉面试官已经看出自己在瞎掰,就没有再问了)
这个应该是以后必须要深入了解的一个点
4.java的双亲委派机制
完全懵逼,直接说不会。
下面是事后百度的:
某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务时,才自己去加载
优点:
1.可以避免重复加载,耗性能吧
2.优先保证java的核心api的安全吧,比如同名的object类,会优先加载java api的
5.你是如何预防线上问题的
这个问题也是比较重要,出现频率非常大
我自己总结下面几点:
1.灰度机制–客户端和后端都应该有自己的灰度机制,发布前先小部分灰度,可以提前暴露问题,防止扩散
2.发布上线验证过程应该严格按照流程,测试环境验证完后需要上预发再验证一遍,预发验证无误发布上线后,线上还需要立刻回归一遍,并且开发也应该观看监控接口数据,没有异常波动才算正式发布完成
3.后端接口自动化回归脚本保证发布,发布之前的时间肯定是没办法全部回归所有功能,这就需要case覆盖完全的自动化回归脚本,或者单接口验证脚本,或者交易全链路验证脚本完整的验证一遍,保证交易等核心功能正常通过才允许发布
4. 警机制完善,发布后需要完善对应的 警机制,特别是涉及资损相关的,例如交易全链路代码异常 警,创单失败 警,现金券领取或者消费异常或者数据巨大 警等等。另外现金券等最好设置阀值 警,冲话费或者冲Q币等套现交易也应该设置阀值 警
5.流量回放系统,这个我就说了,是阿里内部的一个比较高大上的东西
未完待续
声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!