2009-02-08 114 views
7

我在一家公司工作,其中开发人员QA是其他开发人员检查诸如遵守编码标准的工作以及是否有效的工作。测试人员做什么?

现在,这似乎运作得非常好了我们,但我不禁感慨,我们在一些专门的测试或测试人员可以做浪费开发时间。

的问题是我一直工作了这家公司,所以我从来没有与测试人员的工作所以不知道他们有比“他们这样做测试”的一英里高视图以外的开发团队中的哪些功能。

我们也倾向于聘请研究生水平的人,所以有人会要引导他们通过自己的所有任务的时间。

总之,测试人员在您的公司内做什么以及它们如何适合您的开发和发布流程?

+1

在我看来,你应该考虑聘请有经验的人来运行你的测试部门,而不是一个新的毕业生,并希望他得到它的权利 – MattBelanger 2009-02-08 13:39:23

+0

我刚刚注意到这个非常类似的问题今天也问:http://stackoverflow.com/questions/525514/testers-in-software-development – 2009-02-08 13:49:44

+0

@mabwi是的,那会更好,但我更可能说服管理层雇用一个初级。 – 2009-02-08 13:56:54

回答

4

一个好的QA部门将做几件事情:

  1. 根据产品的功能规范撰写测试计划。这有助于清除功能规格并找到需要改进/更改的区域。
  2. 在产品中查找错误这一点很明显。
  3. 从非开发人员的角度测试产品的可用性。这一点远远超出寻找错误的地步 - 如果没有人能够弄清楚如何使用这些东西,那么获得一个无缺陷产品并不是一件好事。

至于他们如何适应过程:

  1. 只要开发团队认为该功能规格齐全,其给QA团队,使他们能够编写测试计划
  2. 当开发团队具有相对稳定的构建和合理数量的功能时,可以将其发给QA,以便他们开始查看。在这一点上,QA的重点只是熟悉新版本,并指出任何明显的可用性缺陷,而不是用锤子来寻找错误。
  3. 一旦开发人员说“好,我认为我们已经准备好了”,QA就会开始发现bug。
  4. 开发人员和QA致力于解决所有问题。错误全部修复,丢弃或推迟到将来的版本。
  5. QA对发行是否被让出了门

注意,3和4上面可以根据您是否正在谈论的是一个新的产品或的释放有很大的差异说了算现有产品。如果你有一个现有的产品,并且很多测试可以与开发同时进行。

0

你应该雇用人来做测试。

测试人员使用应用程序并报告他们找到的错误。如果你有一个规范,他们可以对它进行测试来报告任何不一致。

没有产品发布可以质量,如果它没有测试。

+0

我们目前是这样做的,但是通过开发人员,但我不明白这是否能完全占用测试人员的时间,如果这是他们所做的一切。 – 2009-02-08 13:06:28

+0

任何时候他们花费不了的时间去测试他们花费的时间来阅读规范并思考他们以后可以测试的问题。他们也记录了很多。 – 2009-02-08 13:08:16

11

他们的工作简单明了。打破应用程序。你总是知道什么时候你有一个好的测试人员,因为当这个人来到你的办公桌/立方体周围时,你总是有点恼火。原因是您知道如果测试人员在您附近,他们发现您写的内容有问题。所有的借口开始堆积在你脑海中的'呃,你没有正确使用它'等等,但最后你知道测试者是正确的,而且你在编程时犯了一个错误。

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

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

话虽这么说,这是最重要的是使用专门的测试人员,与具有一个沉重的UI组件的任何应用程序时尤其如此。

2

程序员测试代码,测试人员测试应用程序。测试人员阅读规范,想到可能导致问题的场景(如果两个人同时进行此操作,该怎么办?)等等。

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

0

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

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

9

David's answer开始,一个好的测试人员是值得他或她的黄金重量的 - 而好的合同测试人员可能会非常昂贵。

几年前,我与一位优秀的测试员一起工作。当时我是科技领先者,他是我生命中的祸根,但他的价值无法估量。

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

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

他还有足够的灵活性来识别事情的高优先级,并且(暂时!)停止为我们没有时间做的事情提供麻烦。

所以我们得到了用户界面反馈,错误报告,甚至对需求被误解的地方提出了建议。

他用我发现的一切努力了我,但我们对我们的共同目标高度认可,即高质量的系统。如果你在外面,尼古拉斯,我希望你好。

对于OP,我建议你寻找具备这些技能的人。

3

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

测试人员执行测试计划,发现并报告具有足够细节的错误,以最大限度地减少开发人员修复错误的工作量。这意味着花时间确定如何重现问题。测试人员的成本通常低于开发人员,所以如果测试人员这样做比对开发人员来说这样做更好。测试人员往往会做得更好,因为他们没有做出开发人员所做的假设。

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

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

0

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

它充满了优秀的见解,让您以全新的方式思考测试。

HTH

欢呼声,

罗布

0

与此相反的情况下,我一直与测试人员的工作。我发现他们非常有帮助,因为他们明白我的软件适用于所有方案。他们更了解我矿相互作用的应用。在这方面的投入是非常有价值的。

2

开发任务:

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

测试任务:

  • 从外面 - 专注于功能
  • 场景 - 验证真实世界的情况
  • 全球测试 - 验证可行的投入
  • 回归测试 - 验证的缺陷留固定
  • 代码覆盖率 - 测试原始代码
  • 兼容性 - 与之前发布
  • 寻找怪癖和粗糙的边缘
1

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

另一方面,敏捷项目越来越模糊了测试人员和开发人员的责任。使用像Rails或Django这样的框架,开发人员比以往任何时候都对“大局景观”有更好的看法,因此拥有一个庞大而专注的纯测试团队通常没有任何意义。以永久的测试版理念,大部分测试都由实际的最终用户完成。因此,一个更精简,更开发精通的测试团队倾向于帮助敏捷项目(至少在企业内部)。除此之外,测试人员可以将脚本放在一起来自动执行常规测试用例,而不必依赖昂贵的工具(如Win/Loadrunner)。

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

相关问题