为什么开源C/C++单元测试框架极昂贵?

三月份,准备搞一个C/C++单元测试在线培训,草拟了一份课程提纲,发给一位老朋友(马工)征求意见,马工在一家研究院工作,领导一个近百人的开发团队,单元测试推广和实施都很有经验,给我的意见只有几句话:

公司主营业务:成都网站制作、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出田家庵免费做网站回馈大家。

删除开源框架部分,这个太昂贵,用的企业会越来越少,讲这个浪费听众的时间。我猜你花一大段时间来讲开源框架,目的仅仅是为了减少宣传商业工具的嫌疑,课程只要考虑听众的真正利益(学到有用的东西)就行,何必考虑别的。”

课程内容删除开源框架部分,这个我马上接受,因为当初加上这部分内容,原因正是马工所猜的。不过,用“太昂贵”来形容免费的开源框架,有些匪夷所思,我知道用开源框架做C/C++单元测试很难且成本很高,但从没想到“昂贵”这个词。在电话里和马工聊了半天,讨论了C/C++单元测试框架“太昂贵”的理由,整理如下。

免费的反而“昂贵”,这很平常,比如企业要派一个人从成都到北京出差,可以坐飞机、坐火车、租汽车,也可以借一辆自行车骑过去,前几种都是要付钱的,骑自行车免费,毫无疑问,骑自行车是最昂贵的,“昂贵”表现在:费钱(不算别的,工资就很吓人)、费力(这种累死人的事谁愿意干?)、误事(这个不用解释吧?)。[点评:我个比喻我也用过,不过没那么透彻,真是有实践者所见略同]

使用C/C++单元测试框架做单元测试,其结果跟骑自行车很像,也是费钱、费力、误事。

费钱:工具可以免费,人才不能免费,相反,人才极昂贵,而且越来越最昂贵。一个程序员,如果月薪1万,企业实际要支付的全部成本为1.5到2万,折算成每小时的成本,大概是100元,也就是说,写1小时的测试代码,企业要付出100元,这是使用开源框架的成本,是不是比自动化工具昂贵得多?[反驳:用工资低的实习生或初级程序员来写测试代码,成本不就降低了吗?答:那就别做单元测试了,单元测试是程序员自己做的,要边开发边做,越是重要的程序员越要做(因为他写的代码也越重要),事后让别人做单元测试,那是毫无意义的,除非每个函数都有非常详细的文档,可是谁做得到?]

费力:程序员为什么不愿“写”单元测试?请注意,是“写”单元测试,不是“做”单元测试。程序员不是不知道单元测试的好,而是不愿意写测试代码,因为太烦了。程序员不怕难,最怕烦。创造往往很难,但却是程序员的***,也是程序员的价值所在。测试代码既然用工具都可以生成,自然没有创造性,程序员怎么可能喜欢写呢?让程序员做自己很不喜欢做的事,这是很累人的,特别费力。

误事:误事表现在三方面:

一、花很多时间来写测试代码,延长了项目的周期,严重时可能失去市场机会。

二、太费力,程序员可能消极应对,最终做不下去,折腾很长时间,又回到原点。

三、测试不充分,很多测试点,是手工编写代码难以达到的,举个简单的例子,要让malloc()在***个用例返回NULL,其他用例正常申请内存,手工编写代码就很难做到。用开源框架,完成代码覆盖都几乎不可能,而使用合适的商业工具,完成MCDC覆盖一点也不困难。

当前文章:为什么开源C/C++单元测试框架极昂贵?
URL网址:http://www.shufengxianlan.com/qtweb/news5/483455.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联