激发灵感——做多少单元测试就够了——通过测试方式解答
作者 Alberto Savoia
2007年5月5日
概述
回答一个问题:“进行多大程度的测试就足够了?”
引用“The Way of Testivus”条目:
http://www.artima.com/weblogs/viewpost.jsp?thread=203994
Morgan Conrad问:“进行多大程度的测试就足够了?”
跟着Morgan走吧。
针对测试程度的测试
一天早晨,一名程序员向大师提了一个问题:“我想写一些单元测试。我应该为多少代码写测试呢?”
大师回答:“不要为多少担心,写一些好的就是了。”
程序员笑了,鞠了一躬,离开了。
……
几天之后,第二个程序员问了相同的问题。
大量指着一锅烧开的水说:“这里面该下多少米呢?”
这个程序员对这个问题感到奇怪,回答到:“我怎么能告诉您呢?这要看你准备请多少人吃饭了,看他们有多饿,还看您提供不提供别的食品,你是否有足够的米,等等。”
“答得很对。”大师说。
第二个程序员笑了,鞠了一躬,离开了。
……
最后一天,第三个程序员问了同样的有关测试程度的问题。
“80%,不能再少了。”大师用拳头敲着桌子,用严肃的口吻说。
第三个程序员笑了,鞠了一躬,离开了。
……
就在大师回答第三个问题的时候,一个年青的新手走了过来,问道:“大师,今天,我听您对同样的有关测试程度的问题做出了不同的回答,这是什么原因呢?”
大师从椅子上站起来,回答:“给我倒杯新茶,我们谈谈。”
在他们都在自己杯里倒满热气腾腾的绿茶后,大师开始说话了。
“对于测试来说,第一个程序员是个新手,刚刚开始测试。现在,他有大量的代码,但是没有测试。他还要走很长的路,这个时候关注测试程度,会摧毁他的信心,一点用也没有。他最好去写写,用用测试。他可以以后再考虑测试程度的问题。“
“相反,第二个程序员已经熟练掌握编程和测试了。当我问她应当往锅里下多少米时,我让她意识到测试的数量是受很多因素影响的。她比我都了解这些因素——这毕竟是她自己的代码。没一个简单的答案,她很聪明,可以自己找到问题的答案,开始工作。”
“我明白了。”年青的新手说,“但是,如果没有唯一的简单的答案,那么,为什么您对第三个程序员说,‘一定要大于80%’呢?”
大师一听大声笑得把肚子都鼓了起来,比他喝下去的水还多,涨起来,又憋下去。
“第三个程序只是要个简单答案罢了——虽然根本就没有简单的答案……这样他就不用为这个问题困绕了。”
新手和大师一直保持沉默,喝完了茶。
关于作者
Alberto Savoia是Agitar软件公司的创始人,首席技术官,一生都致力于软件开发和测试工具及技术的革新与创新。Alberto的软件产品曾经获得以下大奖:JavaOne的公爵奖,软件开发杂志的生产力奖,Java开发者杂志世界级大奖,还有Java世界编辑选出的大奖。他现在的工作是致力于使软件开发者软件测试成为一种工业标准,而不再是偶尔现象。在Agitar公司工作之前,Alberto曾经在Google公司工作,那时候他是一名技术执行官,负责成功和赢利的广告项目组。在1998年10月,他和他们共同创建了Velogic/Keynote公司(NASD:KEYIN),并成了那里的首席技术官,成为一名互联网性能与测试的先驱及领军人物。在到Velogic公司前,Alberto还在Sun公司工作了13年,在那里,他最后一个身份是SunTest商业测试组的创始人和管理人,Sun公司的软件技术研究部门负责人。
文章来源于领测软件测试网 https://www.ltesting.net/