- 问:在你之前工作中有什么BUG是让你印象深刻的?
答:略。(建议:准备的BUG最好是能体现出你的逻辑性的,针对BUG运用了哪些措施去定位BUG,比如:看日志/抓包等);
- 问:随便一个手机计算器的用例编写
答:大致从三个方面考虑
- UI界面:看看计算器的UI界面设计是否与需求文档给定的一致;
- 功能:a.计算器上面的按钮是否正常输入且显示正常,且是否有提示音;
b.计算器上的运算规则是否符合四则运算规则;
c.当只输入小数点,再输入数字时,是否会自动补全;
d.当只输入运算符,再输入数字,再选择”=”,是否有运算结果;
e.当输入一个含有多个运算符的等式时,运算策略是否会满足四则运算规则(比如:1+2*3);
f. 当输入计算器的最大字符数时,计算器是否能正常显示;
g.当运算的结果超过计算器最大的显示字符时,计算器是否能正常显示;
h.当输入负数时,显示和运算结果结果是否正常;
i.连续输入多个运算符时,计算器的运算处理逻辑是否正常;
j.当0作为被除数的是否,计算器是否能处理正常;
k.当除法的结果是一个无限循环/不循环的数时,计算器是否能正常显示;
3)非功能:a.从安装卸载:因为计算器是系统自带的,如果要卸载的话需要ROOT,比较麻烦,如果手机获取了ROOT权限,这块也可以测试,但是一般只有非系统自带的软件测试的时候都需要考虑这点;
b.兼容性:这块兼容性的话只能测试同品牌手机;
c.网络:因为计算器和网络无关,所以对于网络来说,这块可以不用考虑;
d.数据库:因为不涉及到数据库,所以这块也不考虑;
e.安全性:因为不涉及到安全性,所以这块也不考虑;
f.交互性:比如在计算数字的时候,界面切换到其他APP上了,等界面再切换回来的时候,原先输入的数字等是否还能正常显示;或者是和手机的电源键/HOME/回车/音量键/菜单键等是否都能保持正常功能;
- 问:公司的项目流程是什么?
答:产品先编写初步的需求文档à进行需求评审后产出确定版的需求文档à开发针对需求文档来编写设计文档à测试人员通过需求文档和设计文档来编写测试用例à测试人员主持用例评审à开发需求功能代码编写完以后进行接口测试à接口测试没问题后发布提测单à测试人员对提测单先进行一轮冒烟测试,目的是看看提测单的代码稳不稳定,不稳定就打回给开发继续编写à稳定后的代码,测试去执行测试用例à有缺陷,分析定位缺陷原因并只给相应的解决人à当缺陷解决后,进行回归测试à回归测试完成,都没问题了,再进行灰度测试à最后再进行项目上线
- 问:如果遇到缺陷,平时都是怎么去工作的?
答:可以通过好几种方法来定位缺陷发生的位置
- 通过看日志的方法,也就是adb logcat命令去获取手机软件的所以日志,然后分析问题出现的位置及原因;
- 通过抓包的方式,我用Charles抓包工具去抓取客户端是否将相应的数据包发送出去,如果在数据包中没有发现应该发送的字段名和字段值,那么就是问题就是出现在客户端;如果在数据包中发现了应该发送的字段名和字段值,但是页面反馈出现错误提示,那么这个缺陷是服务端出现的问题。
- 问:你们在工作中一般用adb命令做什么?
答:主要做日志的抓取以及做软件的压力测试,也就是跑monkey命令;
问:那你们都跑什么样的monkey命令,你给我写一个?
答:给你写一个完整版的monkey命令
第一步:首先要获取你要测试软件的包名 aapt dump badging ****.apk
第二部:通过解析的包名去编写相应的monkey命令
adb shell monkey –p 包名 s 1 –pct-touch 10% -pct-nav 10% -pct-motion 30% -pct-majornav 30% -pct-trackball 20% -ignore-timeouts –ignore-crashes –throttle 300 –v –v 200000
第三步:分别解释了每个字段值所代表的涵义
- 问:如果在项目中遇到了不可控因素,比如:原来项目计划好的测试排期,因为开发的原因导致占用了原来测试的日期,但是为了让项目能够按照正常排期的结束,你会怎么做?
答:首先我会从这几个方面去考虑
a:针对此现象,我会看看是否能够做资源调配,人员上的资源就是将其他组的测试人员临时调配过来,然后让他们去测试一些简单的,没有什么测试逻辑的用例,来support一下我们测试;设备上就是针对我们测试所需要的工具,设备,环境,配置等资源,要优先让我们去使用;
b:第二个就是可能会适当的选择加班来完成
c:第三个如果真的没有办法了,我可能会询问下我的测试负责人,是否可以和项目负责人商量一下这个项目能够适当的延后。
- 操作题:针对给定的计算器app,做测试。
一般就执行你之前对计算器写的测试用例即可。
- 问:你们一般都是用什么工具去做自动化的?
答:主要用appium去跑日常app的主流程测试。
问:那你写过自动化脚本吗?
答:写过一点,我进入这个项目组后,我的测试领导要我去整理软件的主流程,也就是不管我从哪个入口进去,我的最终落地页都是我的商品详情页。所以我就写了所有到商品详情页的流程脚本,期间发现我之前的那个测试人员少写了两个页面,于是我就给补上了。
逻辑题:
1.有无穷的水,给你一个5l杯子和一个6l杯子,问如何量出3l的水?
2.有两个沙漏,第一个沙漏需要4分钟漏完,第二个沙漏需要7分钟漏完,问如何及时9分钟?
项目题:(因为这次我的面试没有过多的问道项目上的东西所以问题比较少)
- 近期做过的项目的流程,简单介绍一下?
- 负责的模块介绍一下?
- 回归测试的策略?
- 项目里人员分配?
- 如果你发现一个bug开发拒绝修复然后上线了问你怎么办?
技术题:
- DNS是什么?
- Linux命令说几个你常用的?
- Selenium定位方式?
- 工作中怎么用的?(我说的复用之前的脚本,我负责维护一下case,然后他就没继续问)
- 代码会么?了解java?说一下数据类型有哪些?
- java数组会么?数组里面都能写什么类型的数据?
- 他写了一个代码。给你一个数组其中里面有两个数相加是等于8,让你写怎么找出那两个数的代码
- java99乘法表
- Fiddler的怎么抓包?
- Jmeter怎么用?
- Jmeter参数化怎么用?
- Jmeter函数库用过么?(这一块他说了一个英文单词然后我不懂,我直接说的不清楚,应为我做的项目中涉及的少,这部分也都是自学,所以如果以后咱们项目有需要的话我会去学习)
- Adb命令会么?说几个常用的
- Monkey命令参数,—p后面跟什么?包名怎么查?
- 怎么定位是前端的问题还是后端的问题?(这个时候说fiddler)
- Fiddler你都会什么操作?
- Fiddler怎么修改响应?
- 微信修改照片功能怎么测?
- 我的回答:按照点线面体的思路去挨个说,点是功能点,分为正常异常影响
线是指从使用场景来考虑,面是手机特有的一些测试点比如易用性,兼容性,效率性,等等,体是接口方面,内部接口,外部接口。
紧接着他又问如果上线之后其中有一个用户说他没有上传成功是什么原因造成的?
回答要从用户本身的问题角度,服务器角度,环境的角度,一一排查,还要考虑是否是合法的图片这点容易比较遗漏
如果确定就是系统的问题的话我们这边后台应该给他发送什么样的提示?
我的回答是建议用户更新手机本身的系统或者更新微信。或者卸载从新下
- 微信朋友圈发送视频怎么测?
这个功能是二面的时候问我的,二面整体交流时间都很少,当他问完我这个问题之后,我按着我的那个思路去说,说到“面“的时候我说了一个题外话。。。(我也不知道我咋想的会说这么一个)题外话就是,我跟面试官讲,其实我昨天自己在家也在尝试性的测试了头条的拍视频功能,我的手机是安卓的系统,在wifi环境下,因为三星手机有一个共能可以让程序悬浮在手机任意界面,所以我打开了手机自带的相机和小程序本身的相机看看会不会有什么不兼容的问题,然后具体形容的了一下操纵过程和我发现的现象,说完这个题外话之后,我回到微信朋友圈这个问题继续回答,然后面试官就让我停了,然后就问我一个思维逻辑题但是这个题跟一面的重复我就直说问过了,然后面说官就停止了继续面试,让我等hr的电话。
小结:简历写的技能点面试都的时候会基本全覆盖到,从简单的到难的都问问,当然难的打不上来也没关系,委婉的说比如项目没用到啊怎么样的,同时表明出你可以学这些,当你不知道的时候你也可以适当的反问面试官,该怎么操作或者代码怎么写,体现出你对新鲜事物很感兴趣很爱学的样子。
然后我也建议一下如果你去头条也好,滴滴也好,你可以提前自己用用那个软件,挑一个功能自己随便操作操作怎么变态怎么来,发现问题更好,没发现的话如果面试中问道类似的你也有个大概印象知道该怎么说。