🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快
先说一下我的情况,某普通本科计算机,之前在深圳那边做了大约半年多少儿编程老师,之后内部平调回长沙这边,回来之后发现有点难,这边可能是业绩难做,虚假承诺很厉害,要给那些家长虚假承诺去骗人家,技术上也没啥提升,工资自然也不会有提升(不说提升了,不降就是幸运的了),后面就辞职了,然后自学一段时间就面华为od(现在这环境,我这情况这样很满足了)。
前期准备
因为之前也带学生打csp,所以对我来说做题不算很难的事情,把华为hj103刷穿了,自己另外刷了一些动态规划的题目。
之后问hr要了机考链接,稍微把之前刷的题过了一遍,找了些真题做了一下,就去考了。也是绝了,考试之前专门和家里面的人打了电话说不要给我打电话,免得影响考试,结果那天晚上社区的人来查什么天然气使用情况,咚咚咚地敲门,给我整得有点紧张。
面试过程
说说题目:
第一题
是一道模拟题,给你一个数字n和接下来的n行字符串,字符串是考勤记录,让你判断哪些记录是异常的。就这么一个题,我不知道是读题有问题还是怎么的,只能过30%多的样例,磨了几十分钟,放弃掉开始做第二第三题。
第二题
第一个字符是R,第二是是BR,第三个是RBBR,第四个是RBBRRBBR.......问你给你一个数字n和一个数字k,表示第n个字符串的第k个字符,这个字符是什么,是B则输出blue,是R则输出red
这是一个典型的dp,但是直接写的话,空间复杂度是2^n,需要用二分优化一下,简单。
第三题
给你一堆数字,问你其中能组成直角三角形的最大组合数,需要用搜索回溯做。
接下来就是性格测试,按照乐观、乐于助人、愿意加班去选就行了,后来性格测试也过了。
结果过了之后hr说这边没hc了,问我去不去西安,我选择了不去。后面又告诉我有一个hc,让我抓紧准备。
一面过了,感觉还是蛮简单的,可能人家面试官知道我是转行的,没有问很深的问题为难我吧。
开始面试,直接发了一道题过来,让我先做。
题目是这样的:
源数组a,将a中所有元素乘以2之后添加进a,则这个a就叫双倍数组,给你一个数组a,判断它是不是双倍数组,如果是则输出源数组,不是则输出空数组。
思路:
接受输入,存入a,拷贝一份存入b,另外开两个数组single,double用于筛选之后的存储,以i遍历b,如果i*2在a中,则从a中弹出i和i*2,并将其分别添加进single和double中。
遍历完成之后,a如果为空,说明所有的元素都被筛选出来了,则a是一个双倍数组,将single输出,否则输出空数组。
需要特别注意的是0的筛选,因为0*2还是0,可以提前写个特判处理下。
做完之后面试官简单看了下,让我说了下思路。然后就是自我介绍,我简单介绍了一下自己写的两个自动化程序,和一个之前带学生参加比赛写的Python程序,面试官看完表示比较满意,说可以和测试工作结合起来,后面问了一个场景题目,延伸问题的时候就提到了我会一点自动化的技能跟测试工作的联系。
问了:你觉得功能测试,按照你的理解,工作内容包括哪些?
说实话,我感觉这个问题对我来说实在太抽象了,就把测试流程答了一遍。然后面试官可能觉得答得不好,但是不想给我太负面的评价,支支吾吾说了个:你这答得确实比较基础
问了:黑盒测试和白盒测试的区别
这个简单,黑盒能看到功能、UI,看不到代码,白盒可以看到代码。
问了:假设我们公司现在开发一个类似于微信的软件1.0版本,现在要你测试这个功能:打开聊天窗口,输入文本,限制字数在200字以内,问你怎么提取测试点。
这个场景题我答的也不算很好,想到了使用等价类划分法进行测试样例的设计,有效等价类就是打开聊天窗口,输入一段200字以内的文本,无效等价类包括打开聊天窗口,输入非文本信息,比如尝试粘贴图片;打开聊天窗口,输入文本信息,字数超过200字;
后来经过面试官提醒,说了需要做兼容性测试,测试在不同系统上,pc和移动端,功能是否正常,还有前置条件要保证网络正常。
然后继续问:你觉得会的自动化技能怎么跟这个测试场景联系起来,怎么做自动化测试。
因为我刚才展示的自动化程序里面有一个就是自动回复微信消息的,跟这个很像,就答了刚才那个程序稍稍改一下就可以用来做这个测试工作,另外需要添加的功能应该是需要读取excel表格中的数据,用于测试。
问了:接口测试的工具你了解哪些
这我也不太知道,就说了一个postman还有jmeter
然后就是反问环节,问我有啥要问的。
我问了,对于软件测试这个岗位而言,我还有哪些需要提升的地方。
如果入职,咱们公司有哪些措施帮助和监督新人成长
随着技术的提升会有调薪吗?
总的来说,做题和展示我的代码的环节我觉得还是表现得不错的,但是后面问的一些跟测试关系比较深的问题答的都不算特别好。
哦对了,还有一个插曲,问了我一个linux命令
问如果想把一个文件移动到另一个文件夹里面去,用什么命令
我张口就来:rm!!!
说完之后,我感觉对方似乎愣了一下
我自己也反应过来,口快说错了,马上纠正说是move,命令是mv
该说不说,面试的小乌龙也太好笑了吧!同时在这里也为各位准备了一份软件测试方面的资料,应该对各位会有帮助!
全网首发-涵盖16个技术栈
- 第一部分,测试理论(测试基础+需求分析+测试模型+测试计划+测试策略+测试案例等等)
- 第二部分,Linux( Linux基础+Linux练习题)
- 第三部分,MySQL(基础知识+查询练习+万年学生表经典面试题汇总+数据库企业真题)
- 第四部分,Web测试
- 第五部分,API测试
- 第六部分,App测试
- 第七部分,管理工具
- 第八部分,Python基础(Python基础+编程题+集合+函数+Python特性等等)
- 第九部分,Selenium相关
- 第十部分,性能测试
- 第十一部分,LordRunner相关
- 第十二部分,计算机网络
- 第十三部分,组成原理
- 第十四部分,数据结构与算法
- 第十五部分,逻辑题
- 第十六部分,人力资源
软件测试基础
- 软件测试的步骤是什么?
- 如何录制测试脚本?
- 应该考虑进行如何测试的测试方法
- 怎样估计测试工作量?
- 测试设计的问题
- 当测试过程发生错误时,有哪几种解决办法?
- 测试执行的问题
- 测试评估的目标
- 如何提高测试?
- C/S模式的优点和缺点
- B/S模式的优点和缺点
- …
Linux
- grep和find的区别? grep 都有哪些用法?
- 查看IP地址?
- 创建和删除一个多级目录?
- 在当前用户家目录中查找haha.txt文件?
- 如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
- 动态查看日志文件?
- 查看系統硬盘空间的命令?
- 查看当前机器listen 的所有端口?
- …
Python编程
- 统计python源代码文件中代码行数,去除注释,空行,进行输出?
- python调用cmd并返回结果?
- 冒泡排序
- 1,2,3,4 这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
- 请用 python 打印出 10000 以内的对称数(对称数特点:数字左右对称,如:1,2,11,121,1221 等)
- 给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数
- 判断 101-200 之间有多少个素数,并输出所有的素数
- 一个输入三角形的函数,输入后输出是否能组成三角形,三角形类型,请用等价类- 划分法设计测试用例
- …
MySQL
- 你用的Mysql是哪个引擎,各引擎之间有什么区别?
- 如何对查询命令进行优化?
- 数据库的优化?
- Sql注入是如何产“生的,如何防止?
- NoSQL和关系数据库的区别?
- MySQL与MongoDB本质之间最基本的差别是什么
- Mysql数据库中怎么实现分页?
- Mysql数据库的操作?
- 优化数据库?提高数据库的性能?
- 什么是数据的完整性?
- …
Web测试
- Web测试和app测试区别?
- WEB测试环境搭建和测试方法
- WEB测试教程
- WEB测试要点及基本方法
- Web测试页面总结
- …
接口测试
- 什么是接口
- 如果模块请求http改为了https,测试方案应该如何制定,修改?
- 常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?
- 描述TCP/IP协议的层次结构,以及每一-层中重要协议
- jmeter,一个接口的响应结果如下:
- 接口产生的垃圾数据如何清理
- 依赖第三方的接口如何处理
- 测试的数据你放在哪?
- 什么是数据驱动,如何参数化?
- …
性能测试
- 你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
- 服务端性能分析都从哪些角度来进行?
- 如何理解压力测试,负裁测试以及性能测试?
- 如何判断是否有内存泄漏及关注的指标?
- 描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)
- 简述什么是值传递,什么是地址传递,两者区别是什么?
- 什么是系统瓶颈?
- …
selenium
- 如何开展自动化测试框架的构建?
- 如何设计自动化测试用例:
- webdriver如何开启和退出一个浏览器?
- 什么是自动化测试框架?
- Selenium是什么,流行的版本有哪些?
- 你如何从命令行启动Selenium RC?
- 在我的机器端口4444不是免费的。我怎样才能使用另一个端口?
- 什么是Selenium Server,它与Selenium Hub有什么不同?
- 你如何从Selenium连接到数据库?
- 你如何验证多个页面上存在的一个对象?
- XPath中使用单斜杠和双斜杠有什么区别?
- 如何编写SeleniumIDE/ RC的用户扩展?
- 如何在页面加载成功后验证元素的存在?
- 你对Selenium Grid有什么了解?它提供了什么功能?
- 如何从你的Java Class启动Selenium服务器?
- Selenium中有哪些验证点?
- 什么是XPath?什么时候应该在Selenium中使用XPath?
…
计算机与网络
- 一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201 …
- 请简述DNS、活动目录、域的概念。
- 10M兆宽带是什么意思?理论下载速度是多少?
- 什么是IP地址?
- OSI七层网络模型的划分?
- TCP和UDP有什么不同?
- HTTP属于哪一层的协议?
- HTTP和HTTPS的区别?
- cookies和session的区别?
- HTTP的get请求和post请求的区别?
- HTTP1.0和HTTP1.1有什么区别
- TCP的连接建立过程,以及断开过程?
- 客户端使用DHCP获取IP的过程?
- 写出某个网段的网络地址和广播地址?
- …
人力资源
- 你的测试职业发展是什么?你自认为做测试的优势在哪里?
- 你找工作时,最重要的考虑因素为何?
- 为什么我们应该录取你?
- 请谈谈你个人的最大特色。
- 一个测试工程师应具备那些素质和技能?
- 还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?
- 为什么选择测试这行?
- 如果我雇用你,你能给部门带来什么贡献?
- …
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!