为什么测试人员和程序员彼此不喜欢?[关闭]


18

在我作为程序员的职业生涯中,我见过各种各样的程序员和测试人员,其中许多人互不相爱。我的意思是,程序员认为测试人员的工作不是“真正的”工作,而测试人员则认为程序员太“骄傲”。

这是我做出的正确决定吗,为什么要这样做,以及如何避免此类问题呢?


评论员:评论是为了寻求澄清,而不是为了扩展讨论。如果您有解决方案,请留下答案。如果您的解决方案已经发布,请对其进行投票。如果您想与其他人讨论这个问题,请使用chat。有关更多信息,请参见FAQ

Answers:


50

我认为这是过度概括和过度简化的结果。

我目前是一名测试人员,我编写的代码几乎与开发人员编写的代码相同(取决于测试阶段),并且我公司中最好的朋友是一名开发人员,我们都相处融洽。

您可能想看一下公司的文化以及团队相对彼此的工作方式,以找到答案。以我的经验,如果您有非常反动的工作流程(例如,开发人员“将构建扔在墙上以进行测试”和测试“将错误扔回去”)而不是一起工作,而只是从不同的重点或“攻击向量”出发,我会发现,两个部门总体上都会彼此不喜欢。

在我工作的地方,每个功能团队或设计团队都有几乎与开发人员一起工作以产生输出的测试人员。该输出是符合测试代码规定要求的生产代码。

编辑

另请注意,我认为测试者的责任比支持两者之间关系的开发者要多。

对我们来说,使开发人员的生活变得更好或更糟要容易得多,但是目标不仅是“发现错误”,而且是找到潜在的解决方案。如果我不能,我不能,我会与任何人被分配了一些bug,在这一点上找到一个解决办法。但是,如果这是一个简单的解决方案,那么我将提供我认为是可以满足各种要求以及最终编写的回归测试的潜在修补程序。


4
+1我更希望测试人员(QA)发现更多的错误,而不是浪费时间弄清楚代码并提出潜在的解决方案。这就是为什么他们在测试中,而我们在开发中。优秀的质量检查人员与优秀的开发人员一样有价值,我宁愿每个人都在自己的专长领域里度过时光。就是说,质量检查的真正帮助是发回了易于理解的错误报告,概述了错误的确切条件,以便可以轻松重现。没有什么比“ X失败”更糟糕的了,没有什么比“在A,B,C和D的情况下,X失败并出现错误Y”
更好的了

3
@Mark Mann:我认为我们对浪费时间有不同的看法:)从质量保证的角度来看,对别人的工作质量负责是一种很有趣的情况。当我认为QA中的人员有时是开发团队中某些人员的开发人员的两倍时……挫败感可能会接over而至,您最终想到“只是这样写就可以了。我不想麻烦再次进行测试,并重新引发相同的错误或回归。” 此外,如果我可以帮助简化某人的工作/一天,那我就是一个快乐的人。
史蒂文·埃弗斯,

2
当团队中的每个人都不清楚项目的(QA)目标时,就会出现问题和紧张气氛,而糟糕的项目管理会使QA或Devs“统治”整个市场。我在质量检查发现缺陷并像带骨头的比特犬一样工作的地方工作过,不会放任其发展,使该项目延迟了超额预算,与那些有缺陷的缺陷相比,该缺陷极不可能发生且较小尚未找到,或功能尚未完成。质量保证的工作是确保在业务约束范围内运送最佳产品,而不是寻找和解决所有缺陷,而这要以项目为代价。
mattnz

28

喜欢我的测试人员-他们可以帮助我进行故障排除并找出我认为不会出现的问题,但我们的客户会发现。对我来说最重要的是,它们可以帮助我确保我不会杀死使用错误代码的人。

为什么会弹出问题?

  • 您一直在判断彼此的工作,有些人无法接受任何批评
  • 做不好会浪费对方的时间
  • 你们俩在同一时间承受着同一件事的压力,没有人愿意成为举起东西的那个人

结合以上这些以及职位的性质,这很容易使您当前的愤怒和挫败感相互消除,如果您陷入了陷阱,那么您将停止共同努力,开始彼此对抗。这很难突破,对任何人都不利。


6
尽管让测试人员(QA)拒绝修复程序可能会令人沮丧,但从客户那里获得错误报告的情况要差得多远(我说过吗?)。我宁愿QA部门展示我在修复错误/实现功能方面的笨拙行为,也不愿打开一百个客户案例,因为它在发布之前没有被发现。
2011年

16

我猜想是因为程序员创建了一个程序,然后他们认为测试人员会尝试发现其中的缺陷(即使测试人员实际上是改进最终产品的一部分),也会发生这种情况。每当有人发现您要付出很多努力的缺陷时,对它们做出消极反应可能是自然而然的反应。

减轻这种情况的方法是使开发人员和测试人员将完成的产品视为整个团队(包括测试人员和开发人员)的输出,并使他们理解测试不是独立的故障发现任务,而是测试的重要部分在发展的过程。如果开发人员认为测试不是一项真正的工作,或者觉得这很简单,请让他们编写测试矩阵,执行数百个测试用例,记录每个步骤和每个结果。


2
同意 从一开始,也使测试人员成为开发工作的一部分(在计划和设计过程中创建测试)有助于避免很多麻烦。
Martin Wickman

3
关键是将态度方式从发现缺陷转变为帮助找到改进程序的方法。作为测试人员,很容易陷入发现缺陷是您的主要目标的想法。
edA-qa mort-ora-y

@ edA-qa mort-ora-y:好点!
FrustratedWithFormsDesigner

“因为”->“因为”
彼得·莫滕森

8

我知道某些特定的程序员和特定的测试人员互不喜欢,但这并不是因为您所说的原因,而是因为他们彼此之间是相互帮助的。

这是野兽的天性。我知道一些不喜欢特定程序员的特定测试人员,因为他们认为自己的代码容易因粗心/懒惰/等而出错。我知道有些不喜欢特定测试人员的特定编码人员认为他们使用了可笑的测试条件(挑剔),或者要求根据样式对代码进行修订。

我认为保持个性,并专注于手头的任务对减轻紧张关系大有帮助。如果组织足够大,那么双盲测试是一个好主意。

能够清楚地表达问题的测试人员和清楚地实施解决方案的编码人员是一个很棒的团队。


5

在与测试人员紧密合作的团队中,我们的合作非常顺利。测试人员了解制定各种决策的决策,了解开发人员的进度表,并在两组之间建立融洽的关系。

在测试是离岸一些无定形实体的团队中,情况并非如此。测试人员的结果不太重要,因为他们对正在发生的事情一无所知,开发人员开始对他们认为是无关紧要的细节泛滥成灾,这些细节在程序的某些部分中并未被两部分涉及几个月以来,测试团队很生气,没有解决所有已提交的错误(因为排定了时间表,并且开发人员正忙于准备进行演示或添加请求的功能等),并且总体而言,这两个团队将彼此视为对立的与团队成员相对的“其他”。

密切合作,一切都会好起来的。有人需要确保两个团队的协调并在同一页面上。我最好的经验是,测试团队被邀请参加开发人员团队被邀请参加的所有高层会议(所有人),我们都知道时间表,我们拥有统一的优先级列表,并且开发人员和测试都具有相同的(向上-迄今为止)的需求文件。我最糟糕的经历(除了没有测试),我们基本上打包了东西,运往国外看,然后在一个月后拿回了所有东西,但标记为错误的东西甚至都不是我们的(满足新要求的第三方插件)要求,而不是测试团队的期望)。

如果没有开发者或测试者,没有其他任何人都不会成功。如果您像同一台机器的两半一样工作,并且尊重对方,就像尊重更直接的团队成员一样,那么一切都会好起来的。表现得像两台单独的机器,并假设您的机器更好,那么情况将会很糟糕。



3

我发现,当测试人员和开发人员位于同一团队而不是“测试团队”和“开发团队”时,这些问题将大大缓解。我认为这就是为什么作为一名测试人员,我非常喜欢在敏捷团队中工作,而不是瀑布开发。有了更多的沟通,周转更快,并且当工作更加透明时,开发人员对测试所需的时间和才华有了更大的了解。

单独地,还有很多事情可以做。作为一名测试人员,我发现我可以通过提供积极的反馈以及发现错误来减少这种摩擦。我还没有为一个不能教我很多知识的开发人员进行测试,我发现开发人员非常感谢真正致力于理解代码的测试人员。开发商感到骄傲,就像好的工匠。重要的是要让他们知道,拥有bug并不能使他们变得不那么令人钦佩

我发现最容易以满意的高质量工作的开发人员,并通过在测试人员看到之前努力编写高质量的代码来进行演示,包括进行初步测试(主要是自动单元测试和手动烟雾测试)。这些开发人员还要求测试人员进行代码审查以确保其可测试性,并尽快将测试人员纳入流程,包括尽早向他们提出设计(这使测试人员可以在测试工作量较小时开始及早计划测试策略)。开发人员可以告诉测试人员匆忙开发了哪些区域,或者哪些区域难以进行单元测试,从而可以帮助测试人员找到代码中的薄弱环节。总的来说,开发人员可以使测试人员的工作更轻松的任何事情都受到赞赏,并表明他们珍视测试人员的时间以及自己的时间。当开发人员这样做时,


3

另一个问题是,质量保证通常是许多公司的后遗症。很多时候都在最后一刻被告知有关项目的信息,与开发团队相比,人员配置严重不足。在某些地方,开发人员的途径是技术支持,质量保证,然后是开发人员。所以有时会有希望他们是开发人员的人来工作...然后当他们发现缺陷时,他们的态度就是那个人如何成为开发人员,而不是我,我永远不会犯这样的错误,等等。

总的来说,我会喜欢QA团队。我也认为单元测试应该是软件开发中与质量保证分开的必要部分。因此,当质量检查人员发现错误时,单元测试就会更改为对此进行测试。另外,我认为进行单元测试的开发人员可以更好地理解QA的发现。

另外,许多质量检查团队必须手动执行操作,在这种情况下,这确实很无聊。在某些地方,QA编写脚本并使用自动化程序,甚至允许编写GUI脚本(通过屏幕上的按钮/等图像识别)。然后,当首先进行重大更改时仍然很困难,但是随后一切都实现了自动化,并且看起来更加有趣...

另外,一些开发人员也不愿接受质量检查。不过,我还是希望质量检查人员比客户发现缺陷。


2

我们在这里爱我们的测试人员,但是后来我们中的许多人都记得我们拥有测试人员之前的情况。让测试人员发现问题比让您的客户在生产后发现问题要好得多。没有一个活着的开发者没有创造一个错误或错误地解释了一个需求。

关键是要礼貌地对待所有专业人员,并尊重他们是否做您做的事情。一旦您开始认为自己的工作比他们的工作更好或更重要,那么您就输了。

基于以下问题: 软件测试技术或类别 我怀疑您需要对测试人员和一般测试的态度进行调整。


2

作为开发人员,我经历了与测试人员的紧张关系。

在一项工作中,测试人员很少会测试“正确的事物”。我将为产品的服务器实现一项新功能,测试人员将报告有关用户界面的全部错误。由于在该产品中,用户界面未配置为编码,因此我们开发UI中是否存在问题与最终用户是否具有类似问题的UI绝对没有联系。测试人员知道这一点,但是仍然坚持记录有关无关区域的错误。

就是说,好的测试人员值得在黄金中投入重金-我马上就将一个糟糕的开发人员换成一个好的测试人员。优秀的测试人员是提供优质产品的合作伙伴。

我还知道一些将测试人员视为敌人的开发人员-好像测试人员正在引入错误。对于开发人员而言,重要的是要意识到测试人员永远不会引入错误-他们只是发现错误。


1

如何避免这些问题?彼此友好如何?一个人需要另一个人才能发布高质量的软件应用程序,那么为什么不尊重各方为此需要做的事情呢?了解双方的工作,您可能会真正欣赏其中涉及的工作。


1

正确理解需求的两面都是我倾向于看到开发人员和测试人员之间普遍存在冲突的地方。尽管可能会出现贪婪或自大的神情,但只是每一方都坚持自己的立场并希望自己是对的。

避免此问题的一个好方法是让三个方(开发人员,测试人员和一些调解员)或者业务分析员或项目经理来处理各种边界情况。需要考虑的是,当开发人员和测试人员之间存在分歧时,可能会出现什么样的自我挑战。


1

不好的感觉通常是沟通不畅的结果,这通常是程序员和测试人员对代码有不同看法的结果。程序员知道他一直在紧密地工作,但是可能不知道它们如何适合整个系统(超出了规范的范围)。测试人员可以看到全局,但并不了解详细的代码。这些小组可能对同一事物使用不同的术语和程序。

这可能导致将错误提交给错误的组件(因为该组件正在响应上游的故障),或者开发人员关闭了合法缺陷,因为他们无法在其环境中重现问题(因为他们并不真正了解如何重现)问题正确)。如果这种情况经常发生,则可能会使小组之间的关系紧张。

然后很高兴在第11小时收到一批缺陷;截止日期迫在眉睫,连锁店的直属经理正面临着压力,您在知道自己已经解决的问题上又有了新的缺陷,您真的不想花时间去解决通过过程来证明这一点。

惹恼您的质量检查小组的一种非常好的方法是,立即关闭数百个合法但低优先级的缺陷(主要针对难看或不一致的用户界面,这些UI本来可以正常工作),其理由是您的高优先级缺陷积压很大,以至于“我们永远都不会去那些。” 在计划经理的电子表格上,您从红色变成绿色,并从上级管理人员那里获得了帮助,而QA团队则对他们的指标提出了要求,提出了一系列虚假的缺陷。

坏枣


1

这通常是由三个因素引起的-

  • 诸如此类的问题表明,行业中存在开发人员和测试人员彼此不喜欢的“民间传说”。即使团队中可能不存在这种感觉,人们也会设法找到能够增强这种感觉的方面。
  • 不称职的项目经理通过记录错误的数量等指标来衡量进度。
  • 一个功能失调的团队(缺乏领导者,他们不愿意足够地修复它)。

1

我喜欢测试人员,但发现有两个案例存在冲突。

  1. 当管理层让测试人员和开发人员互相影响时。

  2. 当问题持续提交时,缺少详细信息,即“ Screen x无法正常工作”。


0

我认为,如果确实如此,那是不成熟的迹象。有时您可能会把它当作一个玩笑。但是,如果您(从事同一项目的开发人员和测试人员)不觉得自己像一个团队,那么结果将是一场灾难。

测试是软件开发生命周期(无论是否敏捷)中非常重要的一部分。因此,您不应该将测试人员想象为那些会为您困扰的bug的人,而是将其视为帮助您交付高质量软件的团队伙伴。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.