测试自动化 与 降低成本

最近在看agiletesting上的一个讨论,我对于话题自身没什么看法,倒是对其中的小争论或是说某两个人的小玩笑吧,很感兴趣,分享给大家:-)

文章到这里去看:Re: Tools and Suggested Reading on Automated Testing。这个争论从这篇回复开始,主要是在Eric用自己的实际经验来证实测试自动化能够降低成本的时候,Ron似乎对“降低成本”这个概念很感兴趣,两人有一小段精彩的讨论(至少我认为是精彩的。。),在此,就不复述他们的观点,只给出我自己的看法。

我认为有否省钱并非只是偏于测试自动化一隅的晦涩的学术问题,而是一个和生活也息息相关的非常普遍普通的问题。如果你去购物,怎么样的情况下你会认为自己省钱了?

假设你出发前有很好的审视家中的状况,对需要些啥有很好的了解,列个购物清单,然后出发。到商场或超市后,看到准备买的一款吹风机有促销降价(原因或许是清空库存等);要买一床被子,发现有一款新品,手感各方面都和事先看重的一个老款差不多,但价格却便宜许多(介绍说是因为采用了新工艺等);看到刚好有自己准备要买的一些厨房小物件,有个品牌搞活动,虽然各个单件都比较贵,但考虑到打包购买后的赠品价值,其实这些小物件的费用倒是和预算一致;再发现有一款很不错的小牛皮鞋,其品牌也是打折促销,打折后价格很实惠,而且穿起来也很有感觉,也很配衣服裤子,只是,这并不在自己的购物清单中;等等等等。。

那么你认为以上哪些情况是有节省开支,通俗点讲,省钱?

我的看法是,吹风机和被子或许算是有节省成本,但后面几项绝对算不上。虽然厨房小物件算下来挺划算的,摊摊下来费用也和预算相符,而小牛皮鞋也很划算,但是,最重要的是,他们都不是预期将要发生的事情(不是计划要购买的,不在购物清单之中),是预计外的花费。

对,我的看法就集中在:(1)是否是预计内的花费;(2)是否比预计的费用更低;(3)是否带来更高的效用及产出。

其实第一项是被多数人忽视的,人们往往关注某个商品本身是否够便宜,是否超值,却忘记自己“为什么要购买这个商品?”、“是不是真的有必要购买这个商品?”。第二项,则是可能因为各种原因,你能够以更低的代价得到预期的商品,那这自然是判断是否省钱的最重要标准。第三项,则是从另一方面,即使费用一致,但是能够从此商品中获得更高的回报,那么在我看来,也是省钱了。

那么回到开头的问题。(1)是否必须要测试自动化?这个问题有些难以回答,但是大多数情况下,答案应该是“是”。不进行测试自动化,我们依然可以进行软件测试,但是大多数公司都有遇到问题是,测试活动的时间和成本开销太大,而测试自动化如果实施成功能够极大的改善这样的状况,所以测试自动化可以被看做是一个必须的选择。(2)是否比预计的手工测试的费用更低?手工测试上手更快,无太多的前期开销,而测试自动化可能需要前期的部署环境,实现自动化测试案例等开销,但如果项目计划得当,有足够的时间来获取测试自动化带来的回报,主要体现在回归测试或持续集成等方面,那么无疑,自动化测试相比手工测试的费用更低,尤其是压力测试或性能测试方面。(3)是否带来更高的效用及产出?是。自动化测试,可以完成一些难度极高的测试,比如10万用户同时连接的压力测试等,而已有的自动化测试案例和框架工具,都能够加速后续的开发,重用度很高,相比手工测试一条直线的成本曲线,能降低后期的成本开销。

所以,我认为,在剔除掉不必要的选择之后,在剩下的可选项中,评估各自的成本及收益,针对自身所必须解决的问题域,所选择的解决方案能够用更低的成本达到同样的功效,或是用同样的成本达到更高的功效,都是省钱的。如果某个解决方案能够用更低的成本达到更高的功效,当然就是选它,根本就不用考虑啦。而换做是更高成本达到更低功效,我想。。没人会选择吧。。

这其中,可能有人会提到一个长期的问题,也即某个方案或许从当前来看,不是效益比最高的,但是基于某种考虑,我们需要员工在这样的解决方案中获取必须的经验,为日后的继续发展提供必要的驱动力。我的看法是,你完全可以把这一点加入到对解决方案的评估项之中,说得晦涩些,给与不同的项以不同的比重,弄出个公式出来,把每个选项代入公式,计算出来的结果,谁的效益比数值更高就选谁呗,不是很简单的事情么,呵呵~

About Kaveri, Yi XU

Agile Coach & Consutlant
This entry was posted in Agile&Scrum&Testing&TA. Bookmark the permalink.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s