我最近阅读了大约15份简历,他们都在申请我的团队的测试工程师职位。但是没有一份表达清楚了他是如何进行测试的。
下面我摘录了一些 信息:
几乎所有的应聘者都罗列了成串儿的他们熟悉的“技术”(包括但不限于….Net, Unix, SQL, XML, MS Office)
然后他们又罗列了大堆的看上去都有点过时的测试工具(包括但不限于…TestDirector, LoadRunner, QuickTest Pro, SilkTest, BugZilla)
但是…我根本就不知道他们到底是如何进行测试的。
所有的简历中都罗列着一串串的测试术语和名词…例如,“了解白盒测试、灰盒测试、黑盒测试、压力测试、性能测试、功能测试、集成测试、可用性测试、冒烟测试、回归测试、手工测试、自动化测试以及验收测试。”
每当看到这种调调儿的时候,我就想“好吧,你知道玻璃盒测试吗?那才是我们真正需要的。”
有些应聘者甚至会在简历中写着“我编写过50页的测试报告”,或者“我测试的企业级项目拥有超过1000个用户”。
好吧,那你到底如何进行测试呢?公平起见,这个问题仅仅靠几张简历是很难回答的,另一方面,也许我比较缺乏在这些字里行间挖掘信息的能力,所以我真的很难判断到底应该选择谁来参加面试。但是,如果他的简历中包含如下内容,那很可能会获得我的青睐:
我参与的项目的测试过程如下…
可以访问我的测试博客以进一步了解我对测试的理解…
我最喜欢的测试书籍和博客如下…
我喜欢测试是因为…
唉,我想现代简历可能对于鉴别应试者的能力没什么太大作用。这就能解释为何面试问题如此重要。我为明天的面试准备了一串很好的问题来判断他们是否是很好 的测试者。其中一个是:“如果要你完整的测试后面墙上的那个电灯开关,你要如何做?”
这些所以的问题总和起来,还是对基础掌握的不牢靠,知识框架有漏洞,没有完成闭合,缺少一定的项目经验
通过归纳我总结出了以下的一些点,大家也可以当做复习参考。
其实软件测试岗的面试都是差不多的。常问的这几块知识点,按照其重要程度排序,我认为可以这样排:
理论基础
Linux 基础
MySQL 基础到
Web 测试
接口测试
App 测试
性能测试
下面我按照这个重要性顺序整理出来了一份学习笔记,有需要的可以关注我
领取关 w/x/g/z/h:软件测试小dao
软件测试的目标
发现尽可能多的错误,测试是一个为了寻找错误而运行程序的过程。
一个好的测试案例是指很可能找到迄今为止尚未发现的错误的用例。
一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
软件都有多少种分类?
根据功能的不同,电脑软件可以粗略地分成四个层次:
最贴近电脑硬件的是一些小巧的软件。它们实现一些最基本的功能,通常“固化”在只读存储器芯片中,因此称为固件。
系统软件包括操作系统和编译器软件等。系统软件和硬件一起提供一个“平台”。它们管理和优化电脑硬件资源的使用。
支持软件。包括图形用户界面、软件开发工具、软件评测工具、数据库管理系统、中间件等。
应用软件种类最多,包括办公软件、电子商务软件、通信软件、行业软件,游戏软件等等。
在 Linux 系统中,一个文件的访问权限是 755
755 表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。
如何查看一个文件的末尾 50 行?
查看/etc/profile 的前 10 行内容,应该是: # head -n 10 /etc/profile
查看/etc/profile 的最后 50 行内容,应该是: # tail -n 50 /etc/profile
什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
什么是关系型数据库,主键,外键,索引分别是什么?
关系型数据库是由多张能互相联接的二维行列表格组成的数据库
主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录
外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键
的表被称为主表的从表。外键又称作外关键字
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,
它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单
nginx,tomcat,apache 都是什么?
Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。
Apache HTTP Server 是一个模块化的服务器,源于 NCSAhttpd 服务器
Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,是开发和调试 JSP 程序的首选。
什么是接口
接口是指外部系统与系统之间以及内部各子系统之间的交互点。
包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口。
如果模块请求 http 改为了 https ,测试方案应该如何制定,修改?
分别用 http 还有 https 登录试试。如果用 https 可以正常登录,地址栏显示一把锁头,那么这个网站是有部署 SSL 的。如果 http 和 https 都能够正常登录,进一步说明该网站没有设置强制 https 登录,或者说没有设置 http 链接自动跳转 https 链接;相反如果用 http 登录,结果跳转到 https 页面,说明网站部署了 SSL, 而且设置了 http 自动跳转 https。
什么是 Android 四大组件?
Android 的四大组件包括:Activity、Service、BroadcasReceiver、ContentProvider
很多问题都忘记了,印象最深的就是下面几个问题:
根据你的工作经历,说说你对质量保证的理解?
非关系型数据库和关系型数据库的区别,谈谈他们的优势?
在自动化方面有什么成熟的方案,有没有做过二次开发?
质量部如果需要定制化一个质量体系平台,你会考虑哪些问题?
答案我也给大家整理出来了:
1.根据你的工作经历,说说你对质量保证的理解?
这是个综合性基础知识问题,考验你在测试行业工作几年后的心得,是否有测试思维,明确自己的定位。可以谈谈你认为如何做好测试?如何衡量质量?你又如何专注软件质量提升,帮助团队快速迭代高质量交付
2.非关系型数据库和关系型数据库的区别,谈谈他们的优势?
数据库在测试工作中的重要性相信我就不用在这赘述了,需要你对常见的关系型数据库和非关系型数据库的原理理解,而且总结出它们之前的区别
3.在自动化方面有什么成熟的方案,有没有做过二次开发?
测试工程师离不开一个关键字,“自动化”,在任何类型的项目或多或少会用到自动化测试技术。关于前后端自动化技术,是否有一套完整的测试框架,技术体系。在开源自动化测试框架的理解上,有一定的开发思维,能进行封装,开源框架上二次开发。能根据项目灵活打造适合团队的测试框架,是测试工程师的能力分水岭
4.质量部如果需要定制化一个质量体系平台,你会考虑哪些问题?
说实话,面试官这么问测试平台的问题,你可能就扛不住了。干过测试开发的应该都知道,测试平台的构造,除了技术难点。你要考虑如何去推进这个工作?测试平台研发出来后,在整个测试部门推广运营这个平台是大难题。在功能测试人员的角度来想,去使用不成熟的测试平台来测试,如果加大你的工作量,对你自身工作和技术没有什么太大价值,一般都不是非常积极的去配合,测试平台如何推广运营是个难题。你要让所有人亲身感受到用与不用这个测试平台有什么区别。
码字不易,希望大家点赞支持一下。