摘要:
凭着我对云计算的一知半解,用大白话表达一下对云计算的见解,如有不对的地方,也希望能够指出。首先,我们都知道,云计算现在很热,很多大公司,像 Google,IBM,微软,都在风风火火的搞云计算。那,到底什么是云计算呢?所谓“云”,大白话就是成千上万的计算机资源,“云计算”就是让这堆 “云”为你工作,而你不需要知道哪台计算机为你工作。 阅读全文
摘要:
之前写过一篇介绍BDD的文章(优美的测试代码 - 行为驱动开发(BDD)),很多同学都表示很感兴趣,但感觉过于抽象。因此,本文通过使用NBehave框架,通过非常简单而又具体的例子,加深对BDD的认识。 阅读全文
摘要:
今天开始上班了。虽然春节已经过去,趁着大家还在回味春节的点滴,向所有订阅我博客的朋友拜个晚年了!您的订阅对我来说是莫大的支持,也是让我坚持的动力之一。虽然我文笔不及韩寒,阮一峰,字字铿锵,思维缜密,也不及老赵的技术文章的深度、广度,以及数量,但我会一直坚持下去,努力做的更好,并且尽量多写一些。通过写博客,一方面对知识进行总结和思考,一方面也是一把很好的尺子,能够量出自己很多的不足。 今天看了一篇... 阅读全文
摘要:
总体来说,这本书是不错的。后面的第二部分和第三部分,主要针对Test Smells和Test Patterns进行了更加具体的描述,主要的内容和第一部分还是基本一致的。因此,我主要的精力都花在了第一部分,对于后面的第二部分和第三部分,我是跳着看完的。后面的内容当作字典来查询会比较好,因为写的比较详细。 其中有一个观点我觉得是比较新颖的,如果你分不清现在做的测试是不是属于单元测试,就请参照一下下面... 阅读全文
摘要:
我不知道Test Double翻译成中文是什么,测试替身?Test Double就像是陈龙大哥电影里的替身,起到以假乱真的作用。在单元测试时,使用Test Double减少对被测对象的依赖,使得测试更加单一,同时,让测试案例执行的时间更短,运行更加稳定,同时能对SUT内部的输入输出进行验证,让测试更加彻底深入。但是,Test Double也不是万能的,Test Double不能被过度使用,因为实际... 阅读全文
摘要:
MSDN里有描述,VirtualPathProvider只允许在两个地方注册:1. App_Code目录中任意类的AppInitialize静态方法。2. Global.asax中的Application_Start方法中。而我想知道是,有没有什么办法,可以将VirtualPathProvider注册的代码放入外部的dll中,在不需要在App_Code和Global.asax中添加任何代码的情况下... 阅读全文
摘要:
这篇文章的标题实在不好取,因为需求比较复杂:希望将母版页或ASPX等其他资源编译到一个动态链接库中,然后在Web Application中添加这个动态链接库的引用,就能使用该Dll内部的aspx页面或母版页。以模板页为例,实现的方法如下:1. 将母版页文件作为资源编译进动态链接库中。方法是:文件右键 - 属性 - Build Action - Embedded Resource 2. 实现自定义的... 阅读全文
摘要:
这几节我看的比较快一些,因为内容之间其实是有联系的,所以合在一起做一个笔记。6-10节主要介绍了什么是Fixture,如何保证一个Fresh Fixture,如何使用Setup,Tearndown,如何进行验证(Verify),等等。 什么是Fixture? The test fixture is everything we need to have in place to exercise t... 阅读全文
摘要:
今天睡了个懒觉,起来打开Google Reader看到一本关于测试的新书:《赢在测试:中国软件测试先行者之道》,很激动,因为第九章是华姐的“服务的心”。相信这本书会对所有测试的同行有所启示,因为那些都是非常宝贵的经验。这里有一篇别人写的读后感(书中被采访者之一):如何成为一个优秀的测试工程师 内容简介本书是一本传承软件测试经验和人生经验的书。作者采访了11位软件测试领域的专... 阅读全文
摘要:
自动化测试过程中,有一些基本的原则,就如同宣言(Manifesto)。由于大部分的原则在前面其实都提到的,因此,有的不做太多说明了。 原则:Write the Tests First 原则:Design for Testability 原则:Use the Front Door First 意思是说,从最外层暴露的publish方法开始测试。 原则:Communicate Intent ... 阅读全文
摘要:
这一章主要讲自动化测试的原则。前面的章节介绍了很多测试的思想,而思想的东西难免有点虚,这一章就是告诉你,遇到了具体的什么问题时,应该怎么办。作者咨询了很多的开发人员和测试人员,同时也和Martin Fowler就自动化测试的一些原则问题进行了交流,有些是显而易见的,有些又是让人把握不定。因此,这章主要讨论了以下几个问题: Test First or Last? Tests or Examples?... 阅读全文
摘要:
或许有人觉得单元测试可有可无,因为觉得需要付出太多的精力,而客户并不需要它。这就涉及到投资回报率的问题,其实所付出的用于测试的投资,往往会收获到更多回报。它让我们减少了Bug的数量,减少了调试代码寻找Bug的时间。看下图,有效的自动化测试投资下,测试和开发付出的努力的时间图: 初期,随着测试的介入,开发付出的投入逐渐减少。后期,随着测试案例的完善和自动化,测试和开发所需要付出的投入都减少到一个很低... 阅读全文
摘要:
这本书找来很久了,一直没读。关于软件测试的好书相当少,对于测试代码的重构及模式的书就更加难得了。虽然我才读了前几章,给我的感受是,这本书确实讲的很全面,并且给很多测试中的东西给出了专业的术语,相信当我读完并吸收完这本书后,会有更多的体会和收获。
第一章是全书概述,直接跳到第二章开始我的笔记。Test Smell,测试的坏味道。和我们通常讲的Code Smell是一样的,不同的是Test Smell是从测试的角度来分析测试过程中的坏味道。测试的坏味道主要分为三类:
1. code smells
2. behavior smells
3. project smells
这三种坏味道通常不是独立存在的,project smells的根源可能来自code smells和behavior smells。 阅读全文
![](http://t.douban.com/spic/s3912507.jpg)
摘要:
Corey Goldberg为我们实现的Python脚本,用于查询Google PageRank。Corey Goldberg还有很多很好玩的开源项目,比如开源的性能测试工具Pylot等等。下面是他的主页: http://www.goldb.org/ 查询Google PageRank的Python代码: pagerank.py 使用方法: [代码] 阅读全文
摘要:
使用gtest也有很长一段时间了,这期间也积累了一些经验,所以分享一下。GTest为我们提供了便捷的测试框架,让我们只需要关注案例本身。如何在GTest框架下写出优美的测试案例,我觉得必须要做到: 案例的层次结构一定要清晰 案例的检查点一定要明确 案例失败时一定要能精确的定位问题 案例执行结果一定要稳定 案例执行的时间一定不能太长 案例一定不能对测试环境造成破坏 案例一定独立,不能与其他案例有先后... 阅读全文
摘要:
GTD,Getting Things Done的缩写。来自于David Allen的一本畅销书《Getting Things Done》。GTD的核心理念在于只有将你心中所想的所有的事情都写下来并且安排好下一步的计划,你才能够心无挂念,全力以赴地做好目前的工作,提高效率。GTD通过将所有的这些事都罗列出来再进行分类,确定下一步的处理方法,将所有这些悬而未决之事都纳入我们可控制的一个管理体系中。GT... 阅读全文
摘要:
新年新开始,继续我的测试生活感悟。“代码覆盖率”是一个有意思的话题,围绕它的讨论有很多。基本上,人们都认识到了,代码覆盖率并不能说明测试的好坏,它只是一个度量方法,用于度量我们测试的广度。它只能告诉你,你的测试代码覆盖了哪些被测的代码,并没有告诉你,覆盖的被测代码是否测试好。代码覆盖率有诸多好处: 能一定程度上说明测试覆盖的广度。 通过代码覆盖率结果,能够比较直观的了解到哪... 阅读全文
摘要:
之前在测试Django应用时,使用了非常方便的django.test.TestCase。在测试Tornado时,我也包装了一个TestCase类,提供和Django一样便捷的测试方法。 阅读全文
摘要:
每年这个时候,很多人都开始总结,我也来一个总结。月光博客写了400篇,老赵写了250篇,阮一峰写了150篇,我数了一下,2009年我写了49篇博客。我不得不佩服一下他们,因为他们不仅在数量,而且在质量上都比我好很多。还有很多牛人,我也只能仰慕一下。不过,安慰一下自己,一年有52个星期,我也是差不多一个星期写一篇,能坚持下来也不错了。希望来年我能够写的更多,并且质量能够越好。回顾一下我今年写的博客,... 阅读全文
摘要:
本文将介绍,在Emacs中,通过各种扩展,打造强大的Python IDE环境,包括Snippet工具,智能提示,自动补全,重构工具,调试以及GAE的调试,等等。以下各工具的安装前提是你对Emacs的配置文件有一定的了解,所有相关的el文件都必须放在load_path能够加载的地方。1. YASnippet snippet工具,可自定义一些模板,必不可少的好东西!看了下面这个很酷的演示动画就明白了:... 阅读全文