11

在我公司,我们开发软件产品。到目前为止,我们还没有任何测试人员,所以基本上开发人员就是测试人员,当然还有客户和用户(不好)。

我们的团队现在由 4 名开发人员组成,主要使用 Cruisecontrol、Flex、ASP.NET、IIS、MSSQLServer 和 WebORB。我敦促经理们聘请测试人员,但我想知道测试人员在软件开发中是否正常。所以:

  1. 产品(或大型项目)开发中是否需要测试人员?
  2. 测试人员应该只做测试工作吗?或者您可以期望开发人员或图形设计师在半周内进行测试吗?
  3. 你在哪里可以找到好的测试人员(我想没有软件开发测试学位)?
  4. 测试一切是否是技术团队项目经理的任务?

谢谢,列文卡登

ps:谢谢,Vinay,我们确实有单元测试,但实际上,单元测试不能涵盖测试人员可以做什么。

4

10 回答 10

7

1) 产品(或大型项目)开发是否需要测试人员?

是的。有人必须负责评估什么时候测试了足够多的东西,并找出哪些错误需要修复或可以发布,因为有变通方法。

2)测试人员应该只做测试工作吗?您能期望开发人员或图形设计师在半周内进行测试吗?

测试人员经常做客户支持工作或与客户一起开发需求。测试人员可以充当客户的内部声音……如果他们与客户进行了足够多的互动,他们应该有责任感,从他们知道客户想要的开发中获得合适的优质产品。

3) 你在哪里可以找到好的测试人员(我想没有软件开发测试的学位)?

我敢打赌,某处有学位。我们的很多测试人员都是计算机科学专业的大学生,他们在工业领域工作了一年,然后再回到大学的最后一年。

4) 测试一切是否是技术团队项目经理的任务?

不必要。这取决于团队有多大,如果它很小,那么是的,有人可以加倍并担任这两个角色。但是,对于更大的项目,这些是不同的人。


记住。拥有测试人员并不是开发人员/程序员在编写代码或创建单元测试时不测试代码的借口。开发人员仍然有责任开发一个好的产品。他们永远不应该试图通过指责测试人员没有找到它来为他们创建的错误找借口。

于 2009-02-08T12:10:48.883 回答
3

这是 Joel 测试的第 10 题:

http://www.joelonsoftware.com/articles/fog0000000043.html

应该告诉你你需要知道的一切。:)

于 2009-02-08T11:14:12.773 回答
2

团队中最好有测试人员。我们,开发人员在测试时不能得到这么多的缺陷,但是如果它是由测试人员测试的,那么他会在发布缺陷之前捕捉到这么多的缺陷。

最好也有单元测试用例。当我们开发一个新特性时,我们只需要更新测试用例并运行它。

于 2009-02-08T10:43:42.147 回答
2

在这两种情况下都需要测试人员。即使您的开发是测试驱动的,我认为测试人员的角色通常侧重于项目的外部需求——项目是否交付了能够满足需求的预期产品?

我发现在大型企业环境中,呼叫中心或提供客户服务的人员通常拥有一批优秀的测试人员。他们通常对业务流程、问题和需求有非常深刻的理解。

在这种情况下,我们经常让测试人员在后端系统中构建真实的测试用例,有时这些甚至被开发人员编写的集成测试使用。我们在让开发人员测试人员询问数据/场景以测试基于 CI 的自动化测试方面取得了巨大成功。

可以期望其他角色参与测试。我真的认为每个人都应该专注于质量和测试,但不幸的是每个人都不能负责。

于 2009-02-08T10:51:27.983 回答
2
  1. 从一定规模开始,绝对是(我会说大约 10 个开发人员)。

  2. 测试人员还可以进行构建和集成工作。在较小的小组中,开发人员必须进行测试,因为没有其他人可以这样做。

  3. 好问题。也许您的一些开发人员喜欢测试。

  4. 不,尤其是当项目变得更大时。

我参与过一个大型项目(数百名开发人员),在我们的团队中大约有 50 名。我们小组有一个由两三个全职人员和一群学生组成的集成和测试小组。

于 2009-02-08T10:52:46.450 回答
2
  1. 大规模,是的。然而,有许多不同的方法和类型的测试。这些包括用户、回归、单元和集成测试。尽可能多地尝试自动化。查看 Selenium (IDE)、Molydbenum、使用场景和敏捷开发。

  2. 开发人员或设计师应该确定他们是否符合验收标准,但如果他们测试自己的工作,那么这有点像在你参加考试之前编写自己的考试。在我看来,测试其他开发人员工作的开发人员并没有好多少。

  3. 不知道

  4. 我认为项目经理没有时间进行严格的测试。这确实是一个敬业的测试人员的工作,他知道要勤奋,并且可以与项目经理互动。

于 2009-02-08T11:56:19.270 回答
2
  1. 产品(或大型项目)开发中是否需要测试人员?
  2. 测试人员应该只做测试工作吗?您能期望开发人员或图形设计师在半周内进行测试吗?
  3. 你在哪里可以找到好的测试人员(我想没有软件开发测试学位)?
  4. 测试一切是否是技术团队项目经理的任务?

1 - 当您拥有超过 10 个客户时进行产品开发:地狱是的。基本的。在大型项目中也是如此。当你很小的时候你可以吝啬,但是一旦你超过了一定的规模,更新(例如)全球 100 个客户的痛苦甚至超过了一个测试员的薪水。

2 - 是的,虽然支持工作也有一些重叠。开发人员应该进行基本测试——它有效吗?- 但由测试人员进行详尽的、端到端的、奇怪的用例类型测试。我认为这样做是在浪费开发人员的时间。平面设计师不应该测试——好吧,我希望他们是用户测试,但那是在它到达开发人员之前。

3 - 一些开发人员是优秀的测试人员。一些支持人员会成为优秀的测试人员。除此之外 - 只是随机找到它们。广告。等等。没有学位,但是一个迂腐的人,可以坚持自己,并且比每一行代码的工作方式更了解最终环境如何组合在一起。

4 - 没有。PM 将项目放在一起,并协调测试人员、开发人员等。技术负责人应该,你知道,领导技术团队。不测试。

显然,角色之间存在泄漏。有时,每个人都应该做一些测试,但这更多是为了在 RTM 之前获得最大的覆盖率,而不是每天或每周。

单元测试是一个很好的开始,因为它们会捕捉到逻辑错误,但不能指望它们捕捉到疯狂的用户交互,或者只有在你的应用程序运行 72 小时后才会出现的问题——单元测试永远不会捕捉到这些. 您的客户会,但是您不会有很长时间的客户:)

顺便说一句,我“去过那里,做到了”。我已经在客户身上进行了测试,并且在同一产品的不同阶段(初创公司收购了一家大公司)有合适的测试人员。一旦我们有了测试人员,产品就会变得更加可靠,客户也更开心(另外,很难将一个小的关键补丁推广到全球 400 个站点 - 在它发货之前抓住它!)

于 2009-02-08T12:32:21.930 回答
2

永远不要低估专家的价值。

大多数不是测试人员的人,尤其是开发人员,不喜欢测试,也不会做好。如果您要求平面设计师或开发人员将一半的时间用于测试,那么您最多会损失 50% 的优秀设计师/开发人员的输出,而获得 50% 的差劲、昂贵的测试人员。在最坏的情况下,你会完全失去他们,因为他们会找到更好的工作场所。

对于开发人员来说,他们通常离代码太近而无法客观地对其进行测试。他们将根据对内部的了解做出假设。开发人员测试自己的代码尤其糟糕。

项目经理应该负责确保一切都经过测试,但他们不应该自己做。他们将没有足够的时间或必要的专业知识。

我之前在一家咨询公司工作。我们没有专业的测试人员,而是使用目前没有项目的顾问。他们都没有任何测试专业知识,因此他们中的大多数都不是很好的测试人员。我们会收到诸如“系统不再工作”之类的错误报告或我个人最喜欢的错误报告:显示它有多慢的应用程序屏幕截图(快速运行的应用程序屏幕截图看起来不会有任何不同)。他们也会滥用错误跟踪系统(或完全绕过它,转而使用他们自己的自制 Excel 电子表格)。这是一场噩梦。

于 2009-02-08T14:08:26.040 回答
1

我认为测试人员(可以)带来的是对产品的全新看法。我发现在运行软件时我可能会走上幸福的道路,无论是通过 UI 交互还是使用我编写的类。当您知道某件事情应该如何工作时,以错误的方式做事,以非预期的方式使用产品或以没有人知道它如何工作的人的顺序尝试事物,这有点不自然做。

我对您的问题的回答如下:

  1. 是的。测试是必要的,因此需要某种测试仪。通常,单元测试会发现很多低级问题,但可用性测试和“需求”测试会确定它是否满足光面手册上的要求。如果您声称您的软件执行“X”,那么测试人员的部分工作就是确保它确实执行“X”。我们让测试人员在我通常不使用的平台上发现了一些问题。尽早发现这些问题是件好事。

  2. 也许。我们在内部交叉测试我们的产品,但也有一个单独的测试组。我们倾向于(内部)发现大部分问题,但全职测试人员有时会发现我们可能从未发现的东西。如果您在开发和测试之间分配时间,则需要明确测试不是事后的想法。如果我的开发工作负担过重并且很难花费必要的时间来测试您的产品,那么我作为测试人员就不会那么有效。如果您要让开发人员兼任测试人员,时间管理是必不可少的。

  3. 没有把握。组织中的某些组(例如 IV 和 V 组)只进行测试。我怀疑有很多人没有业务或没有编写软件的愿望,但可以测试产品的性能。在我上一份工作中,我们一些最好的测试人员根本没有编写任何代码。

  4. 取决于你的项目,但我一般会说不。责任是在我的店里传播的东西。领导不负责所有测试。我们都有责任。

无论如何,那是我的两分钱。

于 2009-02-08T14:26:11.200 回答
1

每个人都会说需要测试人员,这是政治正确的答案。但测试人员只是质量保证工具箱中可用的众多工具之一。您可以在没有测试人员的情况下发布完美的软件。例如,我想知道 Stackoverflow 是否有测试部门?

测试人员将测量您的开发人员生成的代码的质量。但是质量测量的可用性对提高质量没有任何帮助。

测试人员不是免费来的。您必须更改开发以交付给测试团队而不是客户。这可能导致客户和开发人员之间的脱节:测试人员可能会发现客户不关心的错误,而忽略对客户非常重要的错误。此外,您还必须创建和维护一个单独的测试环境。

好的测试人员会帮助你更好地开发,尤其是更顺利地发布。但是你的里程会有所不同。

PS 在大公司中,测试人员是必不可少的:他们可以转移责任。说一个错误会导致客户伤害-> 高管很不高兴。在这一点上,高管已经准备好对你的团队做一些讨厌的事情了。有了测试团队,你可以把责任推给测试团队,测试团队又把责任推给你。妥协推出:你引入新流程,测试团队雇佣更多的测试人员,主管说他个人改进了东西。

于 2009-02-09T14:47:54.917 回答