要求还是测试?

时间:2008-12-06 03:09:15

标签: testing project-management project-planning requirements

如果你不得不在一个软件项目中没有这个,那你会选择哪个? 我有很多项目,客户或PM认为他们可以在没有其中一个的情况下逃脱。我们总是付出代价。

13 个答案:

答案 0 :(得分:8)

转过身来,在我身后重复:“测试是要求。” : - )

答案 1 :(得分:6)

如果您的意思是“正式要求”,我可以轻松地做到这一点。我更喜欢一个活生生的呼吸客户,他可以告诉我他们想要什么,而不是严格的,过时的文件。切换到TDD后,我不想再回到“无测试”环境。我选择非正式要求 - 故事,现场客户和客户书面验收测试 - 超出正式要求而不进行测试。

答案 2 :(得分:5)

我会说你可以不用测试而不是要求。如果您没有要求,您如何知道自己在开发什么?

如果程序员足够好,他们应该能够捕获测试会发现的大多数令人震惊的错误。

答案 3 :(得分:3)

您必须针对要求进行测试,因此如果您没有要求,则无法进行测试。因此,如果你必须选择一个,你只能选择要求。

但不进行测试是失败的途径。保证。

答案 4 :(得分:2)

如果我 选择一个,那就是要求 它不一定是一份包含20个签名的正式,令人难以忍受的详细文档,但您 确切地知道客户想要的,更重要的是客户需要

这些要求也是您与开发团队的第一次沟通。如果你没有清楚地问它,他们怎么会知道你在问什么?充其量你正面临构建错误事情的严重风险。我宁愿把正确的东西弄错了。

答案 5 :(得分:2)

如果我被要求在要求或测试之间做出选择,我会选择改进我的简历。在任何项目中你都离不开,因为基本的项目生命周期是:

  1. 定义需求/目标(AKA要求)
  2. 设计&建立要求
  3. 验证您是否符合规范(符合要求。)
  4. 如果您没有可验证的成功标准和目标(然后经过验证),您如何确保自己获得成功?如果你没有机会成功,为什么要开始这个项目?

答案 6 :(得分:1)

我会说需求,因为在开发软件时,客户端似乎总会出现某种程度的“功能蠕变”。测试是SDLC中的关键部分之一。

答案 7 :(得分:1)

要求和测试对大多数项目都很重要,但如果你真的需要选择,你应该满足要求。选择需求而不是测试的一个优点是,您可以节省一些开发时间,因为开发人员知道他们必须构建什么,如果开发是在额外的时间内完成的,您可以将时间分配给测试:)< / p>

答案 8 :(得分:1)

测试(功能和集成)比要求更重要;如果您可以指定测试,那么您还指定了要求,至少是隐含的

注释也是开发人员文档,单元测试是如何“快速启动”示例; - )

答案 9 :(得分:1)

不确定要求是否被称为人工制品或过程。虽然可以跳过作为人工制品的要求,特别是对于较小的团队而且仍然提供产品,但跳过需求作为流程是不可能的。作为人工制品的要求让您能够以低于构建整个系统的成本对系统进行建模,进行可行性,估计,以及为更大,更分散的团队减少通信开销并在脚下有共同点。忽略要求,你得到虱子估计(无论你预先计划很多或只是做短暂的冲刺),可靠性不好,可能非常低效的沟通和很多误传。

另一方面,作为一个过程的要求无论是否被正式承认都将存在。您无法真正排除它,您可以假装需求流程不存在或集成到设计,编码,测试或分阶段,直到试用和维护。显然,以这种方式处理过程意味着它不会获得相当多的关注和资源。后果通常包括从提供最终无用的东西到必须在开发周期后期修复产品现在明显的缺点,或者甚至在产品在现场发生故障后发现真正的需求,增加开发成本,在最后期限上违约,毁了团队的好名声,破坏了用户的信心等。

测试通常归结为验证和验证,最近测试技术改进使自动化测试成为实现更高调试效率和减少回归测试所需时间的可靠工具。验证确保团队已经构建了正确的产品,即范围要求是正确的,而不是矛盾的,并且没有差距。另一方面,验证是确保产品正确构建:没有技术缺陷,意外错误等。

正如我们所看到的,在需求被忽略的情况下,测试提供了一个安全网。通常,当团队开始测试时,他们需要完善对需求的理解,从而修改软件。由于需求假象和软件本身在为现实生活问题建模解决方案时只表示不同级别的保真度,并且作为模型的软件更精确,因此应用程序的测试也会评估需求(无论它们是隐式还是显式) ,正式分析或非正式沟通)。

通常,测试的替代方法是让用户报告大量的缺陷和缺点,并尝试将其作为维护的一部分进行修复(意味着在产品生命周期的后期),从而增加每次修复的成本。

所以要求与测试相比?解雇经理。好的,如果您希望在测试阶段期间项目计划失误并且让自己陷入构建而不是用户需要的混乱中,请跳过测试,如果您只是需要对用户表示完全不尊重,请跳过测试。

答案 10 :(得分:1)

没有要求,您不需要测试,因为您最终得到的就是规格

答案 11 :(得分:0)

有些类别的软件可以在没有要求的情况下完美地开发,至少不仅仅是模糊地表达电子邮件的长度。

事情是,如果你有一个特定的客户和一个项目经理,你的软件就不可能在其中一个。不太可能有人专门付钱给你,比如说,“让我玩一个有趣的游戏,包括一只杂耍的猴子”。

唯一可以在不进行测试的情况下开发的软件类型是failware:您的公司设法吸引某些客户支付该软件是否有效(或者如果您有真正愚蠢的客户)如果不起作用,支付和维护费用更高。)

这可能更有可能:合同的结构使得成功比失败更有利可图仍然相当普遍。如果你认为是这种情况,并且你想开发工作软件,那么考虑转换到你的兴趣和你的老板不那么反对的工作。

答案 12 :(得分:0)

没有要求,我们可以制定测试计划吗?所以即使我们选择测试而不是需求,我们也不能进行测试。

因此即使您考虑敏捷测试环境,要求也应该是优先级。