测试人员做什么?

时间:2009-02-08 12:56:52

标签: testing

我在一家公司工作,开发人员在其他开发人员的工作中检查诸如遵守编码标准以及是否有效等事情。

现在这似乎对我们非常有效,但我不禁感到我们在专门的测试人员或测试人员可以做的事情上浪费了开发时间。

问题是我一直在为这家公司工作,所以我从未与测试人员合作,所以不知道他们在开发团队中有什么功能,而不是“他们测试”的英里高视图。

我们也倾向于聘请研究生水平的人,所以有人必须在一段时间内指导他们完成所有任务。

总之,测试人员在公司内部做了什么,他们如何适应您的开发和发布流程?

12 个答案:

答案 0 :(得分:11)

他们的工作简单明了。打破申请。你总是知道什么时候你有一个好的测试人员,因为当那个人来到你的桌子/立方体时,你总是有点恼火。这样做的原因是你知道,如果测试人员在你附近,他们发现你写的东西有问题。所有的借口都开始堆积在你的脑海中,“好吧,你没有正确使用它!”等等,但最后,你知道测试人员是对的,而你在编程中犯了一个错误。

优秀的测试人员可以找到错误。他们可以像用户一样思考,验证业务规则等,但当用户点击异常模式强制您的应用程序中断时,他们也会像用户一样行事。看起来他们滥用应用程序并以某种方式使用它并不意味着使用它,但这就是他们的工作,这就是为什么他们作为测试人员获得报酬的原因。

你知道你的测试仪在找不到任何错误时需要更换。相信我,在任何复杂的系统中,总有某些错误,并且找到它是测试人员的工作。

话虽如此,使用专门的测试人员至关重要,特别是在处理任何具有大量UI组件的应用程序时。

答案 1 :(得分:9)

David's answer之后,一位优秀的测试人员非常重视他或她的黄金重量 - 而且合同测试人员的成本非常高。

几年前我和一位出色的测试人员合作过。我当时是技术领导者,他是我生命中的祸根,但他的价值无法估量。

他非常有组织,非常聪明。他根据有限的需求和功能文档编写了自己的测试计划。大多数情况下,他运行应用程序,并从他对业务的理解,找出它应该做什么,以及它不足的地方。

他对细节的关注简直太棒了。他报告的所有内容都是完全可重复的,有文档记录,并且不仅包含错误报告,还包含备用行为的建议。当然,这非常有用,因为并非所有的错误都会导致应用程序崩溃。

他也足够灵活,可以识别事情的优先级,并且(暂时!)不再讨论我们没有时间做的事情。

因此,我们获得了UI反馈,错误报告,甚至还有关于要求被误解的建议。

他努力学习他所发现的东西,但我们对我们的共同目标,即高质量的系统有了强烈的认可。如果你在外面,尼古拉斯,我祝你好。

对于OP,我建议你找一个有这些技能的人。

答案 2 :(得分:4)

一个优秀的QA部门会做几件事:

  1. 根据产品的功能规格编写测试计划。这有助于清除功能规范并找到需要改进/更改的区域。
  2. 查找产品中的错误这一点很明显。
  3. 从非开发人员的角度测试产品的可用性。这个远远超出了发现错误的范围 - 如果没有人能够弄清楚如何使用这个东西,那么拥有无错产品对你没有任何好处。
  4. 关于它们如何适应这个过程:

    1. 一旦开发团队认为功能规范已经完成,就会给QA团队以便他们编写测试计划
    2. 当开发团队具有相对稳定的构建且具有合理数量的功能时,可以将其提供给QA,以便他们可以开始查看它。在这一点上,QA的重点只是熟悉新版本,并指出任何明显的可用性缺陷,而不是锤击事物来发现错误。
    3. 一旦开发人员说“好的,我认为我们已做好准备”,QA就会开始寻找漏洞。
    4. 开发人员和QA致力于解决所有问题。错误都被修复,删除或推迟到将来的版本中。
    5. QA最终决定是否发布该版本
    6. 请注意,上述3和4可能会有很大差异,具体取决于您是在谈论新产品还是现有产品的发布。如果您有现有产品,并且可以与开发同时进行大量测试。

答案 3 :(得分:3)

理想情况下,测试人员应该从项目的早期开始参与,以便他们能够制定测试计划。除其他外,这将涉及创作测试脚本。实际的书面测试脚本对于可重复测试很重要(例如,对于新版本的回归测试)。除测试功能外,该计划还将涵盖不同平台的测试,测试可用性和测试性能。

测试人员执行测试计划并查找和报告具有足够详细信息的错误,以最大限度地减少开发人员修复错误的工作。这意味着要花时间弄清楚如何重现问题。测试人员通常比开发人员的成本更低,因此如果测试人员这样做,那么对公司来说这比留给开发人员更好。测试人员往往也会更好,因为他们没有做出开发人员所做的假设。

测试人员不应该真正进入检查遵守编码标准的领域 - 这最好留给自动化工具。测试人员不需要查看源代码。

如果有一个好的测试人员在一个项目上全职工作,他们很快就会成为需求的专家(比那些只在部分系统上工作的开发人员更多)。

答案 4 :(得分:2)

程序员测试代码,测试人员测试应用程序。测试人员阅读规范,考虑可能导致问题的情景(如果两个人同时这样做会怎么样?)等。

他们然后记录一系列测试,尝试它们,报告结果等等。

答案 5 :(得分:2)

请参阅Joel的Top Five (Wrong) Reasons You Don't Have Testers,了解测试人员的行为及其对软件公司的好处。

答案 6 :(得分:2)

开发人员任务:

  • 从内到外 - 专注于代码
  • 断言 - 验证数据流和结构
  • 调试器 - 验证代码流和数据
  • 单元测试 - 验证每项功能
  • 集成测试 - 验证子系统
  • 系统测试 - 验证功能

测试人员任务:

  • 从外面开始 - 专注于功能
  • 情景 - 验证现实情况
  • 全球测试 - 验证可行输入
  • 回归测试 - 验证缺陷是否保持不变
  • 代码覆盖率 - 测试未触及的代码
  • 与先前版本的兼容性
  • 寻找怪癖和粗糙的边缘

答案 7 :(得分:1)

传统上,在大型IT服务公司中,测试人员的角色往往与所采用的开发流程的性质略有不同。传统的瀑布或迭代项目往往涉及测试人员设计测试计划,编写测试用例并在该过程中澄清需求,执行它们(手动和自动)以及清除应用程序以进行生产移动。他们还对可能受到影响的其他应用进行回归测试。在大多数情况下,他们从不查看代码,但在某些特殊情况下,他们确实验证了数据库条目,尤其是在涉及批处理作业或其他遗留系统的情况下。

另一方面,敏捷项目越来越多地导致测试人员和开发人员的职责模糊不清。使用像Rails或Django这样的框架,开发人员可以比以往更好地了解“大局”,因此拥有一个庞大,专注,纯粹的测试团队通常没有意义。凭借永久的beta理念,测试的很大一部分是由实际的最终用户完成的。因此,一个更精简,更精通开发的测试团队倾向于帮助敏捷项目(至少在企业内部)。除此之外,它还有助于测试人员将脚本放在一起以自动化常规测试用例,而不必依赖昂贵的工具(如Win / Loadrunner)

平均而言,测试人员的动机水平往往低于开发人员。至少在我的组织中,许多测试人员希望“成长”成为开发人员,尽管他们中的一些人确实知道成为QA / Assurance顾问本身就是一种职业。

答案 8 :(得分:0)

你应该雇人来做测试。

测试人员使用该应用程序并报告他们发现的错误。如果您有规范,他们可以针对它测试应用程序以报告任何不一致。

如果未经过测试,任何产品发布都不具备质量。

答案 9 :(得分:0)

实际上最近我已经意识到如何从一个好的测试人员那里告诉一个坏的测试人员。当任务被关闭,因为没有发现错误,一小时后你自己崩溃应用程序,因为你觉得“这很愚蠢,但如果做出那种输入将会发生什么?”并且做到了,这是一个好的迹象,表明某人(测试人员)没有做好自己的工作。

我经常在我们的软件中的某个地方报告错误,而且我总是喜欢“那不是我应该这样做的人”。

答案 10 :(得分:0)

为了更好地处理这个问题,我强烈推荐Gerry Weinberg的书“完美软件:以及关于测试的其他幻想”(sanitised Amazon link)。

它充满了极好的见解,可以让您考虑以全新的方式进行测试。

HTH

欢呼声,

罗布

答案 11 :(得分:0)

与您的情景相反,我一直与测试人员密切合作。我发现他们非常有帮助,因为他们非常了解我的软件在所有方案中的适用范围。他们更了解矿山与之相互作用的应用。在这方面的投入非常有价值。

相关问题