产品中心
VU4演示视频
VU4演示PPT
核心思想
同类工具比较
VU4价格咨询
解决方案
软件危机解决理论
单元测试
软件危机解决工具
下载中心
FlowFly5下载
VU4下载
培训视频下载
easy TDD教程
技术文档下载
视频中心
VU4演示(视频)
VU4视频教程
单元测试培训
技术文章
新闻资讯
凯乐动态
行业资讯
关于凯乐
Visual Unit 4
FlowFly 5 企业版
FlowFly 5 教育版
测试亮点
C/C++单元测试工具VU4功能特性
C++单元测试不用写代码了
使用VU4,能产生哪些效益?
真的比其他单元测试工具高10倍效率?
Visual Unit 4 试用评估
精品文章
开源C/C++单元测试框架极昂贵?
可执行的C/C++单元测试教程
表格驱动的单元测试技术(1)
常见问题
为什么软件测试培训专家推荐开源工具?
为什么程序员人手一套才有最大效益?
单元测试维护成本很高,VU4也这样吗?
基本理论
基本理论:软件危机简述
基本理论:解决方案综述
时间危机
解决时间危机:可视编程
解决时间危机:集约调试
其它危机
解决质量危机:快速调试
解决需求危机:快速迭代
解决管理危机:持集测试
技术文章
> 开源C/C++单元测试框架极昂贵?
开源C/C++单元测试框架极昂贵?
开源C/C++单元测试框架极昂贵?
用开源C C++单元测试框架做C C++单元测试,费钱、费力、误事,极其昂贵,为什么?
三月份,准备搞一个C/C++单元测试在线培训,草拟了一份课程提纲,发给一位老朋友(马工)征求意见,马工在一家研究院工作,领导一个近百人的开发团队,单元测试推广和实施都很有经验,给我的意见只有几句话:
“删除开源框架部分,这个太昂贵,用的企业会越来越少,讲这个浪费听众的时间。我猜你花一大段时间来讲开源框架,目的仅仅是为了减少宣传商业工具的嫌疑,课程只要考虑听众的真正利益(学到有用的东西)就行,何必考虑别的。”
课程内容删除开源框架部分,这个我马上接受,因为当初加上这部分内容,原因正是马工所猜的。不过,用“太昂贵”来形容免费的开源框架,有些匪夷所思,我知道用开源框架做C/C++单元测试很难且成本很高,但从没想到“昂贵”这个词。在电话里和马工聊了半天,讨论了C/C++单元测试框架“太昂贵”的理由,整理如下。
免费的反而“昂贵”,这很平常,比如企业要派一个人从成都到北京出差,可以坐飞机、坐火车、租汽车,也可以借一辆自行车骑过去,前几种都是要付钱的,骑自行车免费,毫无疑问,骑自行车是最昂贵的,“昂贵”表现在:费钱(不算别的,工资就很吓人)、费力(这种累死人的事谁愿意干?)、误事(这个不用解释吧?)。[点评:这个比喻我也用过,不过没那么透彻,真是有实践者所见略同]
使用C/C++单元测试框架做单元测试,其结果跟骑自行车很像,也是费钱、费力、误事。
费钱:工具可以免费,人才不能免费,相反,人才极昂贵,而且越来越最昂贵。一个程序员,如果月薪1万,企业实际要支付的全部成本为1.5到2万,折算成每小时的成本,大概是100元,也就是说,写1小时的测试代码,企业要付出100元,这是使用开源框架的成本,是不是比自动化工具昂贵得多?[反驳:用工资低的实习生或初级程序员来写测试代码,成本不就降低了吗?答:那就别做单元测试了,单元测试是程序员自己做的,要边开发边做,越是重要的程序员越要做(因为他写的代码也越重要),事后让别人做单元测试,那是毫无意义的,除非每个函数都有非常详细的文档,可是谁做得到?]
费力:程序员为什么不愿“写”单元测试?请注意,是“写”单元测试,不是“做”单元测试。程序员不是不知道单元测试的好,而是不愿意写测试代码,因为太烦了。程序员不怕难,最怕烦。创造往往很难,但却是程序员的最爱,也是程序员的价值所在。测试代码既然用工具都可以生成,自然没有创造性,程序员怎么可能喜欢写呢?让程序员做自己很不喜欢做的事,这是很累人的,特别费力。
误事:误事表现在三方面:
一、花很多时间来写测试代码,延长了项目的周期,严重时可能失去市场机会。
二、太费力,程序员可能消极应对,最终做不下去,折腾很长时间,又回到原点。
三、测试不充分,很多测试点,是手工编写代码难以达到的,举个简单的例子,要让malloc()在第一个用例返回NULL,其他用例正常申请内存,手工编写代码就很难做到。用开源框架,完成代码覆盖都几乎不可能,而使用合适的商业工具,完成MCDC覆盖一点也不困难。
上一篇:可执行的C/C++单元测试教程
下一篇:第一页