当前位置: 求职1号站 > 求职技巧 >

软件测试求职技巧

| 小龙

  对于软件测试的求职者而言,做好面试准备,掌握面试技巧很有必要。下面小编已经为你们整理了软件测试求职技巧,一起来看看吧。

  软件测试求职技巧

  背景

  在深入代码之前,大多数面试官喜欢聊聊你的背景。他们想知道:

  1、你对编码认知。你是否知道如何编写好代码?

  2、个人能力/领导力。你是否经历过整个工作流程?你是否修复过并不怎么正确的东西,即使你并不需要这么去做?

  3、沟通。和你交流技术问题是有用的还是痛苦的?

  你应该至少说明以下中的一个:

  你曾解决的一个有趣的技术问题

  你曾克服的一个人际冲突

  显示领导力或个人能力的例子

  你曾在以往项目中做出的贡献

  最喜欢的语言的一些琐事,对这种语言你做了什么,以及你不喜欢它哪里

  有关公司产品/业务的问题

  关于该公司的工程策略(测试,Scrum,等等)

  4、热爱技术。表达你对你所做的一切感到骄傲,你对自己的选择充满自信,你对语言和工作流有着自己的看法。

  沟通涉及到编码问题的时候,沟通是关键。一个在工作时需要帮助却能和人正确沟通的求职者比那些能轻松解决问题的求职者甚至更好。

  了解这是哪种问题。有两种类型的问题:

  编码。面试官希望你能针对问题写出简洁高效的代码。

  闲聊。面试官希望能和你聊一聊。话题通常是(1)高水平的系统设计(“如何克隆Twitter?”)或(2)琐事(“Javascript中的hoisting是什么意思?”)。有时候这些琐事中也会引入“实际”问题,例如,“如何迅速排序整数列?好的,如果不是整数,是其他类型的呢…… ”。

  如果你开始编写代码,并且面试官并不想多说废话,只想尽快过渡到“实际”问题,那么如果你罗哩叭嗦太多的话,她可能会觉得厌烦。不妨直接问,“是不是为这个问题写代码?”

  让人感觉你有团队精神。面试官想知道和你一起工作是什么感觉,会有什么问题,所以要让他们看到你的团队合作性。使用“我们”来代替“我”,例如,“如果那个时候我们做广度优先搜索的话,就能及时/准时得到解决方案。”如果让你选择在纸上还是在白板上编码的话,选白板。这样,你就可以接近面试官,直接面对他提出的问题(而不是和她在桌子两边遥遥相望)。

  把自己的想法大声说出来。不是开玩笑,比如说:“我不知道这样做是否有效——但请让我试一试。”如果你不知道怎么办,不知道这个问题该如何解决,那么就说一说你现在的想法。说一说你认为怎么做可能会有效。说一说你认为哪些会有用,以及为什么没用的原因。这同样适用于琐碎的闲聊问题。当面试官要求你解释Javascript闭包的时候,“这与范围有关,不妨把它放到一个函数中”可能会让你得到90%的分数。

  不知为不知。如果正在谈论的话题(例如,具体的语言事务,具体的琐事,运行时分析)的确是你不曾涉猎的内容,那么不要不懂装懂。相反,你可以直接说:“我不知道,但我猜$thing,因为……”,因为后面可以通过分析排除其他选项,还可以拿其他语言或问题做例子。

  说话不要不经大脑。不要自信地将答案脱口而出。如果是正确的,那么你还是需要时间来考虑如何解释,如果是错的,那会显得你冲动鲁莽。你不是在和人比速度,而且你这么做更有可能因为打断她的话或者妄下结论而惹恼她。

  摆脱困境

  有时候你会陷入僵局。放松。这并不意味着你已经失败了。请记住,面试官通常更在乎的,是你能否巧妙地从几个不同的角度去揭示问题,而不是一根筋走到底地坚持正确答案。

  画图。不要浪费时间在脑袋里思考,可以画到板上。画出几个不同的测试输入。画出你如何手动如愿得到所需的输出。然后想想将你的方法转换成代码。

  解决问题的简单版本。不知道如何找到集合中的第4大条目?那么想想如何找到第1大条目,然后试试能否沿用这种方法。

  写一个简洁低效的解决方案,然后对其进行优化。竭尽全力。尽一切可能的方法得到某种答案。

  讲讲自己的思路。讲一讲你知道什么。讲一讲你认为什么可能工作以及为什么无效的原因。你可能突然会意识到它实际上是可以工作的,或修改版本是有效的。也有可能,你会得到提示。

  等待提示。不要用期待的眼光盯着面试官,但可以有短暂的“思考”时间——面试官或许已经决定给你个提示也说不定呢,等待她的提示以免打断她。

  考虑空间和运行时的界限。如果你不知道你是否可以优化解决方案,那么就说出来。例如:

  “我必须至少看看所有的条目,我做不到时间复杂度比O(n)还好的了。”

  “蛮力方法才能检验所有的可能性。”

  “答案将包含n^2数据项,所以我必须至少花费N^2的时间。”

  写下你的思路想法

  凭空地想很容易自我矛盾。把你的想法写下来,然后再去考虑细节。

  调用帮助函数,继续前进。如果你不能或多或少地马上想出如何实现算法,那就跳过它。写一个命名合理的调用函数,例如:“this will do X”,然后继续下一步骤。如果帮助函数非常微不足道,你甚至可以将它忽略。

  不要担心语法。不妨一笑而过。如果你非要考虑语法,那就还原到英语。只要向面试官说明稍后会回来整理即可。

  预备足够的空间。你可能后面会想要在代码行之间添加代码或笔记。从白板的顶部开始写,并在每一行之间留一条空白。

  最后写一个重头检查的标志。不要担心你写的for循环是否应该有“<”或“<=”。在代码的最后画个勾选提醒自己最后再检查一遍。先按自己的思路走。

  使用描述性的变量名。想名字需要时间,但可以防止你忘记自己写某段代码的目的。使用names_to_phone_nums_map而不是nums。在名称中说明类型。返回布尔值的函数应该以“is_ *”,保存列表的Vars应该以“s”结尾。标准化很有意义。

  完成之后的整理

  浏览解决方案,大声地讲,输入一个例子。当程序运行时记录下变量保存的值——如果你只是记在脑子里,不会让你赢得任何加分。这有助于你发现bug和消除面试官的困惑。

  寻找差一错误。你的for循环是不是应该使用“<=”来代替“<”?

  测试边缘情况。措施包括空集合,单项目集合或负数。加分点:提一提单元测试!

  不要惹人厌烦。有的面试官可能并不在意这些整理步骤。如果你不确定,可以这样说,“我通常会检测一些边缘情况——那么我们接下来是不是做这个呢?“

  实践

  最后,运行实践问题是没有捷径的。

  好记性不如烂笔头。对自己诚实。用笔写可能一开始会让你觉得别扭。但是如果你现在就能克服这个难题,那么当面试的时候,你就不会觉得笨拙和不顺手了。

  软件测试常见面试问题

  1、你为什么能够做测试这一行?

  虽然我的测试技术还不是很成熟,但是我觉得我还是可以胜任软件测试这个工作的,因为做软件测试不仅是要求技术好,还有有一定的沟通能力,耐心、细心等外在因素。综合起来看我认为我是胜任这个工作的。

  2、测试的目的是什么?

  测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。当然软件测试是不可能找出全部错误的。

  3、怎样看待加班问题?

  加班的话我没有太多意见,但是我还是觉得如果能够合理安排时间的话,不会有太多时候加班的。

  4、结合你以前的学习和工作经验,你认为如何做好测试?

  根据我以前的工作和学习经验,我认为做好工作首先要有一个良好的沟通,只有沟通无障碍了,才会有好的协作,才会有更好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就要问,实时与同事沟通这样的话才能做好测试工作。

  5、你为什么选择软件测试行业?

  因为之前了解软件测试这个行业,觉得他的发展前景很好。

  6、根据你以前的工作或学习经验描述一下软件开发、测试过程,由哪些角色负责,你做什么?

  要有架构师、开发经理、测试经理、程序员、测试员。我在里面主要是负责所分到的模块执行测试用例。

  7、根据你的经验说说你对软件测试/质量保证的理解

  软件质量保证与测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据和预期的输出结果),并根据这些测试用例去运行程序,以发现错误的过程。它是对应用程序的各个方面进行测试以检查其功能、语言有效性及其外观排布。

  8、软件测试的流程是什么?

  需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价。

  制定初步的项目计划。

  测试准备:组织测试团队、培训、建立测试和管理环境等。

  测试设计:按照测试要求进行每个测试项的测试设计,包括测试用例的设计和测试脚本的开发等。

  测试实施:按照测试计划实施测试。

  测试评估:根据测试的结果,出具测试评估报告。

  9、测试分为哪几个阶段?

  一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试

  10、单元测试的测试对象、目的、测试依据、测试方法?

  测试对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷。测试依据是模块的详细设计,测试方法是采用白盒测试。

  
看了“软件测试求职技巧”

43528