开发人员应该参与测试阶段吗?


10

我们正在使用经典的V形开发过程。然后,我们进行需求,体系结构,设计,实现,集成测试,系统测试和验收。
测试人员正在项目的第一阶段准备测试用例。问题在于,由于资源问题(*),测试阶段太长,并且通常由于时间限制而缩短(您知道项目经理...;)。开发人员正在按需进行单元测试。

所以我的问题很简单:开发人员应该参与测试阶段吗,是否不是太“危险”?恐怕这会给项目经理带来错误的质量感觉,因为工作已经完成了,但是增加的man.days是否有价值?我对开发人员进行测试并不十分有信心(这里没有冒犯之处,但我们都知道,数天之内很难完成几次点击就很难打破)。

感谢您分享您的想法。

(*)由于晦涩难懂的原因,到目前为止,增加测试人员的数量已不再是一种选择。

(只是在先,这不是重复的,程序员应该帮助测试人员设计测试吗?它讨论测试准备而不是测试执行,我们避免了开发人员的牵连)


编辑以精确,我们的开发人员正在做他们的单元测试。我担心单元测试之后的阶段,即质量检查人员进入循环的时间。
LudoMC 2010年

嗯,在“绝对明确的是”和“绝对不是”之间很难选择。会多考虑一下,等待其他答案或对答案的评论有更清晰的认识。
LudoMC 2010年

好的,我接受了一个答案,但也投票赞成了其他一些为该问题提供充分论据的答案。谢谢大家。
LudoMC

Answers:


13

从字面上看您的问题(“参与”)我唯一的回答是绝对明确的

开发人员永远不要对自己代码拥有最终决定权。

但是,开发人员应参与测试其他开发人员的工作。它有两件事:

  1. 它为开发人员带来了测试的见识。这既来自一般情况,即仅知道在给定时间点可能正在使用哪些API,这些API可能产生的异常以及如何处理它们。这对特定项目也有帮助,因为开发人员比QA通常更多地了解为什么要执行某事的各种讨论,这意味着他们可能会发现QA不会的边缘情况。开发人员发现的错误也可能以较低的成本进行修复,因为开发人员通常会提供更多信息,并提供有关立即修复的更多见识。
  2. 它使开发人员可以接触到他们可能无法接触到的应用程序部分。从长远来看,这将使他们成为该应用程序的更好的开发人员。当我知道API的消耗方式时,比起我只是制定一个规范,我会更好地预测下一步应该做的事情。最重要的是,如果我知道应用程序及其用途,则可以在开始编码之前就确定该规范何时出错

最后,为什么不使用尽可能多的眼睛?您很少需要承担招募和入职流程,以便在紧要关头增加其他质量检查人员。那么,在哪里可以找到所需的额外眼睛呢?还是您一直尝试通过与以往相同数量的质量检查来度过难关?即使开发人员花费20%的时间进行测试,并花费80%的时间修复出现的任何错误,但与以前相比,对应用程序的关注程度仍然更高。自动化测试只能为您提供一定程度的保证,并且永远不会是100%。

http://haacked.com/archive/2010/12/20/not-really-interested-in-lean.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+haacked+%28you%27ve+been+HAACKED%29


+1,因为开发人员应参与查看其他人的代码
Gary Rowe 2010年

我之所以会接受这一点,是因为1-提供的链接(非常有趣,并且与我们的情况密切相关)2-您的答案中的好论据:开发人员不应测试自己的代码,这一事实为他们提供了一个很好的视图应用程序或系统的其他部分。
LudoMC

11

除了单元测试外,绝对没有。开发人员只是对应用程序了解太多,而对于成为客观测试人员则“应该”怎么了解。


2
在很大程度上,我完全同意这一点。但是,该帖子说,质量检查团队负责提出测试用例。假设测试覆盖面很广,我看不出有什么令人信服的理由说明为什么开发人员在将软件发布给QA之前无法通过测试用例。它可能有助于尽早发现错误并减少由于多个错误修复版本而导致的开销。
Pemdas 2010年

2
我不同意这种观点,因为在功能测试期间拥有开发者的眼睛可能会非常有益。开发人员是宝贵的资源,因此不应进行过时的测试场景,而是可以建议测试人员在何处更有效地破坏应用程序(使测试人员的生活更有趣……)
Gary Rowe 2010年

GR ...总的来说,我同意您关于开发人员要珍惜资源的说法,但是这里的问题实际上是关于重新安排他们已经拥有的资源以确保足够的测试覆盖率。如果这意味着开发人员必须进行一些Qaish测试,那就这样吧。
Pemdas 2010年

8

开发人员和Qs在测试理念上的根本区别在于:程序员通常对其程序进行测试以证明其代码有效(“积极”测试)。质量检查可以并且确实可以做到这一点,但是还可以 通过尝试破坏软件(使用“负面”测试)来进一步找出无法解决的问题。

在一定程度上,质量保证人员可能被“证明”该软件正常工作的程序员测试所破坏,开发人员测试和质量保证测试之间应该隔离。开发人员当然可以通过演示有效的方法来帮助QA测试,但是要由QA来独立验证软件是否正常运行

程序员可以协助测试工作的最好的办法就是提供一个全面,高质量,可验证的单元测试套件,其中包含符合需求文档中各个需求的测试。


2

在测试方面,有3种类型。

黑盒,灰盒和白盒。

黑匣子是指在不了解产品内部工作原理的情况下测试产品的用户。

灰色框是指对计算机编程有所了解但对开发团队没有了解的高级用户。这些人将测试产品是否存在内存泄漏,系统要求问题等。

这是主要部分:白框表示开发人员在代码级别对产品进行测试。这意味着要说他们进行单元测试,调试等。

因此,最好让用户和开发团队都参与测试阶段,但是根据测试内容的不同,每个测试都需要用户和开发团队提供适当的承诺级别。


2

所有开发人员都必须进行单元测试

有关如何将其用于您的利益的信息,如果您从事C ++开发,请通读以下链接:

质量检查人员无法进行这些测试。没门。


我同意,但我是反问。开发人员应参与通常仅由QA人员参与的测试(不包括单元测试)。
LudoMC,2010年

1

假设该项目有大量开发人员,那么一定要让开发人员进行测试。一个警告是开发人员不要为自己的代码进行测试(不包括单元测试)。


为未测试自己的代码(或至少不是单独测试)的开发人员+1
LudoMC

0

我宁愿看到管理人员(或实际的潜在用户)也不愿进行开发人员的质量检查。谁不知道产品如何设计工作,就需要尝试使用它。开发人员在进行测试的方式上往往非常有限,坦率地说,每小时的成本太高,无法用于质量检查测试。


0

你写:

问题在于,由于资源问题(*),测试阶段太长,并且由于时间限制,通常会缩短,这是因为开发人员未进行测试。提供最佳稳定产品的最大互联网公司之一根本不使用测试仪。他们仅使用自动测试,所有测试均由开发人员自己完成。结果是与开发人员将测试交给“测试人员”相比,x10产品更好。

就像让建筑工人盖房子一样,但是要有一个不同的团队来确保建筑物实际站立,门打开和关闭,空调正在工作等……建造建筑物可能要花费10倍,并且大多数最终不可靠。

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.