在足够小的组织中,是否应该有完全独立的QA和Dev角色,或者每个角色是否需要一段时间(例如,每周1天)扮演另一方的角色?
我不是在谈论单元测试。我说的是关注系统的质量保证也会提供一些生产代码,而开发人员花费一些时间来分析和测试系统的一个独立部分。
在我看来,这种杂耍可能有意义,因为QA可以更好地理解系统中的个人利益,而开发人员可以更好地理解质量和测试问题,超越单元测试。但我相信也有理由反对它......
答案 0 :(得分:11)
需要考虑的一些要点:
答案 1 :(得分:8)
作为一名QA人,我发现这个想法很有趣。有机会开发专业代码听起来像个好主意;我也喜欢将开发人员暴露给QA世界,因此他们知道如何提倡缺陷修复。
以下是关于这种方法的利弊的一些想法。
优点:
缺点:
总的来说,我认为这个想法非常有趣,听到有关此事的故事会很棒。
我参与的一个类似方法是“bug days”。在这些日子里,开发人员坐在QA旁边,他们合作找到尽可能多的缺陷。像这样的日子非常出色:QA和开发团队之间的专业关系得到加强,对彼此技能的尊重通常会增加:开发人员可以更好地了解QA如何发现错误,QA可以更好地了解开发人员在他们发出嘎嘎声时知道多少解决你发现的bug。这不是解决问题的完美方式:QA仍然没有做太多的生产级代码。但它确实有助于促进各职位之间更好的理解。
答案 2 :(得分:2)
我认为开发人员应该专注于编写生产代码和单元测试,而QA应该专注于集成测试,测试自动化和验收级别测试。如果QA团队很好,并且API文档很好,我认为QA可以编写根据规范运行API的单元测试。
我与之合作的很多QA人员都更擅长编写程序代码,例如自动化脚本。我不确定我是否希望他们编写生产代码,特别是当使用复杂的,面向对象的设计模式时,或者超出基本编码级别的任何东西时。
只是我的意见。
答案 3 :(得分:1)
每家公司都不同。对一家公司有效的方法不一定会自动适用于另一家公司。
那就是说,当然,拥有尽可能全面的员工是有道理的。有人拥有的知识越多越好。您是否强制某人为新版本贡献代码?我不太确定它是否应该是严格的要求。但我认为,如果你只有少量的人,你会倾向于让每个人都做一些事情,不仅是为了传播知识,减少你在有人离开时失去的知识,也因为你可能有比起人们做更多的工作而且不能玩像“我在X部门工作而且我们不接触那个,对不起”这样的游戏。
这听起来合情合理,当然,但不能有一个硬性规则。如果一个优秀的开发人员是一个糟糕的测试人员,我不会反对他们,反之亦然。
答案 4 :(得分:1)
我认为进行这种“交叉授粉”是一个好主意,我相信通过更好地了解各自的角色,它可以帮助开发人员和测试人员更有效地协同工作。
答案 5 :(得分:1)
将它们放在彼此的鞋子里将有助于他们更多地了解和合作。在任何不同意的时候,他们都会理解对方的立场。
另外,测试对于Dev来说是一次很棒的学习体验。在编写工作的代码时,一点点质量保证会对他/她有一点点的谨慎。
话虽如此,QA 应不应该编写关键任务生产代码而Dev的 应该不是QA'ng任务关键功能。
答案 6 :(得分:1)
我看到它运作良好:
在一个进行测试驱动开发的敏捷商店中,一个知道CppUnit的C ++开发人员会与知道如何使用内部GUI自动化工具自动化的测试人员配对。对于每个故事,他们将决定哪种组合/ GUI测试最有效,并且他们将共同努力以获得测试/代码。测试人员不知道C ++,开发人员不知道GUI自动化。它非常成功,第一个采用这种方法的项目在全公司范围内进行了演示。该项目中没有人想回到“旧方式”,测试人员落后于开发人员的一两个冲刺。
Bug Bashes,Guerilla Testing,无论您想要什么,它都是开发人员测试产品的地方。我曾经去过几家商店,这些商店在发现错误方面取得了成功。如果您想添加一些结构并进行报告,Session Based Exploratory Testing可能会非常有用。
具有编程技能的测试人员作为初级程序员在开发团队工作了一段时间。在一个例子中,任务是加强团队对某些遗留代码的C ++单元测试。
答案 7 :(得分:1)
根据我的经验,QA应该尽可能地了解您的产品以及您的客户。他们应该精通产品的问题领域,并且应该能够解决客户问题以及2级客户支持人员,以解决不需要更改代码的问题。虽然测试脚本是必要的,但并非所有QA人员都需要能够编写它们,因此并非所有QA人员都需要任何编程能力。事实上,不是程序员就会导致QA找到比编码专家更多的错误。
此外,如果您允许QA人员对系统的某些部分进行编码,那么当该部分存在错误报告时会发生什么。他们接管了修复错误吗?如果他们这样做,谁的QAs修复?如果他们不这样做,他们可以在知道代码时对程序员的更改进行QA。知道代码会以微妙的方式偏向您,这就是您首先拥有QA的原因。对于他们来说,系统是黑盒子,他们的工作是确保输入产生正确的输出。知道它是如何做到的不是他们的工作。并且知道如何制造盲点以降低其效率。
另一方面,统计上显着数量的编码员讨厌“测试”。或者将测试视为低级/入门级别的东西。让他们在质量保证方面工作会影响士气,影响生产力。
简答:不。
答案 8 :(得分:1)
作为一名QA人,我做了一些编程并实现了新功能。它使我成为一个更好的测试人员,因为我对系统有了更深入的了解。只有两个主要规则要遵循: 1)您无法对自己的代码进行QA,因此QA团队至少需要2个人。 2)它必须经过标准的开发过程,这意味着主要开发人员进行代码审查。
异花授粉很有用。它可以帮助您学习其他技能,并在必要时让员工更容易洗牌。另外,为了让自我得到控制,QA有时会受到回扣的影响。