本系列旨在帮助大家面试测开/自动化职位时拿到更高打分。
问题均由学员/粉丝提供的真实面试记录,帮大家解答,我义不容辞,但有些问题如果回答的不够仔细和正确,也希望大家能客观的指出改正,轻点黑我。
已征得记录者放到公众号的同意,问题和答案我会脱敏,不会泄露当事人信息
。
本号公开的问题为出现概率较高的最难回答的发散性问题,想见识更多测开面试题?想寻求标准答案?
开始正文...
1.ui自动化元素封装的平衡点在哪里?过度封装,维护起来很麻烦。不封装的话,会有很多冗余。
首先,并没有完全通用适用于所有公司的封装平衡点,所以平衡点要靠业务的实践来不断优化,这个过程中,建立一条完善的反馈通道是很重要的。
而在一开始,我们可以先以页面/环境/渠道(选其一)进行分类。然后内部的元素进行封装。之后在脚本中,一个元素的调用是两层封装。在反馈的过程中,如果某些端的业务要求实在是需要再加入其他封装角度,那么就视情况增加一层,比如app在不同渠道包的元素属性不完全相同的情况,即渠道+页面+元素三层封装。
2.如果说后端,给你返回了一个非常复杂的json,数据非常庞大,你希望将这个json中的所有value提取出来,你要怎么做?
如果是普通的json,我们在python中直接json.loads()转变为字典,然后再对字典直接.keys()或.values()即可。但是题目要求是非常庞大和复杂的数据,所以这种普通方法显然会很慢。
可以考虑使用fastJson库,速度会提升很多倍。具体原理是把json转变为java对象再解析。
3.安卓的应用通常会有很多混合应用,页面中有原生和h5,你怎么做自动化呢?
如果混合比例不确定,建议使用airtes,airtest是网易研发的一款自动化工具,既有webdriver定位方式,也可以使用图形相似度来定位和断言一些h5等其他混合元素。
4.你一共写过多少case用例?
对于一个测试而言,写用例是最基本的工作。哪怕你已经是顶级测开,就算自测自己研发的平台,用例也依然不会少。
当然,面试官这么问你,你也很难给出一个确定的数字。就算蒙了一个假的,相信面试官也不会在意。所以面试官这么问,估计是想考察你是否具备一定的推理和评估能力。而你的回答就不能是张口就来的数字或者数量级,而是要给面试官一个准确的推理过程。
比如可以回答:我之前从事了xx项目,这个项目我负责了几个模块,每个模块大概几百个测试点,按照黑盒用例的测试方法,每个测试点大概有多少个用例....功能/性能/安全/非功能等等依次说个差不多,最终给出一个大概数字,而此时这个数字已经不重要了。
当然还有一种可能,就是面试官sb,问这种小瞧人的问题。可能真的只是想看看你会不会傻乎乎的说自己写过几十条 几百条这么少吧。