商业极客:自动化软件测试是竞争优势

2006年9月13日


该博客的受众可以简单地分为两种类型: 

1.  对技术问题感兴趣的技术怪人(具有技术背景的人,更具体地说是软件开发背景的人),因为他们已经成立或正在考虑启动一家初创公司。

2. 对技术感兴趣的商业怪胎(具有商业/销售/战略背景的人),因为他们成立了一家软件创业公司。 要详细了解我对商务迷的看法,请阅读“商业极客:  Not An Oxymoron

我的许多文章都针对一个或另一组(例如我的“技术天才的演示技巧”)。

这是从业务方面的角度来看自动化软件测试的价值。 集中精力的原因是,我认识并尊敬的大多数程序员已经了解自动化测试的好处,并且比我了解更多。 如果是您,请随时停止阅读。 我不会生气。

自动化软件测试的商业思想
 
自动化软件测试是一个很大且相对复杂的领域,需要一段时间才能理解。 但是,让我们使用一个简单的定义: 这是使用计算机(而不是人类)进行重复测试以确定该软件是否完成了应做的工作的过程。 需要注意的是,大多数自动化软件测试在开始时(设计和开发测试)仍然需要人工参与,但这是 重复性 这使其功能如此强大。 一旦开发了测试,投资回报就是连续的,因为运行测试的成本几乎为零。

为了更好地说明我的观点,我将使用Pyramid Digital Solutions(我创办的第一家软件公司)。 Pyramid成功运行了10多年,最近被出售了,但我想以此为例,因为我确实从中吸取了很多教训,并且发现有一个实际的例子可以帮助我进行讨论。
  1. 构建更好的软件:  这是显而易见的,但它是价值的核心,因此需要说。 通过构建自动化测试库,通常,您将交付更好的软件,该软件至少应以某种可预测的,预想的方式(在测试中已考虑到的用例)使用时,至少可以正常工作。 这是一件好事。

  1. 连续测试:  如前所述,一旦您使测试自动化,运行测试的成本就很小。 因此,一旦您投资构建了自动测试脚本,就没有充分的理由不经常运行它们了(有很多充分的理由要这样做)。 在我之前的初创公司中,我们最终获得了超过20,000多个运行了几个小时的测试脚本。 We ran them 每天晚上。 每天晚上都会启动一个过程,该过程将检索程序员签入的最新源代码,构建我们的产品(自动构建),然后运行我们的测试脚本。 每天早晨,测试脚本的结果都会通过电子邮件发送给管理层和开发团队。 

 
  1. 更便宜地修复错误:  大多数软件都有错误。 从业务角度来看,问题是: 您知道哪些错误,何时“发现”这些错误,以及修复它们的费用是多少? 事实证明,何时找到它们以及修复它们的成本是高度相关的。 让我们举个例子。 在我之前的(实际)示例中,可以说程序员无意中进行了代码更改并将其检入。 The code has a bug. 用我们过去的旧操作方式,通常要花几天,几周或几个月的时间才能捕获到这笔巨款(根据代码所处产品的哪个部分,是在内部捕获还是在“狂野”中做出来的)由客户找到)。 从实际更改代码到实际发现错误所花费的时间越多,则查找和修复错误的成本就越高。 We’re talking 重大的 (数量级)成本增加。 现在,在新世界(我们每晚都有自动化测试在运行)中,自动测试脚本可能会捕获此错误。 如果是这样,那么第二天早上我们就会知道有问题,可以去解决它。之所以如此必须 更便宜 找到并修复错误的原因是,变更的“表面积”非常小。  在过去的24小时内(自上次测试以来)更改了数量有限的内容,因此可以更容易地发现该错误。 我不太强调可以通过在引入错误的几个小时(而不是几天)内捕获错误来节省多少钱。

  1. 变更自由:  随着软件系统变得越来越大,进行更改而不破坏事物的难度变得越来越大。 开发团队会尽其所能(并且在时间允许的情况下)重构丑陋的代码,但是即使那样,已经存在了一段时间的足够大规模的代码库几乎总是会带有“角落”,没有人想碰(但很重要)。 这种情况的商业风险是,您可能会发现自己处在客户要东西或市场以某种方式引起变更需求的情况下(这不足为奇)。 如果程序员由于担心会破坏某些东西而担心更改系统的核心部分,那么您就遇到了问题。 如果您拥有大量的自动化测试脚本,它可以使程序员腾出更多精力去做很多有趣的事情。 他们可以重构代码(自动测试是一个“安全网”),可以添加/更改功能等,从而减少了很多睡眠时间。 通过投资于自动化测试,您会发现您的组织实际上已经在移动 快点 比以前。 您可以更快地响应市场变化,更快地推出功能,并且拥有 更强  company.

  1. 客户更快乐:  在金字塔,我们每季度与客户举行一次会议(以及每年一度的会议,一群客户聚集在一起)。 在每个方面,我们共享的关键指标之一是自动化测试的规模。 这给客户一些安慰。 这种舒适性使他们更有可能安装该软件的更新版本(在可用时)。 由于我们处于高端企业软件领域,因此这很重要。 如果我们能够吸引20%以上的客户迁移到软件的第5版(而不是停留在第4版上),那么我们就有了优势。 更少的支持成本和更高的保留率。


我喜欢以技术债务的形式来考虑技术战略(现在采取捷径,但投资回报会随着利息而增加)。 Read “捷径并非免费”,如果您对此感到好奇。 与金融债务类似,这通常是必要的(技术债务也是如此),但它有一定的成本。 相反的是技术 投资 (在经典意义上)。 这也有一个利率-您为该投资“支付”(即ROI)的利率。 我认为对自动化测试的投资是您可以找到的最佳利率之一。 投资回收期更长一些,但这是值得的。 如果您有竞争(您可能会参加),您会发现在自动化测试上进行大量投资将为您带来优势。 您将更快地添加功能,更便宜地修复错误并发布更好的软件。

当然,情况总是如此,情况总是如此。 金字塔与我目前的创业公司所处的市场不同 HubSpot –但是我仍然对自动化测试充满热情。 随着我的进步,我将继续分享经验。

为你推荐

找到我的最佳地点是在 HubSpot网络.

按主题列出

看到所有

主题帖子

看到所有

社区

让我们连接

而且,你可以找到我 Google+, 推特领英.

最近的帖子

与GrowthBot聊天

它是一个机器人,可以帮助您进行市场营销和发展。您可以研究竞争对手,改善SEO等等。 http:/GrowthBot.org