代码之家  ›  专栏  ›  技术社区  ›  Joe Schneider

开发人员测试与QA团队测试-正确的工作分工是什么?[闭门]

  •  21
  • Joe Schneider  · 技术社区  · 18 年前

    澄清:我的意思是QA作为验证和验证团队。开发人员不应该进行验证(以客户为中心的测试),但验证(功能测试)的划分点在哪里?

    9 回复  |  直到 7 年前
        1
  •  24
  •   tshepang Arrie    12 年前

    这是“黑盒”测试(你知道代码应该做什么,但不知道它是如何工作的)和“白盒”测试(知道它是如何工作的驱动你如何测试它)之间的区别。当你提到质量保证时,大多数人都会想到“黑箱”测试。

    我在一家公司工作,那里的QA团队也是软件开发人员。(这缩小了范围 我知道Joel的观点,我的经验让我部分不同意:同样的原因是“白帽”黑客更有效地发现安全漏洞,知道如何编写代码的白盒测试人员更有效地发现某些类型的错误(因此,常见的错误是什么——例如,内存泄漏等资源管理问题)。

    此外,由于面向QA的开发人员从初始设计阶段起就是流程的一部分,因此理论上他们可以帮助在整个流程中驱动更高质量的代码。理想情况下,对于每个专注于功能的开发人员来说,你有一个相反的开发人员专注于破坏代码(从而使代码变得更好)。

    从这个角度来看,与其说是使用开发人员进行测试,不如说是一种断开连接的成对编程,其中一个开发人员强调控制质量。

    另一方面,坦白地说,很多测试(比如基本的UI功能)并不需要这种技能。这就是乔尔的观点。

    对于许多企业来说,我可以看到一个系统,编程团队为彼此的代码权衡代码审查和测试职责。例如,业务逻辑团队的成员可以偶尔花一次时间为UI团队测试和审查代码,反之亦然。这样,您就不会在全职测试上“浪费”开发人员的天赋,而是获得了将代码暴露给(希望是)专家审查和惩罚的优势。然后,一个更传统的QA团队可以进行“黑盒”测试。

        2
  •  8
  •   Vaibhav    18 年前

    我们试图为产生的bug保持一个阈值。如果在测试过程中超过此阈值,则开发人员应对其负责。这取决于您决定这个阈值是多少(对于我们来说,它可能因项目而异)。

    此外,所有单元测试都由开发人员完成。

        3
  •  8
  •   not-bob    17 年前

    适当时,质量控制团队应该能够进行安全性、回归、可用性、性能、压力、安装/升级测试,而不是开发人员

    开发人员应该将编写代码的代码覆盖率作为最低目标来进行单元测试。

    • 完整代码路径测试
    • 组件测试
    • 集成测试(组件)
    • 系统(集成)测试

    这些责任在QA和开发之间混合在一起,这是基于双方就什么最有意义达成的一致意见。一些组件测试只能通过单元测试来完成,其他的则在集成测试等过程中进行“充分”测试。

    互相交谈,找出每个人最喜欢做的事情。这需要一些时间,但很值得。

        4
  •  4
  •   RedDeckWins    18 年前

    我在该行业只工作了一年,但根据我的经验,开发人员负责对其功能进行单元测试,而QA负责测试场景。QA还应测试任何边界条件。

        5
  •  3
  •   Gishu    18 年前

    我正在我们的内部论坛上粘贴一个问题的答案。如果你有一个小时左右。。听听玛丽·波彭迪克的歌 Competing on the basis of Speed 视频

    注(由测试人员-我指的是QA团队)

    ________=_______ 可用性测试;探索性 测试

    '==================================================================

    ___=_____ 性能测试

    把它想象成一个有四个象限的正方形

    左半部分应该是自动化的。

    • 开发人员测试验证代码是否按照编码人员的要求工作。 工具:NUnit/xUnit/任何自制工具
    • 工具:适合 回归工具也在这里。录音回放。

    • 属性测试再次需要人。在这里,您可以检查系统所需的客户强制属性。e、 g.性能-您的搜索对话框是否满足2秒的响应时间?安全-有人能侵入这个系统吗?等可用性-您的系统是否99.99%的时间在线?

    测试人员不应该把时间花在执行左半部分的测试计划上。开发人员有责任确保代码按照客户和开发人员的预期工作。测试人员实际上可以帮助客户制定验收测试。。

        6
  •  3
  •   pjz    17 年前

    测试应该尽可能自动化,如果测试人员正在编写添加到自动化测试套件中的代码,那么测试就可以返回到开发人员的工作中。

        7
  •  2
  •   Alan    17 年前

    我的一般立场是,测试人员永远不应该发现单元级的bug(包括边界情况)。测试人员发现的bug应该在组件、集成或系统级别。当然,一开始测试人员可能会发现“快乐路径”bug和其他简单bug,但这些异常情况应该用来帮助开发人员改进。

    您的部分问题可能是使用每小时100美元的开发人员和每小时30美元的测试人员:}。但是不管成本如何,我认为知道在开发周期早期发现的bug不可避免地更便宜,让开发人员拥有更多的测试可能仍然可以节省资金。如果你有一个高薪的开发团队和黑客测试人员,你可能会发现很多明显的大问题,但你会错过很多更隐晦的bug,这些bug稍后会再次困扰你。

    所以,我想你的问题的答案是,测试人员应该尽可能多地进行测试。你可以解雇所有的测试人员,让开发人员做所有的测试,或者你可以雇佣一大群测试人员,让开发人员检查他们想要的任何东西。

        8
  •  1
  •   Mary    12 年前

    有两种类型的qa小组,他们希望维持现状。 有些技术qa人员了解工具。不幸的是,编程语言不是一种工具,而是一种愿景。 我确实认为,开发人员应该审查qa测试。大多数时候,我发现自动化没有测试任何东西。不幸的是,qa工作被认为是低级的,所以开发人员不必费心。当我从一个团队中有影响力的开发人员那里得到支持时,我自己也很幸运,他愿意向经理解释我的努力。不幸的是,它只有一半的时间有效。测试人员IMHO应向开发经理报告。所有团队都应该对qa测试实际测试的内容负责。

        9
  •  0
  •   Aidan Ryan    18 年前

    • 开发人员在处理功能时修改共享库-开发人员能够洞察QA/验证没有的可能的副作用
    • 开发人员发现规范中未考虑的代码必须支持的用例路径,编写代码,更新规范,编写测试

    在第三个示例中,开发人员应该执行多少测试任务是有争议的,但我认为这对开发人员来说是最有效的,因为来自许多文档和代码层的所有相关细节都已经在她的短期内存中。这场完美的风暴可能是事后测试人员无法实现的。