软件测试面试小结
概述
2017.3.24-2017.4.14,20天左右的时间,作为一个测试,面试了几家公司,拿到了几个offer。小记留后翻阅。
面试官问到的问题
测试用例设计/测试流程
测试用例设计,面试官基本会给出一个场景,例如:一个登录注册页面;一个结算购物车商品的操作;一个ATM机;聊天窗口发送图片的动作;页面右键点击弹出一个弹窗的操作等等,要求设计出你的测试case,正常情况,测试case都要基于需求文档去设计,没有需求文档就没有标准准备的case也是没有意义的;面试题多是依据大多数人都理解熟知的功能去给一个测试场景所以大多可以抛开需求依据常识去设计case。这类问题我觉得可以大概分两个方面去考虑就基本可以回答好。
- 功能方面;思考这些场景的开始、执行、结束的每一步操作,涉及哪些内容,每一块内容操作等等依据设计case的方法(等价类、边界值等)去梳理。
- 性能、接口、安全、异常情况、网络环境、适配方面;无网/弱网/2G/3G/4G情况下,接口的处理情况以及接口返回内容对页面/端产生的影响,多终端、多浏览器、多种环境的影响情况。
测试流程:测试人员参与到产品的一个迭代过程,需求开始至结束测试要全程跟进,需求分析/评审->开发方案->测试用例设计/评审>需求变更/评审>开发调整开发方案~>修改测试用例->执行测试->提交bug/bug状态处理->测试完成/测试报告->发布->验证
考察测试人员的基本测试理论的掌握情况、测试方法、逻辑的清晰度。
自动化
面试官大多会依据求职的工作经历询问之前的项目工作内容来判断你是否做过这些内容,做到什么样的一个程度等等。
接口自动化是怎么做的?用的什么语言?用的哪些框架?接口测试过程中注重哪些点?UI自动化web的用的什么?移动端的用的什么?你用的工具的原理了解吗?用过多种工具他们的区别是什么?你在做这些工作的时候遇到过哪些比较难解决的事情最后是怎么解决的?最终的效果怎么样?给一个新的场景要你开展自动化你要怎么着手?怎么设计?结果怎么生成报告?怎么及时通知相关人员?如果出错了怎么及时定位原因?怎么实现CI?自动化的意义?你个人的见解?
Linux命令
举例:
- find / -name file.txt 查找/目录下的file.txt文件
- find . -name file.txt 查找所有的file.txt文件
- find . -name "*.txt" | xargs grep "Hello World" 递归查询文件内容中包含Hello World的txt文件
- netstat -tln | grep 8080 查找端口为8080的使用情况
- lsof -i :8080 查看8080端口属于哪个程序
- ps –ef | grep android 查看所有android相关进程
- cp -r sourceFolder targetFolder 拷贝文件夹所有文件
- chmod 777 修改文件权限
- tar -cvf jpg.tar *.jpg 将目录里所有jpg文件打包成tar
- tar -xzvf tar.gz //解压tar.gz
- head -n 10 example.txt 查看文件前十行内容
- tail -n 10 example.txt 查看文件后十行内容
- tail -f exmaple.log 自动显示新增内容
- less exmaple.log
- scp local_file remote_username@remote_ip:remote_folder 把本地文件复制到远程
- scp -r root@123.1.1.1:/home/root/others/1.txt 把远程文件复制到本地
数据库操作
oracle/MySQL 基本增删改查 多表操作
算法
一个字符串如何倒序输出(多种方法)
依次从高位到低位输出一个整型数据的每一位上的数字
判断字符串str1中包含几个str2输入起始位置
读一个文本文件,替换文件中所有内容".txt"为".json"
其他(记录遇到的问题)
- Python 元组的特性
- 插桩
- github 提交冲突怎么解决
- android 四大组件,activity生命周期,
- 出现OOM如何处理
- 抓包工具Charles、flidder的使用
- http工作原理,与https的区别
- 正则表达式校验邮箱、手机号
- 职业发展规划等
总结
总共就面试了五六家公司接触面较狭窄,聊得来最好,不投缘不要灰心,找工作有很大的运气成分在的。