摘要:
我写本书的目的是单纯地介绍Cucumber这个自动化测试工具。而避免涉及敏捷。一怕理论、概念太多,二怕不实用。我不喜欢不实用的东西。可若是略过BDD,单讲Cucumber终究不太合理。因此,这一章,我就说说BDD。简易BDD上文中,我们知道Cucumber:可以使用自然语言描述测试用例可以作为自动化测试运行作为一个自动化测试工具,这些已经足够了。然而,Cucumber的首页清楚地写着“making BDD fun”,即让行为驱动开发充满欢乐。行为驱动开发(BDD)是什么?Cucumber的开发者为什么又要给它扣上这个帽子呢?为了找到答案,我们再次回到Cucumber的首页的六副图。有了前一章传 阅读全文
摘要:
第一次看到Cucumber和BDD(Behavior Driven Development, 行为驱动开发),是在四年前。那时才开始工作,对软件测试工具相当着迷。只要是开源的、免费的,我就一定要下载,安装,试用。有的工具用途单一、好懂(如Jmeter,Watir);有的工具,则涉及到一些软件领域的独有概念,不好懂,(如STAF,Cucumber)。好懂的,我上手、试用、推广,不亦乐乎;不好懂的,就只能丢在一边,这里面就包括Cucumber。再次看到Cucumber,已是两年前。我对软件开发的理解也深了些,这一看,可真是个好东西。之后我与Cucumber间发生的故事,稍后慢慢向大家交代。这开篇的 阅读全文
摘要:
近来,常在软件测试俱乐部里,跟一众测试精英讨论问题。Kerry说,你开源工具用过不少,不如写篇博客,让大家也少走些弯路。我应下来时,还不到十一,如今竟已是十一的最后一天,所以抓紧写点,省得又成了个大坑。定义 动笔前,犹豫好久。想来想去,所有工具都只是为了解决一个问题,或是一时的问题。但只有一个东西,从头到尾,一直在用。那就是如何理解被测系统,找到测试点子。我盗用《the little black book of test design》中的说法(读书笔记,点我),称其为测试模型。借用其定义如下,测试模型:尽可能列出可能发生的错误,或导致客户不满意之处,按照发生概率与严重程度排序,自上而下... 阅读全文
摘要:
上周在公司内部做了个十五分钟的演讲,题目是实施行为驱动开发(Applying Behavior driven development)。参加会议的是各个研发中心的QA精英,算是公司内部的QA文化大交流吧。迅雷开发 在会上我介绍了组里原有的迅雷开发模式,并且与我现在推广的BDD进行了对比。这是我第一次把迅雷模式推向大众,本以为会引起共鸣,没想到大家都板着脸,不知道是不是我讲太快,还是表情太严肃。脸色难看是一定的,头天晚上四点多才睡,PPT改了又改。躺下了,想想不对,起床再改。台下苏州的、杭州的、合肥的大家远道而来,我若是不精心准备,大家只怕连火车票都觉得冤枉了。会后听到一个姐姐说,觉得BD... 阅读全文
摘要:
三番四次看见有人在俱乐部里提及,所以找来看看。翻开introduction,不由大笑。因为我也不止一次提过,现存的测试方法,不适合于系统测试(system testing)。在我每年两次的system testing时,每次我都复习之前用过的方法,并加以改进。自己也试着把经历写成博客。点我。所以看到RE也跳出来写,觉得颇为亲切,于是看了下去。顺便写些阅读手记,给不常看书的tester们一点提示,看软件测试书籍,要带着询问,思考,回答,联想的方式阅读,而万不能一目十行。注:Q为问题代号,即在阅读时,由于作者描述不清,产生的问题,我会在Q后,试图在文中寻找答案。1 标题 作为一个优秀的tes... 阅读全文
摘要:
六个月前,开始推广BDD。时至今日,已经有了1200个情景(Scenario)。如果把每个情景,当做一个自动化测试用例,那么短短半年,我们已经从无到有,开发了1200个测试用例。在没有BDD的过去五年中,我们一共才开发了2000个自动化测试用例。粗略地计算下:过去2000/5=400个/年现在1200/0.5=2400个/年 即BDD使我们的自动化开发效率,提高了五倍,是原来的六倍。(等我先我自豪一下,hiahia。)越多越慢 慢着!还不能高兴地太早。高效的自动化开发,带来了新的问题。突然一下子多起来的测试用例,让自动化执行时间变长了。每次的nightly build/test的时间,... 阅读全文
摘要:
TDD的由来 测试驱动开发(Test Driven Development, TDD)的想法来自于极限编程(Extreme Programming,XP)。XP始于1999年,以测试为先为理念。因为缺少工具的支持,XP一开始不温不火,直到Junit问世,XP才得到广泛推广。坊间传言,Junit是Kent Beck和Eric Gamma两位大牛在飞机上无聊了写着玩儿弄出来的。到了03年,XP的测试优先进化成TDD,即:每写一段代码之前,先写一个单元测试在单元测试可以运行并失败后,编写代码待到代码可以使之前的测试通过后,编码完成在保持测试通过情况下,重构代码ruby语言下TDD的例子: 我希望.. 阅读全文
摘要:
推行并实施行为驱动开发(Behavior Driven Development, BDD)已有三周。(行为驱动开发,即在编写产品代码前,先将产品功能描述成功能点(Feature),再对其间的步骤进行实现。在代码完成后,用事先写好的Feature对其功能进行验证。我们使用的Feature描述工具是Cucumber,对Cucumber不了解的人,可以先跳到最后,我写了一个简单的例子,说明Cucumber的工作方式。行为驱动开发的好处,可以参考前文)第一周。 整天拿着笔记本满办公室跑,走到开发人员的桌子边。问:你实现了什么功能?然后以Cucumber的格式把他/她的描述写成场景(Scenari... 阅读全文
摘要:
敏捷的历史 上上个周四,我在组里做了个内部演讲,题目是“使用Cucumber实现行为驱动开发”。考虑到组内成员并不系统的敏捷背景,我是从历史开始的。扯软件开发的历史是我最喜欢的项目之一,大部分搞软件的读书读到历史基本都跳过去,我却很喜欢看看那些过往的小故事。所以每次跟人聊起来,我都尽量吹他个昏天黑地,反正也没人知道对错。 我所介绍的软件开发的历史主线如下:1956年,缺陷(Bug)这个概念产生,寻找缺陷的过程包括了测试和调试两部分;1979年,测试与调试分离,Glenford J. Myers等推动了这个运动,GM同时也是“软件测试艺术”一书的作者。此运动的直接导致了测试与开发的分离,测试.. 阅读全文
摘要:
I've done system testing for like 10 times. It's been 5 years since I joined the current team, our team release twice a year, and before every release, we do system testing. Well, actually I do. The bad part about my system testing is that we have no requirement, so no body knows what to do in syste 阅读全文