开发人员应该向测试人员询问哪些面试问题?

时间:2009-08-27 02:41:09

标签: software-quality

我们正在进行一些采访,我们正在招募一名质量保证人员。开发人员参与的目的是了解他是否能够与开发团队合作。

开发人员应向QA人员询问的最强重要问题是什么?我正在寻找实际问题,而不仅仅是蓬松开放的问题,你的想法?

6 个答案:

答案 0 :(得分:10)

不幸的是,有时候,蓬松开放的问题可以让你最好地看到一个人。

无论您提出哪些技术问题(这些都取决于您的开发方法,所以我无法真正帮助您,它们应该量身定制),您应该始终确定潜在候选人的意愿在团队环境中工作。

您需要确定:

  • 这个人在团队中工作得很好。
  • 该人将负责处理开发以修复错误,而不仅仅是“这是一个错误,请修复它,然后再回到我身边”。
  • 这个人的自我不会妨碍团队的工作(例如争夺分类或错误的严重性)。我发现这通常是开发人员对“他们的”代码采取防御措施的一个问题。

我发现采访中最好的方法是提出情景并询问候选人他们的想法,例如:

  • 周五下午4点,开发人员鲍勃同意回过头来修复一个高严重性的错误。我们需要一个测试人员来验证修复,你是唯一可用的,但你有一个晚餐安排。你会建议什么?

仅仅回答这个问题,您可以评估候选人是否:

  • 没用(“抱歉,我不能错过晚餐”)。
  • 认为外界限制(“真的没有其他测试人员可用吗?”,“我可以在星期六早上验证吗?”,“Bob可以在周末工作吗?”)。
  • 具有适应性(“我可以一次性吃晚饭”)。

等等。

我也不能强调沟通技巧对开发者/测试者关系的重要性。让测试人员生成粗略的错误报告(他们想要的任何错误)并讨论其充分性(确切步骤,预期行为,实际行为......)。

答案 1 :(得分:9)

除了这个帖子中更深层次的答案外,还有一个经常被忽视的简单问题:

您可以像普通用户或没有经验的用户那样行事吗?

现在,这看起来很愚蠢,但它提供了非常好的见解。如果候选人说是,坦白说,他们不是他们看起来的样子。在开发(特别是),分析或测试角色的信息技术领域工作的人不能做到这一点;仅仅因为我们已经超过了没有经验的用户的水平。你应该寻找的答案是:

不,但我可以创建可以准确映射到“所谓的”普通用户行为的测试用例。

或者这个的衍生物。这显示了一些重要信息。

  1. 他们很现实
  2. 他们可以在框外思考
  3. 他们愿意执行QA中的正确方法
  4. 这是我至少找到的。

    希望这有助于这种或那种方式。

答案 2 :(得分:6)

我的建议是考虑这样一些开放式的问题:

  

如果我走到你面前说:“可以   你测试了我做的这件新事吗?“什么   你的前几个问题会是什么?

以下是我要问的一些想法:

  1. 是否提到规格或要求?如果没有,那对测试有何影响?
  2. 他们是否希望我与他们配对,以便他们知道我做了什么?
  3. 他们想知道我做了什么吗?
  4. 他们是否有时间这样做,并问我认为可能需要多长时间?
  5. 您期待什么样的测试:综合,烟雾测试,走廊可用性?
  6. 将使用哪种工具来执行此操作?
  7.   

    在记录错误时,是什么   你相信的最低限度信息   开发者应该在修复之前   它?

    这是一种问题,取决于他们的背景类型可能是他们答案中的一个因素,因为需要注意的一些事项包括:

    • 再现性 - 你能以可预测的方式得到这个吗?
    • 再现性步骤
    • 这是代码,数据,网络还是其他类型的错误?
    • 在某种程度上这个错误有多糟糕?
    • 环境 - 我需要做些什么才能让这种情况再次发生?是否有特定的浏览器,操作系统或我应该拥有的其他东西?
    • 说明这是一个错误的预期和实际结果是什么?
    • 软件版本 - 这是在系统的构建版本上找到的吗?

    我提到了大部分这些,因为这就是我在考虑的问题,当他们提出一个模糊的问题或要求时,他们最初会有什么参数,而这些问题应该有更多的细节,但哪些细节很重要。我还会注意到在给出答案的过程中有多长时间我会说15-30秒就可以了,任何更少的东西我认为这是一个预期的问题,如果还需要更多,那么应该要求几分钟时间思考它,因为重点是当这种情况出现时,双方的期望是什么?

    另一个想法是提及您使用的软件开发方法,然后询问使用此方法与质量保证相关的挑战是什么?例如,如果开发人员使用TDD,那对QA有何影响?如果它是一个更像瀑布的方法怎么办?你想在这里看到的是他们如何能够立即思考以及关于使用什么类型的后续问题,如果我说我们使用Scrum那么真正被问到这个问题,这对于定义一般的实现有多好Scrum的概念,真的。

答案 3 :(得分:3)

开发人员可以通过给他一个应检查以下内容的方案进行检查

态度

测试人员是否具有探测态度?给他一个场景并检查他/她要问的有效问题有多少?

技能

您工作的每个项目都需要与测试相关的一些技能。它包括需求研究,测试设计,测试执行等。检查测试人员在理解要求方面有多好。

知识

在您要招募测试仪的领域检查测试仪的广度和深度。即使测试人员没有在当前字段上工作,也要检查测试人员对该字段的了解程度。

可接受性

给测试人员一个类似客户端问题的场景,开发人员整整一周休假。这个问题需要紧急升级,作为测试人员,你找到问题的根本原因。在这种情况下你将如何处理

答案 4 :(得分:2)

我们在软件质量人员中寻找的一些关键项目:

  • 沟通 - 候选人能否以清晰简洁的方式撰写/发送电子邮件/发言,以便团队的其他成员能够理解他们发现的缺陷
  • 解决问题 - 这是面试难题问题派上用场的地方。有了这些类型的问题,了解候选人如何解决问题以及他们接近确定“美国有多少辆蓝色汽车”更为重要。
  • 责任 - 了解候选人是否会遵循是很重要的。由于人们在采访中热情并且可能会同意很多,但并不是真正的意思,因此找到真正的答案是比较棘手的。候选人过去关于他们如何处理问题或问题的故事可能会有所帮助。如果候选人的问题变得更糟,并且他们仍然处于最佳状态,那么奖励积分。
  • 技术专长 - 此项目所需的级别因测试人员而异:他们是否会编写自动化测试?手动测试?自动化测试需要至少一定程度的技术专业知识,而手动测试则需要更少。无论哪种方式,在处理问题时,让测试人员至少熟悉应用程序的技术方面都非常有用。

答案 5 :(得分:1)

我认为这实际上取决于您正在寻找的那种测试仪。您是否正在寻找某人按下按钮并告诉您它看起来不正确,或者您是否正在寻找能够理解该技术甚至代码并找到更深层错误的人?作为面试循环中的开发人员,我认为还有传统的QA类型。如果是这样,他们会询问典型的测试问题。您需要了解他们的技术以及他们将如何互动。考虑到这一点,尝试一些这样的问题:

  1. 编程问题。查看简历。他们知道C#吗? JavaScript的?让他们为你编写代码。他们知道的越多,他们能够提交的错误就越好。
  2. 处理问题。他们是否了解源代码管理?他们用过吗?他们是否得到了构建的概念?他们熟悉单元测试吗?
  3. 软件开发问题。他们是否了解dll / assembly / jar是什么?他们知道记忆是如何运作的吗?他们是否理解用户和内核模式之间的区别(或适合您的域的任何内容)?
  4. 技术问题。他们对您的域名有多了解?他们是否了解小部件行业的动机?他们知道客户正在寻找什么小部件吗?他们曾经使用过小部件吗?
  5. 他们是否深入了解他们的错误?询问他们最喜欢的错误。他们可以告诉你哪些细节有什么问题?
  6. 他们可以挺身而出吗?这是排序或测试人员在开发时会退缩还是打架?询问他们他们试图完成任务并遇到反对的时间。他们是如何反应的?