很多开发团队的开发流程中,肯定有一项是要求开发人员要做单元测试。但是,实际的执行情况却差强人意。有的可能是把整个系统启动起来,然后把调试器连上去,设置断点,在调试环境中修改变量的值以模拟不同的情况或者边界条件。有的可能是写了一些XUnit...
最近两周一直跟公司里面的一些工程师讨论单元测试的价值,是不是只要有端到端的自动测试已经足够。很显然我的观点是都要有,而且要以单元测试为主,为基础。 持反对意见的工程师觉得因为我们已经有了从页面到数据库的端到端的测试,能够覆盖到系统...
软件开发的标准过程包括以下几个阶段:『需求分析阶段』→『设计阶段』→『实现阶段』→『测试阶段』→『发布』。其中测试阶段通过人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别...
在去年的YOW Melbourne开发者大会上,我参加了一些研习班。这些研习班由coreyhaines和rains负责,因此TDD(测试驱动开发)成为了主要讨论的内容。通常这不是一个问题,但是令人沮丧的是(考虑到这是2010年举办的开发者大会),那时上网还不是很方便,我...
一、算法单元测试遇到的一些问题 粒度和数据构造 现状 开发往往从大接口进行测试,即使有时从单元粒度进行测试,测试数据也构造不到位,导致单元测试形同虚设 建议 开发的单元测试应该以底层函数粒度为主,QA测试应该以中上层...
说起单元测试的好处相信大家都能列举出不少,可是很多时候,开发人员面对自己产品的代码,想写单元测试却无从下手,久而久之,便会有人大喊:“我讨厌单元测试。”资深敏捷咨询师腾振宇(Daniel Teng)在GTUG-TopGeek开发工程管理沙龙就以此为题,结合...
我们希望采用并行的方式在本地运行单元测试,从而减少测试时间,提高开发人员的工作效率。我们使用了线程池来提供多线程的并行任务。通过配置启动多个线程,并以程序集为单位,启动TestRunner: var executorWrapper = new ExcetorWrapper(as...
我们说过项目级的质量保障中,一个很关键的活动就是单元测试。那么到底如何来做单元测试呢?这里先讲一个有关单元测试的小故事。 这个故事说的是Morgan Conrad。 一天早晨,一名程序员向大师提了一个问题:“我想写一些单元测试。我应该为多...
正如我在上一篇博客中提到的(现在可以明确地告诉大家),我已经离开Google了。虽然我已经收到了很多不错的offer,但是还没有决定去哪里。在这段时间里从技术角度上说我不受雇于任何人,虽然也许这会让我和(前)同事或者老板关系有点紧张,但我觉得应...
(承上篇) 3.3 如何解决“做不好” 现在来看做不好的问题。做不好的主要原因,是高标准的测试覆盖难以实现。 为什么要关注测试覆盖呢?因为未覆盖的单位,通常对应未测试的数据分类,也就是说,可以用覆盖率来检查测试的完整性,衡量测...
也许是因为我经常在twitter上鼓吹“代码质量来自code review和单元测试”,老赵的这篇文字http://www.51testing.com/html/02/n-806502.html 也at我一下,抱歉的是最近欠债太多,正在着手完成答应侯伯薇的那篇关于appengine的文字。 趁着兴头和最近...
(承上篇) 首先,我们要让这个取温度的函数返回1,表示取温度成功。双击函数名。 模拟值填1。 然后,设定环境的温度。双击这个表示环境温度的参数。 模拟值填28。 再看测试结果。现在测试就可以正常进行了。这个参数...
一直熟知单元测试的重要性,也算是了看了几本这方面的经典书籍,但是真开始上手的时候总会遇到各种各样的坎。例如,为什么总感觉自己的单元测试之间有较多的重合,为什么每个单元测试都要准备那么多依赖?有的说法是,这意味着代码设计不够好,单元测试...
单元测试是软件测试的第一步,其详细描述如下: 第一,单元测试的主要任务。 单元测试针对每个程序的模块,主要测试5个方面的问题:模块接口、局部数据结构、边界条件、独立的路径和错误处理;如下图所示: (1)模块接口 这是对...
(承上篇) 3.2 如何解决“做不了” 上面我们只是用一个独立的函数来演示ETDD过程。在实际的工作中,代码之间通常是互相依赖的,这种依赖关系会造成测试难于进行,这就是“做不了”的问题。 我们首先来分析一下。“做不了”主要是指可测...
在我们个人编程的过程当中,内存泄露虽然不会像内存溢出那样造成各种莫名奇妙的问题,但是它的危害也是不可忽视的。一方面,内存的泄露导致我们的软件在运行过程中占用了越来越多的内存,占有资源而又得不到及时清理,这会导致我们程序的效率越来越低;...
内存越界是我们软件开发中经常遇到的一个问题。不经意间的复制常常导致很严重的后果。经常使用memset、memmove、strcpy、strncpy、strcat、sprintf的朋友肯定对此印象深刻,下面就是我个人在开发中实际遇到的一个开发问题,颇具典型。 #d...
代码测试是我们开发过程中很重要的一步。很多新入行的朋友都会习惯地认为测试只是测试部门的工作,事实上并不是这样。每一位软件工程师对应该本着对自己代码负责的态度,在入库或者进行集成测试之前对自己的代码进行充分的测试。那么掌握代码的调试技巧...
学习Android有一段时间了,虽然前段时间对软件测试有了一些了解,不过接触android的单元测试却是头一次。这几天在物流大赛上也用了不少时间,所以对于android的单元测试没有太深入的研究,所以先写个基本入门吧! 首先,我们来了解一下android的测...
你的RP是由你的程序质量决定的。 ——阿超 这一章讲的是两人合作,既然程序是两个人写的,那就会出现一个人写的模块被另一个人写的模块调用的情况。很多误解、疏忽都发生在两个模块之间。如何能让自己写的模块尽量无懈可击?单元测试就是一个...