切尔斯基

冰河洗剑,绝塞传烽,江山如画雪初晴

李光磊ID:chelsea
126736次访问,排名612(-1)好友0人,关注者3
chelsea的文章
原创 32 篇
翻译 2 篇
转载 0 篇
评论 101 篇
切尔斯基的公告
最近评论
chelsea:你提到的实际是两个问题: Server(C++)的单元测试, 以及真实环境下的功能测试. 关于C++单元测试, 可以参见http://www.blogjava.net/chelsea/archive/2008/07/07/213168.html 和http://www.blogjava.net/chelsea/archive/2008/07/13/214623.html, 功能测试方面, ……
吴开春:我们在做持续集成的尝试.目前可以做到Client (java)的自动化单元测试.但在Server(C++)方面却毫无进展.据称的原因在于这是遗留系统关联太大,而且还依赖于平台和设备.这直接导致了真正意义上的功能测试无法进行.我想问,在这方面,您有没有一些有益的尝试或经验可以分享.谢谢(:~`
yeahspyme:TDD类似于先把需求刻成模具,再往里填代码,这样就保证了产品的指令;哪天需要产品换个样了,我们还能从模具看到它原来是什么样子的。
chelsea:"不修改产品代码,你能实例化抽象类吗?"

不确定什么情况下你需要实例化抽象类。 如果只是想测试抽象类中的代码, 可以在测试环境中从抽象类派生具体类来测, 产品代码不用改

“你能在代码中插装以便统计覆盖率吗?”

这个由预处理工具来做, 只在需要统计覆盖率的时候, 在编译产品代码前工具负责增加一个预处理的环节,以产品代码作为输入,……
VisualUnit:"没人去修改产品代码, 所有的操作都是在测试环境中完成的。" 不修改产品代码,你能实例化抽象类吗?你能在代码中插装以便统计覆盖率吗?你能在用例中控制底层函数做某种指定的动作吗?实际工作中还有很多其他问题。另外,我在N年前,刚开始做单元测试的时候就是#include源文件的,但是在源文件中#include源文件,一些情况下会出问题并且很难解决(我是指在实际应用中,一个项目可能有几百上千个源文件……
文章分类
    收藏
      相册
      切尔分站
      切尔斯基的工作(RSS)
      切尔斯基的工具(RSS)
      切尔斯基的杂记(RSS)
      亲密爱人
      丸子(RSS)
      文学艺术
      芳村窝蛋(RSS)
      存档
      订阅我的博客
      XML聚合  FeedSky
      2008年07月20日

      原创 敏捷质疑: 持续集成收藏

      Q: 我的产品是电信级的设备, 几百人分成几十个项目组在开发, 各个项目组进度不统一, 如何集成?Q: CI的愿景是好的, 但我们这里根本不可能, 我们的产品需要复杂的运行环境, 运行时需要人工干预, 怎么测?阅读全文>

      发表于 @ 2008年07月20日 21:57:00|评论(loading...)|收藏

      2008年07月13日

      原创 敏捷质疑: TDD收藏

      Q: 为什么通过单元测试发现的 Bug 很少 ? Q: 你们说验收测试应该由客户来编写, 可在我们这里根本不可能 Q: ...阅读全文>

      发表于 @ 2008年07月13日 23:47:00|评论(loading...)|收藏

      2008年05月26日

      原创 The Ruby Programming Language Notes收藏

      按名称调用 一切都是对象, 且永不关闭 钩子无处不在 yield/block/proc/lambda, 一等公民 符号与哈希 模块/类/实例, 随意组装 阅读全文>

      发表于 @ 2008年05月26日 23:13:00|评论(loading...)|收藏

      2005年11月14日

      原创 Applicant PK Examiner收藏

      Some people will say incorrectly that objects are passed "by reference." In programming language design, the term pass by reference properly means that when an argument is passed to a function, the invoked function gets a reference to the original value, not a copy of its value. If the function modifies its parameter, the value in the calling code will be changed because the argument and parameter use the same slot in memory. If the Java programming language actually had pass-by-reference parame阅读全文>

      发表于 @ 2005年11月14日 12:47:00|评论(loading...)|收藏

      2005年09月16日

      原创 Annotation PK Interface收藏

      总共 5 处被蓝色字体标注的地方,也就是Annotation在降低依赖性上优于Interface的 5 个方面,也算更接近于“你不需要为你用不到的东西付出代价”这一语言和库的设计理念 阅读全文>

      发表于 @ 2005年09月16日 10:26:00|评论(loading...)|收藏

      2005年08月10日

      原创 Modern C++ Design收藏

      就像>一样,>关注的首先是Design,它明确的将这种设计命名为了“基于Policy的编程”,而不再用“模块化”、“封装变化”等泛泛的术语;其次是C++,核心是TypeList;如果>是C++初创的十几年中Classic C++的设计指南的话,类似TypeList的思想则可能是最近几年和未来几年Modern C++的设计指南阅读全文>

      发表于 @ 2005年08月10日 14:10:00|评论(loading...)|收藏

      2005年08月05日

      原创 模块系统与非侵入性收藏

      基础复杂性是守恒的,需要解决的基本问题始终是需要解决的;最终的复杂性,却取决于基础复杂性彼此间的依赖,如果互相依赖,最终将得到指数级的复杂性,而如果彼此独立,最终只是若干基础复杂性简单的累加,因此,程序需要更好的的Design和Organize,主要任务就是“降低模块间的依赖至最小”,而对开发效率有重大影响的,主要是编译期依赖,为此,人们发明了若干技术来降低编译期依赖阅读全文>

      发表于 @ 2005年08月05日 10:05:00|评论(loading...)|编辑|收藏

      2005年08月02日

      原创 Exceptional C++收藏

      一、语法细节 二、惯用法 三、原则 四、实践 五、观点 六、问题阅读全文>

      发表于 @ 2005年08月02日 15:31:00|评论(loading...)|编辑|收藏

      2005年08月01日

      原创 Ruminations on C++收藏

      Bjarne Stroustrup(苦恼的):为什么我做了那么多努力,人们还是把C++当成C来用? Dennis Ritchie :因为你把这门语言命名为了C++,而不是++C 阅读全文>

      发表于 @ 2005年08月01日 11:21:00|评论(loading...)|编辑|收藏

      2005年07月29日

      原创 对象语义与值语义收藏

      “值”与“对象”类型之间并没有严格定义的区分。但通常可以观察到下列不同: “值”是“死的”、“傻的”、“简单的”、“具体的”、“可复制的”,“对象”是“活的”、“聪明的”、“复杂的”、“抽象的”、“不可复制的”... 阅读全文>

      发表于 @ 2005年07月29日 15:20:00|评论(loading...)|编辑|收藏

      Csdn Blog version 3.1a
      Copyright © 切尔斯基