随笔分类 -  软件测试

软件测试理论的积累
摘要:昨天晚上做的一个讲座。想了很多,希望对这几年来的测试开发工作做一个总结。PPT花了一些心思,尽量做到配图,每个Slide尽量少的字,代码尽量的短,尽量把我以前遇到的问题,总结的内容都囊括进去。也是我做的最长的一个演示稿,一共56页。年底了,心情有些低落。讲座开始时,才发现今天还没开口说过两句话,再加上有点紧张,口干舌燥,讲的效果不是很好。如何让自己讲的东西变得生动,以及如何组织自己的语言,达到通顺和连贯,是我以后需要提高的。GTest交流与经验总结View more presentations from coderzh. 阅读全文
posted @ 2010-12-31 00:33 CoderZh 阅读(6403) 评论(6) 推荐(4) 编辑
摘要:MSAA的全称是Microsoft Active Accessibility。这是类似DCOM技术。技术模型是这样的,UI程序可以暴露出一个Interface,方便另一个程序对其进行控制。 MSAA技术的初衷是为了方便残疾人使用Windows 程序。比如盲人看不到窗口,但是盲人可以通过一个USB读屏器连接到电脑上, 读屏器通过UI程序暴露出来的这个Interface,就可以获取程序信息,通过... 阅读全文
posted @ 2010-06-05 10:45 CoderZh 阅读(4598) 评论(3) 推荐(0) 编辑
摘要:在玩转 Google开源C++单元测试框架Google Test系列(gtest)之四 - 参数化中已经介绍过了如何使用gtest进行参数化测试。在twitter上应 @xlinker 的要求,我在这里提供一个参数化的完整例子。这个例子也是我当初了解gtest时写的,同时这个例子也在《玩转》系列中出现过。最后,我再附上整个demo工程,里面有一些其他的示例,刚开始上手的同学可以直接拿我的demo工... 阅读全文
posted @ 2010-03-19 21:34 CoderZh 阅读(20649) 评论(7) 推荐(1) 编辑
摘要:今天偶然点了几下cmd命令行属性对话框的几个属性,cmd就崩溃了。重试几次,都能崩溃,然后又在同事的机器上,试了一下,也崩了。在公司装的win7,回家后,在家里的xp上试了几下,还是崩溃了。有图有真相: 后面是在家里试的,XP系统下的重现过程。 操作步骤: 1. “开始” - “运行” - “cmd” 2. cmd标题栏右... 阅读全文
posted @ 2010-03-17 21:08 CoderZh 阅读(5456) 评论(7) 推荐(0) 编辑
摘要:之前写过一篇介绍BDD的文章(优美的测试代码 - 行为驱动开发(BDD)),很多同学都表示很感兴趣,但感觉过于抽象。因此,本文通过使用NBehave框架,通过非常简单而又具体的例子,加深对BDD的认识。 阅读全文
posted @ 2010-02-28 13:00 CoderZh 阅读(3334) 评论(4) 推荐(3) 编辑
摘要:总体来说,这本书是不错的。后面的第二部分和第三部分,主要针对Test Smells和Test Patterns进行了更加具体的描述,主要的内容和第一部分还是基本一致的。因此,我主要的精力都花在了第一部分,对于后面的第二部分和第三部分,我是跳着看完的。后面的内容当作字典来查询会比较好,因为写的比较详细。 其中有一个观点我觉得是比较新颖的,如果你分不清现在做的测试是不是属于单元测试,就请参照一下下面... 阅读全文
posted @ 2010-02-07 22:17 CoderZh 阅读(3077) 评论(0) 推荐(1) 编辑
摘要:我不知道Test Double翻译成中文是什么,测试替身?Test Double就像是陈龙大哥电影里的替身,起到以假乱真的作用。在单元测试时,使用Test Double减少对被测对象的依赖,使得测试更加单一,同时,让测试案例执行的时间更短,运行更加稳定,同时能对SUT内部的输入输出进行验证,让测试更加彻底深入。但是,Test Double也不是万能的,Test Double不能被过度使用,因为实际... 阅读全文
posted @ 2010-01-31 19:56 CoderZh 阅读(6291) 评论(0) 推荐(4) 编辑
摘要:这几节我看的比较快一些,因为内容之间其实是有联系的,所以合在一起做一个笔记。6-10节主要介绍了什么是Fixture,如何保证一个Fresh Fixture,如何使用Setup,Tearndown,如何进行验证(Verify),等等。 什么是Fixture? The test fixture is everything we need to have in place to exercise t... 阅读全文
posted @ 2010-01-24 17:13 CoderZh 阅读(10455) 评论(1) 推荐(10) 编辑
摘要:今天睡了个懒觉,起来打开Google Reader看到一本关于测试的新书:《赢在测试:中国软件测试先行者之道》,很激动,因为第九章是华姐的“服务的心”。相信这本书会对所有测试的同行有所启示,因为那些都是非常宝贵的经验。这里有一篇别人写的读后感(书中被采访者之一):如何成为一个优秀的测试工程师 内容简介本书是一本传承软件测试经验和人生经验的书。作者采访了11位软件测试领域的专... 阅读全文
posted @ 2010-01-24 12:52 CoderZh 阅读(2000) 评论(2) 推荐(3) 编辑
摘要:软件测试中的“设计模式”,细细品味,然后实践之 阅读全文
posted @ 2010-01-23 12:45 CoderZh 阅读(5332) 评论(0) 推荐(3) 编辑
摘要:自动化测试过程中,有一些基本的原则,就如同宣言(Manifesto)。由于大部分的原则在前面其实都提到的,因此,有的不做太多说明了。 原则:Write the Tests First 原则:Design for Testability 原则:Use the Front Door First 意思是说,从最外层暴露的publish方法开始测试。 原则:Communicate Intent ... 阅读全文
posted @ 2010-01-23 12:38 CoderZh 阅读(2360) 评论(0) 推荐(1) 编辑
摘要:这一章主要讲自动化测试的原则。前面的章节介绍了很多测试的思想,而思想的东西难免有点虚,这一章就是告诉你,遇到了具体的什么问题时,应该怎么办。作者咨询了很多的开发人员和测试人员,同时也和Martin Fowler就自动化测试的一些原则问题进行了交流,有些是显而易见的,有些又是让人把握不定。因此,这章主要讨论了以下几个问题: Test First or Last? Tests or Examples?... 阅读全文
posted @ 2010-01-21 00:12 CoderZh 阅读(2681) 评论(1) 推荐(1) 编辑
摘要:或许有人觉得单元测试可有可无,因为觉得需要付出太多的精力,而客户并不需要它。这就涉及到投资回报率的问题,其实所付出的用于测试的投资,往往会收获到更多回报。它让我们减少了Bug的数量,减少了调试代码寻找Bug的时间。看下图,有效的自动化测试投资下,测试和开发付出的努力的时间图: 初期,随着测试的介入,开发付出的投入逐渐减少。后期,随着测试案例的完善和自动化,测试和开发所需要付出的投入都减少到一个很低... 阅读全文
posted @ 2010-01-18 19:23 CoderZh 阅读(2769) 评论(0) 推荐(1) 编辑
摘要:这本书找来很久了,一直没读。关于软件测试的好书相当少,对于测试代码的重构及模式的书就更加难得了。虽然我才读了前几章,给我的感受是,这本书确实讲的很全面,并且给很多测试中的东西给出了专业的术语,相信当我读完并吸收完这本书后,会有更多的体会和收获。 第一章是全书概述,直接跳到第二章开始我的笔记。Test Smell,测试的坏味道。和我们通常讲的Code Smell是一样的,不同的是Test Smell是从测试的角度来分析测试过程中的坏味道。测试的坏味道主要分为三类: 1. code smells 2. behavior smells 3. project smells 这三种坏味道通常不是独立存在的,project smells的根源可能来自code smells和behavior smells。 阅读全文
posted @ 2010-01-17 23:25 CoderZh 阅读(6734) 评论(3) 推荐(1) 编辑
摘要:使用gtest也有很长一段时间了,这期间也积累了一些经验,所以分享一下。GTest为我们提供了便捷的测试框架,让我们只需要关注案例本身。如何在GTest框架下写出优美的测试案例,我觉得必须要做到: 案例的层次结构一定要清晰 案例的检查点一定要明确 案例失败时一定要能精确的定位问题 案例执行结果一定要稳定 案例执行的时间一定不能太长 案例一定不能对测试环境造成破坏 案例一定独立,不能与其他案例有先后... 阅读全文
posted @ 2010-01-09 14:26 CoderZh 阅读(35378) 评论(4) 推荐(6) 编辑
摘要:之前在测试Django应用时,使用了非常方便的django.test.TestCase。在测试Tornado时,我也包装了一个TestCase类,提供和Django一样便捷的测试方法。 阅读全文
posted @ 2010-01-01 10:48 CoderZh 阅读(5236) 评论(2) 推荐(0) 编辑
摘要:如何在Django中编写单元测试案例,以及使用测试用的test_setting和test runner,见:django单元测试历险记 代码很好懂,不做什么解释了。如果需要拷过去,根据自己的需要修改一下,不是什么难事。test_settings.py[代码]TEST_RUNNER='testapp.testrunner.test_runner_with_coverage'testrunner.py... 阅读全文
posted @ 2009-12-01 21:43 CoderZh 阅读(3769) 评论(2) 推荐(0) 编辑
摘要:coverage.py是一个用来统计python程序代码覆盖率的工具。它使用起来非常简单,并且支持最终生成界面友好的html报告。在最新版本中,还提供了分支覆盖的功能。官方网站:http://nedbatchelder.com/code/coverage/win32版本下载地址:http://pypi.python.org/pypi/coverage或者通过easy-install来安装: [代码... 阅读全文
posted @ 2009-12-01 21:19 CoderZh 阅读(30060) 评论(3) 推荐(2) 编辑
摘要:最近需要测试一个服务器端的django项目,查看了一下django的文档,发现django为了更加方便的对web应用进行测试,提供了一些便捷的测试方法。并且,专门有一篇文档讲诉如何测试django应用。 快速横扫了一下文档后,初步印象是django默认支持Doctests和Unit tests两个测试框架的,同时提供了一些辅助的测试类,比如Test Client、TestCase、Email Service。通过Client,可以方便的发起一个get或者post请求,并且取得返回结果。而TestCase也是对 unittest.TestCase进行了进一步的封装,省去了很多重复要写的代码,比如定义一个self.client。Email Service提供了方便的邮件发送的方法。 使用Test Client有什么好处呢? 1. 它不需要Web服务器运行起来。 2. 它执行更加快速。 3. 它能非常方便的取到被测应用内部的东西。 阅读全文
posted @ 2009-11-15 23:58 CoderZh 阅读(10213) 评论(5) 推荐(3) 编辑
摘要:UI Automation也不是什么新东西了,很久以前曾经用过一次,最近又在一个测试中打算使用,于是又翻了一遍MSDN。MSDN里的介绍确实非常详细,但是对于一个刚刚接触的人来说,大而全的文档反而使得无从下手。往往一个简单的Demo比得上大段的文字说明,因此我打算用几个简单的Demo来介绍一下 UI Automation到底是如何使用的。 阅读全文
posted @ 2009-11-14 21:13 CoderZh 阅读(28318) 评论(15) 推荐(7) 编辑