单元测试,精益创业,以及两者之间的关系

发表于:2017-03-31来源:掘金翻译计划作者:gy134340点击数: 标签:创业精益
为什么软件需要测试?我曾经以为是为了产出高质量的代码:你总是需要测试因为你总是需要写出高质量的代码。但是这个观点有几点问题。

为什么软件需要测试

我曾经以为是为了产出高质量的代码:你总是需要测试因为你总是需要写出高质量的代码。
但是这个观点有几点问题。

有时候质量不是主要问题。
在“精益创业” 这本书中,作者 Rric Ries 说过有时候发布一个软件最终发现没人真的想用它。
这也是他创作的动机之一: 为创业初期建立一套更好的方法论,在真正投入时间去构建一个高质量的产品时,就能够发现这款产品是否能够成功的方法论。
如果没人用你的软件的话那么确保高质量纯属浪费时间。

即使高质量很有必要,但高质量与测试之间的关系却很模糊的。
一个 QA 的团队跟自动化单元测试又什么不同?
他们的确不一样,但他们又分别给出什么样的质量?
什么时候需要特别的测试?

另外,测试是有成本的:你怎样辨别成本的花费是否超出回报?
比如说,有一家做税务申报软件的公司(我稍微改了一下细节)。
他们使用 Selenium 来对他们网站的 UI 来测试... 但是他们的应用依然很烂,而且每次改变 UI 测试都会崩溃。
这个测试并没有改变产品的质量,相反浪费了程序员的时间来维护测试。
他们做错了什么?

说我们都需要写出高质量的软件并不能帮助解决这些问题。
那我们回头来更加深入的讨论一下。

测试的意义是什么?

康熙字典 :) )里告诉我们测试是为了 “举证,通过一定原则或标准或实验来,证明真理,真实性。“
软件质量就在那里,是的,但事实却又不仅如此。

准确的说,这只是英语定义,可以肯定,有很多不说英语的开发者。
我不想被字典来束缚我们的行为。
人类语言是数世纪以来对世界的观察和理解,也是我们可以拿来借鉴的宝库。

那我们来以这个为出发点来看看能学到点什么。

测试的第一个方面

原文转自:https://juejin.im/post/58d90a3b44d90400694505c4