极限编程需要图表工具吗?

时间:2010-02-10 11:33:36

标签: agile methodology extreme-programming

我一直在试验XP中的一些概念,如下所示:

  1. 结对编程
  2. 测试第一次编程
  3. 递增递送
  4. 无情重构
  5. 到目前为止一直很好,直到我有一个重要的残余:

    如果没有任何代码,我如何设计我的测试用例?我有什么基础来设计它们?从简单的假设?从最初的要求?

    或者这是UML图和“分析阶段”适用的地方吗?

    只是不得不问,因为在我读过的一些XP书中,几乎没有讨论任何图表工具(有一个建议我想出了伪代码和某种流程图......但它确实不帮我写我的测试)

4 个答案:

答案 0 :(得分:6)

敏捷流程通常是基于纸张的,但这会产生一些在企业环境中可能不正确的基本假设。

即使您的团队已经分发,您仍然可以使用笔和纸(使用彩色扫描仪)或白板(使用便宜的数码相机)。以这种方式捕获图像比尝试使用更专业的软件工具更敏捷,因为您倾向于专注于解决问题,而不是驱动工具或调整视觉呈现。

  

如果没有任何代码,我如何设计我的测试用例?   我有什么基础来设计它们?   从简单的假设?从最初的要求?

如果您足够幸运,可以从最初要求和与“现场客户”讨论的用户故事开始。

这个想法是你在代码之前编写测试,以便你知道什么时候完成。从开始编写测试到测试运行和通过的点,代码可能无法正确运行,甚至无法编译。这类似于传统的“测试最后”开发,除了代码被破坏的时间往往更短,并且保证最后有一个测试。

它改变了“我接下来要编写什么代码?”的动机。 “接下来要写什么测试?”只要您对要做的事情有一个基本的了解,第二个问题就更容易回答。

答案 1 :(得分:5)

  

如何设计我的测试用例   还没有任何代码吗?从何而来   我必须设计它们吗?从   简单的假设?从最初开始   要求?

要编写测试,您不需要任何代码。您知道您的输入,并且您知道您的预期输出。因此,您可以设计一个测试用例来实现它。

我认为UML和XP之间没有任何紧密关系。 UML用于设计软件,XP是您开发该软件所遵循的过程。所以请尽可能澄清问题。

答案 2 :(得分:5)

测试用例来自初始要求。它们指定了你要构建的内容,那么测试还来自哪里呢?

您可能会发现一种有用的技术是将一个特征分解为三个元素:给定,何时,然后。 给定是初始数据,是程序调用时,然后是期望的结果。关键是,您无法分析的任何要求可能不正确,或者至少需要进一步的细节。

Google测试团队非常喜欢这种方法,并在博客上发表了大量博客。 Find out more.

答案 3 :(得分:2)

XP没有“分析阶段”。

您不需要使用带有XP的图表工具,但如果您选择使用它,则无法阻止您。

您想要建模什么?

听起来您想要描述问题域(即用于分析的建模)而不是记录实现。 XP不像传统方法那样工作,其中一位专家做“分析”而另一位做“编码”。在XP中,分析师可能是一名开发人员,与业务中的某个人一起工作,共同打破用户故事并对其进行估算。

通常不会开始记录测试用例 - 我们在代码中编写自动化测试,无论是代码还是可执行规范,例如JBehave或cucumber。它与绘制图表的努力差不多,但投资回报率更高。