2012-09-28 27 views

回答

4

没有“敏捷测试”这样的事情,但是通常作为敏捷方法的关键组件提供的东西是unit testing,它早于敏捷。这与“传统的结构化测试”有何不同,取决于你的意思。

在敏捷和单元测试的背景下可能会导致您的困惑的其他事情:Test driven developmentcontinuous integration

+1

我完全同意。我会说没有区别,因为'敏捷'是一种合作态度。问题在于代码是否编写完成,然后投向质量保证部门以“他们和我们”的态度进行测试,或者是否有态度编写能够发挥作用的软件并发现需要什么。 –

+0

这与敏捷无关,更多与专业自豪感和良好的测试习惯有关。无论您是使用TDD还是CI,或者您的团队是否敏捷,都应该确保代码正常工作并且质量很好。 TDD和CI当然使这更容易! – jrajav

1

一个敏捷项目通常会更加强调自动化测试,用于集成和验收测试以及单元测试,因为手动测试很快变得太慢而无法频繁发布。

TDD方式从“测试,以发现缺陷”走向“测试作为设计技术”改变的重点。

的mindet可能非常不同 - 敏捷项目中使用测试,以实现快速重构与变革 - 你可以作出重大改变,而不用担心因为测试会告诉你什么是工作。传统项目害怕变化;他们的测试可能不会以相同的方式进行组织,并且可能会抑制变化。

+1

我并不完全同意[刚刚被删除的评论!] - 我认为TDD的主要好处是它会促使您编写更多可测试的代码。一般来说,更多可测试的代码也是其他方式的更好的代码。换句话说,可测试性不会与其他非功能性要求相冲突。它与他们和谐相处。 TDD *是在编写使用该接口的代码之前设计接口的一种方法。在纸上设计界面只能带你到目前为止,没有不成比例的努力。 – DNA

1

这取决于,当然,你如何定义“传统的结构化测试”和“敏捷测试” ......

这是我一直倾向于与测试,以观察其对最有效的敏捷团队我已经看到。

  • 没有一个单独的测试组。测试人员在开发团队中工作 - 不能与其分开。
  • 测试是一个持续的过程,在整个开发过程中都会发生 - 而不是在开发后的单独阶段发生。
  • 测试由整个团队完成,而不仅仅由测试人员完成。最明显的例子就是TDD产生的测试 - 但它也发生在其他地方(例如,产品所有者经常参与帮助定义围绕故事进行的更高级别验收测试)。
  • 测试人员是整个团队测试的教育者和推动者,而不是控制所有测试的瓶颈。
  • 测试人员和非测试人员之间的关系往往是更多的合作/合议而不是敌对。
  • 通常我会发现测试人员在敏捷团队中获得更多尊重。
  • 测试人员在此过程中涉及的时间更早,因此更容易确保生产的系统易于测试。
+0

也许作为一个补充:因为在一个敏捷团队中,您比传统开发人员提供的次数要多,所以测试功能更加复杂。它们特别包括自动化任务以获得更快的结果。 –

0

我要说的到,包括测试软件的实际件可以是相当类似的。

最大的区别是,这样你到达那里。通常在敏捷的环境中,您可以快速处理生产相关性的小型开发工作。这可以是从一个月到两周的任何时间。

这些小故事和更快的期限需要更多的重量轻的要求和更小的碎片的发展是由整个团队决定。测试人员没有时间花时间撰写测试策略文档。较小的迭代允许测试人员专注于仅测试。

鼓励大家在同一页面上通常会减少返工量。由于每个人都在研究较小的部分,通常软件的构建和部署更频繁。这导致对建造良好的CI环境的强烈关注。 CI是600页的话题,所以我会留给你进一步研究。

对我来说,最大的不同在于团队的心态。每个人都在一起合作发布软件。敏捷在消除开发者与测试者的距离方面做得很好。而不是争论谁是过错(测试不好,代码不好,需求不好等)。小组一起工作来解决问题。公司必须通过消除缺陷计数或其他阻止团队工作的统计数据来鼓励这种情况自然发生。

0

您所遵循的方法论,产品质量的基本原理都是一样的。从瀑布到敏捷的变化在于,测试在sprint的早期开始以及如何执行测试。随着TDD等实践的进行,测试的重点也有所改善。

从单元测试到系统测试和验收测试,所有这些测试都以新的方式进行。例如:现在,在开发过程中,Tester可以参与像'show me sessions'这样的会议,他可以提供早期反馈。

在sprint中工作已经促使我们在演示之前的每个周期和验收测试中进行回归测试。所以事情如何从敏捷变为瀑布(结构化测试)