前来分享自己于职场多年来面试过的经验,以下问题是根据我个人的经验以及收集整理的:
必问第一问:自我介绍
心理学首因效应告诉我们第一印象非常重要。
自我介绍最重要的是能够在 面试官心目中留下一个好的第一感觉。说得更直白一点是让面试官舒服。但是我发现很多人就是直接简单的介绍了一下过去的经历,但是实际上一方面过去的经历没有很好的让人发现优点。其实面试好比相亲,你想说什么不重要,重要地是人家想听什么。比较好的自我介绍套路是这样:“您好,我叫XXX,很高兴能获得这次面试机会,今天来面试是想证明自己是最合适的人选,另一个方面是获得您的认可,结合我过去的 工作和 学习经历,我自信我能符合咱们公司的认可,接下来您看是我继续介绍我做过的项目,还是您问您关心的问题?”
必问:项目介绍
项目经验直接决定一个人能否胜任一份工作。
企业更应该看重一个人解决问题的思路和具体能力,项目介绍部分最重要的思路是应该先整体后局部,介绍整体的时候要有量化的数据(从项目度量的五大维度:规模,包括项目代码规模,需求规模、用例规模,工作量,进度,质量和成本),然后是整体的 测试流程,然后再是角色与职责,接下来是项目中自己的特色,比如做得最好的是、遇到最大的困难时、最差的是,最后是心得体会。
数据库
数据库方面知识: 最基本的要求是数据库记录的增删改查(insert、delete、update、select),表结构的增删改查(create、drop、alter、describe)、存储过程、触发器等。
linux操作系统
最基本的目标是熟悉常见的50个命令,比如find命令(-name、-type、-perm、-user、-group、-ctime、-atime)等,熟悉vi、熟悉linux搭建测试环境。比如LAMP环境搭建。
缺陷
缺陷相关知识,最基本的是缺陷跟踪的流程(流程的基本要素),整体的流程,最好能在纸上给面试官画出来(尤其是男面试官,从男人好色的角度来看,写得很清楚很重要),缺陷单的属性,至少能列出20个属性,每个属性的意义,如何描述好缺陷单,缺陷单描述的5C原则,比如缺陷重现步骤应该complete。如何描述一个你认为的最经典的bug单。
测试用例
最基本的包括用例的格式要素, 用例设计工程方法论,每个方法要求(方法的背景,操作步骤,优缺点、适应范围,与其他用例方法如何配合),在项目中如何利用 测试用例设计工程方法。如何评价、评审测试用例,评审从哪些维度?要设计好测试用例需要哪些方面的知识结构,比如技术、业务、方法。
软件测试流程
系统测试相关规范和标准的流程:熟悉产品/项目,需求评审,测试需求,测试计划,测试方案,测试用例,预测试,第一轮正式测试、第二轮回归测试、第三轮测试,测试报告,测试总结,测试指南。
网络相关,最基本的网络基础知识,比如TCP/IP协议。
测试工具,包括三个大的类型,第一类是 性能测试工具、 自动化测试工具、测试管理类工具。最起码的要求是熟悉工具的使用。
一个优秀/卓越的软件测试工程师应该具备哪些能力与素质,素质方面包括沟通、五心工程师、追求完美等
给你一个软件,比如QQ、QQ斗地主,你如何去测试,这类问题基本的思路是,从软件质量模型、测试工具、测试方法、测试流程、探索式测试等角度先宏观解决,然后再具体微观讲解用例如何设计等。
常见问题
有清晰的思路,有的时候比确切的答案更重要
一、问:你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。
答:
1.将问题提交到缺陷平台进行备案
2.说出自己的判断依据,包括需求说明书、产品说明、设计文档,找出直接的依据
3.如果文档未说明,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是bug
4.根据用户使用习惯,来确认是否是bug
5.与测试经理,项目经理,开发经理一起讨论,来确认是否是bug
二、问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
答:
1.资源方面:一台客户端三百个客户,则会占用更多资源,各线程之间可能会有干扰,影响结果;后者则没有这个问题。
2.带宽:一台客户端三百个客户,会占用更多带宽;后者则要求更宽松。
3.IP 地址的问题:一台客户端三百个客户,如果有ip限制,则需要绕过ip限制,如采用ip欺骗。
三、软件生命周期是什么?
软件生命周期,即软件开发的全过程,包括可行性研究,需求分析,软件设计,编码,测试,发布,维护
四、软件测试分为哪几个过程:
按照开发阶段划分,可以分为单元测试、集成测试、系统测试、验收测试
单元测试:针对每个单元的测试, 以确保每个模块能正常工作为目标
集成测试:对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题
确认(有效性)测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。有的划分方法中,也将确认测试合并入系统测试中。
系统测试:检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。
验收(用户)测试:检验软件产品质量的最后一道工序。主要突出用户的作用,同时软件开发人员也应有一定程度的参与。
验收测试可以分成Alpha测试和Beta测试。Alpha测试是由用户在开发环境下完成的测试,Beta测试是由用户在用户环境下完成的测试。
五、你能不能说下你的3-5年的职业规划?
1.让自己的测试基础知识更加的扎实
2.更深入的学习自动化知识,包括接口自动化测试方向,并运用到现实工作中
3.性能,加强对性能测试结果的分析
4.学会带领一个团队
5.最后,达到测试经理的水平
六、软件开发模式
1.瀑布:严格遵循预先计划的需求分析、设计、编码、集成、测试、发布、维护的步骤顺序进行
2.迭代:每次只设计和实现这个产品的一部分, 逐步逐步完成的方法叫迭代开发, 每次设计和实现一个阶段叫做一个迭代。在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代。每一次迭代都包括了需求分析、设计、实现与测试。
3.螺旋
4.敏捷:是一种快速应对需求的开发方法,更强调人与人之间的沟通,认为快速高效的开发出可执行的软件,比完备的文档更为重要。
最后一个问题
面试官一般会问,您还有什么想问的吗?还有什么想了解的吗?
总体上来说最重要的是留下一个好的近因效应,就好比相亲的时候,分手离开的时候,留下好的最后的印象,基本的思路应该分三种情况,第一种是面试官对你满意,自己也感觉不错的情况下,先表示感谢,然后积极主动的问题,比如,非常感谢您给的这次机会,但是我还是想问,如果我有下一轮面试,我想知道知道是什么时候,我应该再做哪些方面的准备。第二种情况是面试官和自己感觉都一般般,感觉自己是鸡肋,这个时候说不说很重要,基本的套路是,非常感谢面试官给的这个机会,坦白地说我对自己今天的面试表现不是非常满意,还可以表现得更好,但是如果我还是非常想得到这个机会,您能否给我一些建议。第三种情况是面试情况非常糟糕,这种情况下,很少有人能说出感谢,但这恰恰体现一个人的风度。基本的思路是,不管怎么样,还是得感谢您给的机会,让我自己认识到自己的不足,坦白地说我离这个岗位的要求还有些距离,但是我还是想知道,如果将来我还想来咱们公司面试,您能否给点具体建议。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。