在上一次工作面试中,我被问到:


您发现了一个主要的错误,但是没有开发人员在场。发布截止日期是今天。你是做什么的?


这不是一个难题,但是可以通过多种方式回答。

回答这个面试问题的最佳方法是什么。

评论

首先,您想就此发表您的看法,以便其他人可以提出改进建议。.

定义重大错误?在我的书中,major是一种具有变通方法并且不会破坏重要的用户流的东西,也许仅仅是改进或错过的功能。

#1 楼

正如其他人所说,没有单一的正确答案。面试官可能想看看您如何在紧迫的期限内处理压力状况。

风险/影响-这可能是一个重大错误,但您的工作很大程度上取决于它的可能性该错误将在生产中发生,如果发生,它将造成多大的损害,以及是否有解决方法。例如,极有可能发生的错误,在发生错误时会破坏数据并且没有解决方法的问题就是阻碍。您立即升级为利益相关者并阻止发布。

如果它不是一个阻止因素(只能通过了解系统及其使用方式来确定),和/或有一种解决方法,请为发行说明提供文档,然后通知涉众。 br />
文档-不管怎样,您都需要报告该错误。由于它应该在今天发布,并且没有开发人员对其进行修复,因此您需要在发布说明中添加所有解决方法信息,并将其标记为已知问题。您可能无法说服利益相关者延迟发布,或者可能存在压倒一切的问题,例如合同规定的交货日期以及严厉的处罚,尽管存在问题,这仍将迫使您的公司发布。

保护-原因该错误是一个危机情况,因为没有人可以解决它:您需要记录下来并与您的经理合作,以确保始终有可用的开发人员资源,以防再次发生此类情况。请注意,这不是要怪罪的情况-如果整个项目的时间安排太紧,那么很可能您的团队要到最后一天才能访问带有该错误的系统部分。或其他因素可能会介入:硬件故障,与第三方的互动……以我的经验,没有人希望交付不合标准的软件,但这并不意味着情况允许每个人都按照自己想要的标准工作。

#2 楼

这是一个典型的行为面试问题,用于检查您是否有在压力下进行测试的真实经验,并且没有正确或错误的答案。 Google提供了更多有关“行为面试问题”的信息。

我将描述我过去的经验中在测试周期后期发现错误的任何情况,我们用来评估情况的流程,考虑的选项,以及出于什么原因做出了什么决定。

关键是:是必须是真实的经验,而不是假的。如果您尝试伪造它,将发现很少的后续问题。

请记住,质量检查不能“保证”质量。 QA向管理层报告测试状态,这将制定业务决策:推迟发布或发布具有已知错误的问题。

对于您而言,QA的职责是向管理层报告(提供最佳信息)。可用,尤其是Kate Paulk回答中的风险/影响),然后让他们做出决定。但是,如果您只是这样说(不提及真实的战争故事),他们显然会发现您是在伪造。

#3 楼

这种情况的一种情况:发现


错误。看起来像“主要”
复制并定位它
编写错误报告
通知项目经理该错误,并让他/她/客户决定要做什么。

我们的测试人员从事信息业务:我们收集有关软件当前状态的信息。我们不做商业决定。

#4 楼

我认为您的意思是:当您遇到一个主要错误,而不是主要错误。

我认为我们无法定义一个正确的答案,这是您将要应对的情况之一根据其上下文。


简短的答案是与利益相关者讨论。必须有人负责您正在测试的产品。而且,从我的亲身经历来看,这个股权持有人不必一定是开发商,从我的亲身经历来看,股权持有人从来都不是开发商。我已经看到测试经理是利益相关者,或者是产品经理或业务分析师。
在最坏的情况下,如果没有其他人可以谈论您刚刚发现的这个重大错误。您至少可以做的是在您的错误跟踪系统上对其进行标记,并立即停止发布,等待利益相关者返回。


评论


是的,我同意你的意见。但是他们告诉我:“今天是我们的截止日期,您发现了主要问题,接下来是什么”。

–詹西·苏塔(jensi suthar)
18年1月1日在6:31



还有其他方法可以不停止释放。

–詹西·苏塔(jensi suthar)
18年1月1日在6:35

@jensisuthar,如果主要错误不是阻止性错误,则可以继续进行发布,但由您负责。您有权这样做吗?

–张瑜
18年1月1日在7:27

是的,我有。但是我同意你的看法,如果不阻止,我肯定可以将构建交付给客户端,否则就需要停止共享。

–詹西·苏塔(jensi suthar)
18年1月1日在7:32

#5 楼

在我看来,发现错误的用例在这里也很重要。

例如:如果该错误是在应用程序流程的极端用例中发现的,并且最终用户触及该用例的可能性很低,则可以按计划进行发布,并且该错误将在错误跟踪系统中标记为高严重性错误。

接下来,当开发团队有空解决此问题时,请他们尽快修复此问题,然后再次发布/部署到生产环境。

以这种方式,该发布确实按计划进行,并且希望受影响的用户不多(因为用例不会很好地部署应用程序)。

但是,如果最终用户很容易遇到错误,还是属于您的申请流程中快乐之路的一部分,那么作为质量保证人员,您必须站在自己的立场上,并向所有利益相关者(高级管理层)报告风险。

如果所有利益相关者仍然可以投产,并且由于部署截止日期,此bug仍未解决,那么由他们来评估生产缺陷,客户不满意等对业务的影响。

从质量检查的角度来看,您是通过1.发现bug,将其记录在bug跟踪工具中以及3.将其突出显示给所有涉众+高级管理层的方式来完成工作的。

#6 楼

如果这是严重的问题,则取决于问题的严重性,告诉项目经理停止发布,直到问题被开发人员解决为止。如果生产中可以包含此问题并且在直接的“快乐之路”场景中不会出现,请上载该问题并继续生产,直到开发人员尽快解决。

#7 楼


您发现一个主要的错误,但是没有开发人员在场。发布
截止日期是今天。你怎么办?


我要辞职:一家公司在发布的截止日期没有可用的开发人员,这对他们来说是糟糕的管理和不负责任的开发人员。在截止日期之前发现重大错误,这也是不负责任的开发人员和糟糕的测试协议的标志。

这样的公司注定不会成功,也不值得为之工作。

我还要告诉他们:如果在您的公司中可能发生这种情况,出于相同的原因,我不想为您工作。

评论


作为开发人员,我完全不同意。阻止质量检查人员在截止日期前找到主要公共汽车的唯一方法是将它们清晨送至酒吧,不允许他们返回。

– gnasher729
18年1月20日在17:01

@ gnasher729-作为在纽约金融业拥有20年经验的开发人员,如果您开发软件的方式不是游戏,那么我永远不会雇用您来编写任何程序。

–Vector
18年1月20日在19:03

从某种角度来说-我是工作场所中唯一的测试人员,尽管开发团队尽了最大的努力和我自己的努力,但由于无法始终进行所有测试,因此我在最后一刻仍然遇到了关键问题。可用时间,代码复杂性,功能复杂性,第三方集成,硬件等之间的交互意味着我们不得不伸出双手,有时希望。

–凯特·保罗(Kate Paulk)
18年2月8日在12:31

#8 楼

在我这里,规则是开发人员进行设置,以便释放按钮所需的全部。质量检查持续到最后一刻。在计划发布的时间点,老板问质量检查:我们可以发布此软件吗?如果答案为“是”,则将其释放。如果答案是“否”或“不知道”,那么老板很可能在问“为什么”之后做出决定。

在这种情况下很容易。您发现了一个重大错误。老板问“我们可以释放吗”。您说:“不知道,我们只是发现了一个重大错误,这是它的作用,这是它发生的时间,这是它发生的频率”。由您的老板决定,然后决定是否发布。

如果没有开发人员在现场,那么今天显然还没有解决。如果有经验丰富的开发人员在现场,那么今天也将无法修复它,因为经验丰富的开发人员知道在最后一刻尝试修复错误会带来麻烦。

现在,如果您的面试官声称您有责任并有权做出决定:应该告诉您截止日期是截止日期的多少。您是否正在编写用于记录下一次日食图片的望远镜的软件?这就是我所说的截止日期。您运送并祈祷。不发货=没有记录,发货=也许是唱片,也许不是,但从来没有比不发货更糟。公司签了合同,如果您今天不发货,它将使其破产?您运送并祈祷。不发货=破产,发货=可能使客户不高兴。运输更好。

但是,在99%的时间内,截止日期只是管理层设定的任意时间点。因此,您尝试找出如果今天发货并带来重大错误会带来什么影响,以及如果您在两天后发货会带来什么影响。然后决定哪个更好。

评论


这不能回答问题:您要做什么?

–Vector
18年1月20日在19:09

在我这里,规则是开发人员设置东西...,老板问质量检查:我们可以发布此软件吗?如果是这样,那根本不是真正的截止日期,只是一个乐观的发布日期。 OP表示有最后期限-所有这些答案所做的都是模糊不清的,与期限一词不符。那不是面试官想要听到的-如果有人问这样的问题,他们想要一个明确的决定性答案。

–Vector
18年1月20日在19:13



#9 楼

我遇到了这种情况,当时我被提升为管理团队,我决定停止交货,但是管理层不愿意停止交货,因为他们已经与客户约定了日期。时间,最后他们决定发布具有已知缺陷的版本。我对该版本不满意。

无论如何,管理层决定了,所以我已经记录了造成这种情况的步骤,并将文档以及发行说明分发给了客户团队和堆栈持有人。

结果最终交付给客户,但是由于已知的错误,由于客户团队未尝试使用文档中提到的方案。并把新版本作为优先事项交付给客户。

当时,我注意到测试团队尚未完全批准决策,但是所有人都说QA有权停止测试。交货

#10 楼

它由技术团队决定。这不是质量保证团队的责任。测试人员的工作是研究软件或应用程序的特定版本,测试手动还是自动化,并查找错误和报告。就是这样。

#11 楼


您发现一个主要的错误,但是没有开发人员在场。发布
截止日期是今天。你怎么办?


第一个问题,专业在这里意味着什么?我猜主要错误的意思是:应该阻止发布的东西。不是典型的阻止者,关键,主要,次要和琐碎的阻止者。对于重大错误,这个问题实际上没有任何意义。例如。具有解决方法且不会破坏重要的用户流的某些功能,可能仅仅是改进或错过的功能。

我建议您:


推迟发布发布
更好地计划,例如在发行日有开发人员可用
更好地计划,例如在发布日的前几天进行了测试吗?或者:


打电话给开发人员?


#12 楼

您绝对应该报告该问题并将其分配给开发人员。如果没有开发人员在场,则您必须交付构建,然后交付构建并将问题称为已知问题。