当前位置: 首页 > 科技观察

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

时间:2023-03-12 08:59:09 科技观察

3月份,打算做一个C/C++单元测试的在线培训。我起草了一个教学大纲,发给老朋友(马公)征求意见。马功在一家研究所工作,带领着近百人的团队。开发团队在单元测试推广和实施方面经验丰富。我的意见只有一句话:删掉开源框架部分,太贵了,用的公司会越来越少。讲这个浪费观众的时间。我猜你花很多时间讲开源框架,目的只是为了减少推销商业工具的嫌疑,课程只需要考虑听众的真正兴趣(学有用的东西),何必想别的.”课程内容删除了开源框架部分,这一点我立马接受了,因为一开始加入这部分的原因和马公猜的一模一样。不过,用“太贵了”来形容一个免费的开源,实在是匪夷所思sourceframework.我知道用开源框架做C/C++单元测试很困难,也很贵,但是从来没想过“贵”这个词,和马工通电话聊了很久,讨论了C/C++单元测试框架“贵”的原因,整理如下,免费的“贵”,这个很常见,比如公司要派一个人从成都到北京出差,他可以坐飞机、火车、租车,也可以借自行车骑。要付钱,骑自行车是免费的。毫无疑问,骑自行车是最贵的。”》表现在:钱(不算其他,工资很吓人),laborious(谁愿意做这么累的事)Doit?),mistake(这个不用解释吧?)。【点评:我用了我的比喻,但不是那么彻底,有些从业者也很认同】使用C/C++单元测试框架进行单元测试。结果与骑自行车非常相似,但也需要金钱、精力和错误。钱:工具可以免费,人才不能免费。相反,人才极其昂贵,而且越来越贵。对于一个程序员来说,如果月薪是10000元,公司实际要付出的总成本是15000到20000元,换算成一个小时的成本,大概是100元左右。也就是说公司写1个小时的测试代码要付出100元,这是使用开源框架的成本,是不是比自动化工具贵很多?【反驳:用低薪实习生或初级程序员写测试代码,成本不就降低了吗?答:那就不要做单元测试了。单元测试由程序员自己完成。它应该在开发时完成。程序员越重要,越重要的去做(因为他写的代码也更重要),事后让别人去做单元。测试,那是没有意义的,除非每个功能都有非常详细的文档,但谁能做到呢?]Effortless:为什么程序员不愿意“写”单元测试?请注意,您是在“编写”单元测试,而不是在“执行”单元测试。不是程序员不知道单元测试有多好,而是不想写测试代码,因为太烦人了。程序员不怕困难,最怕烦。创造往往是艰难的,但它是程序员的激情所在,也是程序员的价值所在。测试代码既然可以通过工具生成,自然没有创意。程序员怎么可能喜欢写呢?让程序员去做他们真正不喜欢做的事情,是很累很费力的。错误:错误表现在三个方面:1、编写测试代码需要花费大量时间,延长了项目周期,严重时可能会失去市场先机。二是过于费力,程序员可能会消极应对,最终做不到,折腾半天,又回到原点。3、检测不充分。很多测试点是很难通过手工写代码实现的。举个简单的例子,让malloc()在第一个用例中返回NULL,在其他用例中正常申请内存,手工写代码是有难度的。做吧。用开源框架完成代码覆盖几乎是不可能的,但是用合适的商业工具完成MCDC覆盖并不难。原文链接:http://blog.csdn.net/easytdd/article/details/24288727