单元测试的成本

单元测试是一个反复出现的主题对我来说这最后几周; 关于Stackoverflow之间和其他论坛和讨论的测试,我写了两个正在进行的项目, 我问关于单元测试的实际成本的几个问题.

这是尤指由托马斯勃兰特文章 (德国: “拓展署在明镜 (我的) 实践 - 希望与现实”) 这使我深思. 勃兰特在他的文章介绍确实不错,理论与实践测试驱动开发这个海湾. 空白点, 相反,它坚持TDD的原则;

我必须首先指出,测试驱动开发, 特别是“第一次测试”的原则, 是一个相当 “性感” 发展. 也一定能提高软件的架构,并阻止我们做某些 (小) 错误.
— 相对自由的翻译有关T. 勃兰特

因此,他认为拓展署的有力工具 – 至少从纯粹的学术. 但直接的结果是一个疑问;

现在的问题是根本: 代价是什么?

如上所述, 除了T. 勃兰特和我, 很多人似乎要求, 而最常见的问题如下: 是,使用单元测试她是否真的更好的软件, 并努力投资她们现实?

简明, 这个问题归结为一个简单的:

那是我花多少单元测试?

通常,问题涉及, 谁想到,他提出了单元测试是过于昂贵,适用于持续. 我记得有一个讨论,我对测试覆盖的总价值已超出了理论的理想. 报告说,努力提供我说: “” 当时.

截至今天,我认为这些问题都要求纯粹的魔鬼, 因为它不知道成本是重要的单元测试, 更多:

我如何支付了单元测试的遗漏?

这里是我的答案, 用一个具体的例子说明;

我目前的项目之一,包括大量的分布式组件. 我发现了一个草案中的错误, 这迫使我这两类重构. 所有我花了大约 1 小时. 发射单元测试? 关于 30 第二. 30 秒,我发现,有些行为并不像原先计划. 我花了大约20分钟的更正. 编写测试成本约45分钟我.
资产负债表是约两个小时.

如果没有单元测试, 我可能不会注意到的一些错误立即. 我将不得不 1 时间重构, 在一个或多或少确定, 当然遍布几天, 纠正问题时,改变被忽视. 这一次的概率远远超出一个小时是比较高的 (调试 “手”, 重新创建多线程应用程序等条件…).

就我而言, 我发现,在确定的时间计算 (有测试涵盖了软件的现实的一部分 – 不 100%) 更有趣的是,在黑暗中导航的实践.

实验! ;)

一些NoSQL的一种MariaDB

Logo de MariaDB

MariaDB MySQL的叉子

消息传到我很高兴 MariaDB, 在交岔路口非常有前途的MySQL. 最近提交一个非常在他们的档案库, MariaDB让自己放松古典关系模型. 随着引进的动态列 (免费翻译 “动态列”) 下个版本 (5.3) 因此很明显,MariaDB包含了NoSQL的提示!

在发展的主要目标是通过使用SQL语法,使这些列经典. 内部动态存储为BLOB列 (二进制大对象).

为了说明这种新型操作, 一个小例子:

Select All Code:
1
2
3
4
INSERT INTO exemple (nom, classe, prix, attributs) VALUES
("HTC Desire Z", "telephone", 420, COLUMN_CREATE(1.5, "Gris")),
("Nokia E7", "telephone", 509, COLUMN_CREATE(32, "noir", 2, "Clavier")),
("Lenovo Thinkpad E420", "ordinateur", 1019, COLUMN_CREATE(1, "noir", 3, "Win7 Pro", "500Go"));

正如你可以看到, 一切看起来完全像一个传统的查询, 零售列 “attributs” 关闭. 在这个例子中,每个条目因此,传统的数据, 在域 “attributs” 它属性数量的数据 (注: 不像传统的领域, 输入动态数组只有一个数字处理, 但显然开发商还没有改变).

为了创造一个列项,因此使用COLUMN_CREATE(), 要更新或删除一个条目必须使用 COLUMN_ADD() 在一个正常的调用update:

Select All Code:
1
2
UPDATE exemple SET attributs=COLUMN_ADD(attributs, 1, "jaune")
  WHERE COLUMN_GET(attributs, 1 AS CHAR(10)) = "noir";

这个例子还说明了很好的使用 COLUMN_GET() 它提供了访问一个列的属性. 也有 column_list中() 返回的动态列列表中.

如果你想尝试这种新的功能已, jettez你的编译器和 库代MariaDB; 二进制文件的版本将可用 5.3 该MariaDB.

第三方组件和单元测试

软件测试 - 成为科学

我刚才读的研究软件的完整性风险报告 这是在请求进行Coverity公司. 大致相当多的研究总结了一种感觉,我很久以前; 普通开发远不如对第三方软件质量,项目整合成一个关切的是,它自己的代码质量.

就人物, 研究称 90% 的 (330) 开发人员可以使用第三方来源 (他们是免费或版权拥有人) 在他们的软件。缺点只有约 40% 开发商说这些就这些源自动化测试 (更多的利弊 75% 来源的 “首页”). 这是相同的 (几个百分点) 手工测试和完整性 (stress-testing/functional-testing).

一个一定的共识方面存在的延误,由于质量差第三方代码; 更多 140 开发者们回答说,在发射延迟或召回的大部分都因与第三方的来源问题.

一锤定音: TESTEZ! TESTEZ! 试验!

在浏览器的Linux

长期以来,我们都知道JavaScript是不是要验证表单 (X)HTML和网站上作出一定的影响. 但现在M. 和Fabrice贝拉德已经取得再次与示范’规模!

这位天才确实取得了纯JavaScript的x86模拟器! 我就不告诉你这里的技术细节 (它们是可读的 网站和Fabrice贝拉德). 批发, JSLinux是一个模拟器 486, 没有FPU和MMX公司, 但与存储器管理单元 (MMU的)完成!

一个设计特点 (这使得人们有可能利用此) 是广泛使用的类型化数组 (规范的) 最近已成为提供最新的浏览器 (铬 11 目前Firefox4, 歌剧是意气风发赶上如果我的信息是正确的).

关于 “发行版” Linux的安装演示, 这是相当完整; 内核 2.6.20, BusyBox的, 我们, qemacs和C编译器 (TinyCC, 我曾首次尝试的喜悦=)

在这, 我会让你为自己发现的奇迹: JSLinux (本页面需要几秒钟的载入)

安装Mono 2.10 CentOS的使用yum

而我重回Linux的一个小修补: 安装Mono 2.10 在CentOS (5.6 一次).

搜寻我一直把同样的结果几个小时网; 从源代码编译… 并与依存关系不错的清单, 没有什么非常有趣的… 解决方案: 打破小的小脑袋!

了解更多

还原的SSL私钥丢失!

实验’ 我今天是相当尖锐的描述, 特别是考虑到主题!

第一个故事: 我不小心删除, 或者说,取代了私人密钥加密的SSL上使用我的一台服务器. 知道,如果没有这个关键服务器并重新启动后再次走!

救了我什么? 事实上,Apache的加载整个文件到内存! 我可以做一个堆转储/堆栈apache2的搜索过程…. 或找2小时,谷歌找到以下的小工具

了解更多

惠普2600n彩色镭射由W7的

大家好; 这是大新闻; 我现在对Windows用户 7 (3现在周) 和比较满意. 除了两个小规模的试点中断 (现在已经解决) 没有错, 除了惠普激光打印机 (CLJ2600n) 这是我的母亲问了我一个小兔子今天早上,当我想用:

逸岸我以为是要做好第一次 – 它的工作在Vista – 但显然这个网络打印机驱动程序是没有较长的W7的Windows更新, 和惠普公司提供只有一个版本 “即插即用” 在他们的网站 (从而: 支持页面为HP 2600n) 其目的是通过USB功能 – 至少在官方.

了解更多

7 谷歌技巧,可以挽救你的生命!

每个人都使用谷歌 (有一些例外…) 作为搜索引擎, 但谁知道,人们可以使用谷歌来查找一个单词的定义, 保加利亚列弗欧元转换, 或限制搜寻特定日期之间的信息?

一些 “秘籍” 谷歌, 这很可能是有用的!

了解更多

jQuery的: 戏曲动画变换的CSS 10.50

前一段时间我发现转换WebKit的第一个可用的CSS (背后的Safari和谷歌浏览器渲染引擎), 当时加入火狐, 而最近的版本的Opera 10.50.

与往常一样,不同的实现 (更不用说的Internet Explorer不支持所有…) 但脚本 Zachstronaut (一 “hotpatch” jQuery的逸岸, 添加属性 变换 函数 $.的CSS()旋转 规模$.动画()) 运作良好,Firefox和WebKit中…

不幸的是,CSS的转换歌剧执行不返回值 “可读” 但一个数据矩阵, 对此我还没有找到文件. 所以,我花了几个弯路, 并通过功能 getComputedStyle() 我能够检索需要运行在Opera动画.

该脚本的修订版本 从而 (您还可以找到那些谁不知道的CSS转换为例).

LMGTFY.com, 或 “如何寻求帮助?”

如果你有不幸花费 “野人” (或专家 “新技术” – 政治正确)我们常常发现自己玩的朋友和其他熟人热线. 已经离开了我们大部分时间推出一个搜索引擎.

La science "Google"

科学谷歌"

为了帮助我们, 人的背后 LMGTFY, 为 谷歌让我对你, 创造了他们的网站; 你输入一个搜索, 与该网站将产生 “动画” 这说明,必须看他如何与谷歌. 您发送给您的朋友联系,你让他们学习…

我发现了一个不错的主意 – 有乐趣 ;)

聚苯乙烯: 对于球迷的谷歌徽标: 莱斯谷歌涂鸦 (是所有专题官方指定的回收标志 :P )