在生产中运行的单元测试一次性代码是否有意义?

时间:2010-02-19 01:04:57

标签: unit-testing testing

单元测试的主要好处之一是提供一种信心,即当需要稍后更改代码时,不会破坏它。但是,单元测试为字面上用作一次性一次性代码的代码提供了哪些好处?这个一次性代码肯定在生产中使用,但一旦部署就永远不会被改变。单元测试在这种情况下是否仍然有意义,如果具体如何具体?

更新:一次性代码在进入生产之前实际上已经过功能测试。通常,对于非一次性代码,尽管进行了功能测试,仍然有必要进行单元测试。这里的问题是,在一次性代码的情况下是否也有单元测试也是有意义的。

更新2:抛弃代码首先出现在生产中的原因是这个代码实际上仅用于一个客户端。它永远不会被修改。几天使用一次。这对于单个客户来说非常具体。此后它不会用于任何其他目的,包括同一客户端。尽管进行了功能测试,在这种情况下编写单元测试仍然有价值吗?

5 个答案:

答案 0 :(得分:4)

我不确定代码如何既是生产代码又是一次性代码。它被用于生产的事实意味着它不是一次性的。是什么让你如此确定,只是因为你现在不打算改变它,其他人可能不会出现并重新使用它或在以后更改它?

无论如何,在重构时,单元测试除了保护之外还有很多好处。单元测试(如所有测试)有助于证明代码正在执行应该执行的操作。在开始生产之前,您需要在某个级别进行测试以证明这一点,并且单元测试是一种简单的自动化方法。

编写单元测试的过程经常暴露出错误。它会强迫您考虑在撰写快乐日案例时您可能没有想到的案例。

答案 1 :(得分:3)

我愿意打赌你花时间问这个问题然后回来阅读答案本来就有足够的时间来编写一些单元测试。哪个更好地利用你的时间?

这很简单:如果你关心代码是否正确,你需要测试它。单元测试,验收测试,服务测试,无论你怎么称呼,它都需要以某种方式进行测试。

答案 2 :(得分:2)

在将其投入生产之前,您应该以某种方式测试此代码。无论以后需要进行自动化回归测试,单元测试在这里都是一个有价值的部分。

单元测试也可以用于测试驱动开发,在这里您可以在实际编写代码之前勾勒出代码应该做的事情。在这种情况下,单元测试有助于加快开发过程(正是因为您在代码仍然发生变化时进行了自动化测试)。

答案 3 :(得分:2)

测试以三种方式提供好处:

  1. 当代码以测试优先编写时,测试有助于驱动设计并确保您编写可测试代码。如果这是真正的一次性代码,那么这对你来说无关紧要。

  2. 测试为重构提供安全网。再次,在你的情况下你可能不在乎。

  3. 测试证明代码执行了它应该执行的操作。这适用于一次性代码,特别是如果代码是以测试优先的方式编写的。我更愿意在我去的时候编写测试,并且相信我会向QA发送一些可靠的内容,而不是跳过测试并等待QA人员告诉我有关缺陷的信息。如果报告缺陷并且您必须对代码进行重大更改,该怎么办?通过自动化测试,很容易判断您的“修复”是否破坏了其他任何内容。如果没有自动化测试,您必须重复全套手动测试,这可能很昂贵。

  4. 总而言之,如果代码真的是“一次性”并且很小或非常简单,那么您可能无法获得很多好处。如果代码很复杂,或者相对较大,那么测试可能是值得的。 (虽然,我只专注于编写高价值测试,针对手工测试难以或成本高昂的功能)

答案 4 :(得分:1)

如果我只需要为我需要维护的每一条“thorwaway”代码获得一美元......

相关问题