开发人员看测试之TDD和BDD】的更多相关文章

前言: 已经数月没有来园子了,写博客贵在坚持,一旦松懈了,断掉了,就很难再拾起来.但是每每看到自己博客里的博文的浏览量每天都在增加,都在无形当中给了我继续写博客的动力.最近这两天有听到Jbehave这个名词,上网查了一通,原来是和测试相关的,之前一直做开发,没有做过真正意义上的测试,对于测试的理解更是少之又少.通过这两天的查阅,现将自己的一些理解以及常见概念罗列出来. 正文: Behavior Driven Development,行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者.…
上篇我们说到如何从Github上clone出一个JBehave项目,既是为了学习JBehava,也是为了熟悉下Github.从clone下来的项目看来,基本没什么问题,稍微捋一捋就可以运行,但是就clone下来的代码来看,自己还是遇到一个问题(不知道是代码问题,还是我自己的操作有问题),就是没有办法运行(后面会详说).正如上篇所说,构建一个JBehave的应用的5大步骤: Write story Map steps to Java Configure Stories Run Stories Vi…
本文要阐述的主要有两点,一是介绍自动化测试框架JBehave,二是介绍如何在Github上拉项目,编译成myeclipse环境中的项目,并最终导入Myeclipse中运行. JBehave是何物? JBehave是基于BDD框架的开源自动化测试框架.提供Web集成的BDD层扩展. JBehave特征: JBehave是纯Java实现,可以利用Java丰富的API为己所用: 具有基于文本的story,可以对其进行定义并执行,比较灵活和易扩展: 基于注解(Annotation)的运行配置信息,指定s…
这个系列的文章一共8篇,我酝酿了很多年,参考了很多资源,查看了很多源码,直到今天把它写出来,也是战战兢兢,生怕什么地方写错了,贻笑大方. (一)引言 早在我还是Android菜鸟的时候,有很多技术我都不太明白,也都找不到答案,比如apk是怎么安装的,比如资源是怎么加载的. 再比如说,每本书都会讲AIDL,但我却从来没用过.四大组件也是这个问题,我只用过Activity,其它三个组件,不但没用过,甚至连它们是做什么的,都不是很清楚. 之所以这样,是因为我一直从事的是电商类App开发工作,对于这类A…
(五)AMS 如果站在四大组件的角度来看,AMS就是Binder中的Server. AMS全称是ActivityManagerService,看字面意思是管理Activity的,但其实四大组件都归它管.估计是Android底层开发人员先写了ActivityManagerService用来管理Activity,后来写Service.Receiver.CP的时候发现代码都差不多,于是就全都用ActivityManagerService,但是却忘记改名字了——我也是猜的,纯属八卦. 由此而说到了插件化…
(七)App启动流程第2篇 书接上文,App启动一共有七个阶段,上篇文章篇幅所限,我们只看了第一阶段,接下来讲剩余的六个阶段,仍然是拿斗鱼App举例子. 简单回顾一下第一阶段的流程,就是Launcher向AMS发送一个跨进程通信,通过AMN/AMP,告诉AMS,我要启动斗鱼App. 画一个图,描述一下启动App所经历的7个阶段: 第2阶段 AMS处理Launcher传过来的信息 这个阶段主要是Binder的Server端在做事情.因为我们是没有机会修改Binder的Server端逻辑的,所以这个…
(十)Service Service有两套流程,一套是启动流程,另一套是绑定流程.我们做App开发的同学都应该知道. 1)在新进程启动Service 我们先看Service启动过程,假设要启动的Service是在一个新的进程中,分为5个阶段: 1)App向AMS发送一个启动Service的消息. 2)AMS检查启动Service的进程是否存在,如果不存在,先把Service信息存下来,然后创建一个新的进程. 3)新进程启动后,通知AMS说我可以啦. 4)AMS把刚才保存的Service信息发送给…
(十一)BroadcastReceiver BroadcastReceiver,也就是广播,简称Receiver. 很多App开发人员表示,从来没用过Receiver.其实吧,对于音乐播放类App,用Service和Receiver还是蛮多的,如果你用过QQ音乐,App退到后台,音乐照样播放不会停止,这就是你写的Service在后台起作用. 在前台的Activity,点击停止按钮,就会给后台Service发送一个Receiver,通知它停止播放音乐:点击播放按钮,仍然是发送这个Receiver,…
(十二)ContentProvider (1)ContentProvider是什么? ContentProvider,简称CP. 做App开发的同学,尤其是电商类App,对CP并不熟悉,对这个概念的最大程度的了解,也仅仅是建立在书本上,它是Android四大组件中的一个. 做系统管理类的App,比如说手机助手这种,有机会频繁使用CP. 而对于应用类App,数据通常存在服务器端,其它应用类App也想使用的时候,一般都是从服务器取数据,所以没机会使用到CP. 有时候我们会在自己的App中读取通信录或…
译者注:不知道其他开发者是否和我一样,参与或者写了很多Web项目,但是却没有真正的去完整的部署应用,很多时候都是交给ops即运维的同学帮忙来做.而作为一个有节操的开发者,我认为了解一些服务器方面的知识是很有必要的,读了这篇文章之后,自己对nginx也有了一个初步的认识,对自己很有帮助,不敢独享,遂译之. 如果你是一名Web开发人员,那么你很有可能听过nginx(读音听起来像engine-x). Nginx是一款速度快,功能强大的http以及反向代理服务器,经过简单的配置之后即可以用来托管页面.…
(八)App内部的页面跳转 在介绍完App的启动流程后,我们发现,其实就是启动一个App的首页. 接下来我们看App内部页面的跳转. 从ActivityA跳转到ActivityB,其实可以把ActivityA看作是Launcher,那么这个跳转过程,和App的启动过程就很像了. 有了前面的分析基础,会发现,这个过程不需要重新启动一个新的进程,所以可以省略App启动过程中的一些步骤,流程简化为: 1)ActivityA向AMS发送一个启动ActivityB的消息. 2)AMS保存ActivityB…
(十)PMS及App安装过程 PMS,全称PackageManagerService,是用来获取Apk包的信息的. 在前面分析四大组件与AMS通信的时候,我们介绍过,AMS总是会使用PMS加载包的信息,将其封装在LoadedApk这个类对象中,然后我们就可以从中取出在manifest声明的四大组件信息了. (一) 在下载并安装App的过程,会把Apk存放在data/app目录下. Apk是一个zip压缩包,在文件头会记录压缩包的大小,所以后续在文件尾巴就算是追加一部小电影,也不会对解压造成影响—…
开发人员看测试之TDD和BDD   前言: 已经数月没有来园子了,写博客贵在坚持,一旦松懈了,断掉了,就很难再拾起来.但是每每看到自己博客里的博文的浏览量每天都在增加,都在无形当中给了我继续写博客的动力.最近这两天有听到Jbehave这个名词,上网查了一通,原来是和测试相关的,之前一直做开发,没有做过真正意义上的测试,对于测试的理解更是少之又少.通过这两天的查阅,现将自己的一些理解以及常见概念罗列出来. 正文: Behavior Driven Development,行为驱动开发是一种敏捷软件开…
看一些文章会看到TDD开发模式,搜索后发现有主流四种软件开发模式,这里对它们的概念做下笔记. TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论,TDD首先考虑使用需求(对象.功能.过程.接口等). 主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证.大行其道的一些模式对TDD的支持都非常不错,比如MVC和MVP等. BDD:行为驱动开发(Behavior Driven Develop…
TDD.BDD.ATDD.DDD 软件开发模式 四个开发模式意思: TDD:测试驱动开发(Test-Driven Development) BDD:行为驱动开发(Behavior Driven Development) ATDD:验收测试驱动开发(Acceptance Test Driven Development) DDD:领域驱动开发(Domain Drive Design) 1.TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和…
转载自(此处仅供学习):http://blog.csdn.net/zhenyu5211314/article/details/22033295 1. 首先了解一下这三个开发模式都是什么意思: TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码.TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的…
今天大家已经被winhec刷屏了,本来不想写这篇了,但看了所有的文章,大家关注的都是windows 10的那些新功能,小米win10刷机,联想千元手机,小娜啥的.对于keynote上第二部分 Don Box 的演讲部分大家只字未提,这实在对不起广大的开发人员.那些都是都是给媒体嚼舌根,造舆论的:所以我还是给大家念叨一下真正有价值的东西. 说实话,博主一直搞软件开发的,和硬件的关系仅限于高中和大学假期在中关村攒机的经历(当然还有给女神修电脑,这个谁没干过呢?).为啥我一个搞软件的要来参加硬件大会?…
看了几天的小程序(当然也包括了上手书写),才有了这篇博文,非技术贴,只是发表下个人观点,仅以个人技术能力来看小程序. 首先说下优点: 调试工具:官方的工具还是做了很多工作,包括监听文件变动自动刷新,编译es6等 真机调试:里面集成了github上一款开源调试工具vconsole https://github.com/WechatFE/vConsole 文件关联:关联名称相同的wxss,wxml,js为一个组件的内容 样式:支持flex布局,不用hack 语言:支持es6,可以模块化布置项目的代码…
那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点. 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」.开发过程中,设置为「true」是非常有用多,但在应用程序发布部署时,需将其设置为「false」. <compilation defaultLanguage="C#" debug="false" targetFramework="4.0" /> 2.关闭…
Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核.Linux可安装在各种计算机硬件设备中,比如手机.平板电脑.路由器.视频游戏控制台.台式计算机.大型机和超级计算机.Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统.严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统.Linux得…
win phone开发必看资料,下载地址收藏啦!收藏后可有选择性的下载,希望大家喜欢! 完整附件下载:http://down.51cto.com/data/414417 附件预览: Windows Embedded Standard开发初体验[课件汇总] http://down.51cto.com/data/65627 利用Windows Embedded Standard 7构建操作系统映像 http://down.51cto.com/data/65761 Windows Embedded S…
原文出处: Ben Scheirman 译文出处: Njuxjy 假设你去到一位熟练的木匠的工作室,你总是能发现他/她有一堆工具来完毕不同的任务. 软件开发相同如此. 你能够从软件开发人员怎样使用工具中看出他水准怎样.有经验的开发人员精于使用工具. 对你眼下所使用的工具不断研究,同一时候了解一些替代品的使用.当你眼下所用的工具无法满足你的须要时能够填补空缺. 记住了这些,我将向你展示一份关于各种工具的长长的列表.当中一些我每天都用,其它的我看情况使用.假设你还有很多其它的工具想展示在这个列表里,…
当然不是了,通过这个问题,我顺便跟大家聊聊 ATDD,TDD,BDD3者的区别,方便大家有一个清晰的认识和了解. ATDD: Acceptance Test Driven Development(验收测试驱动开发) 这是一种在编码开始之前将客户带入测试设计过程的技术.它也是一个协作实践,用户,测试人员和开发人员定义了自动验收标准. ATDD有助于确保所有项目成员准确理解需要完成和实施的内容.如果系统未通过测试可提供快速反馈,说明未满足要求.验收测试以业务领域术语进行指定.每个功能都必须提供真实且…
简介AngularJS是目前最为活跃的Javascript框架之一,AngularJS的目标之一是简化开发过程,这使得AngularJS非常善于构建小型app原型,但AngularJS对于全功能的客户端应用程序同样强大,它结合了开发简便,特性广泛和出众的性能,使其被广泛使用.然而,大量使用也会产生诸多误区.以下这份列表摘取了常见的一些AngularJS的错误用法,尤其是在app开发过程中.1. MVC目录结构AngularJS,直白地说,就是一个MVC框架.它的模型并没有像backbone.js…
在实际的项目中,我们可能随时面对各种不同的需求,它的各个方面的要素决定了我们所采用的开发模式. 比如,它的复杂度如何?所有的需求是否足够清晰?开发人员对相关的业务是否足够了解?项目的工期是否合理?种种问题,不一而足.这也决定了我们可能面对不同的需求可能需要采用不同的开发模式.下面大概说几种. 1. TDD TDD指的是Test Drive Development,很明显的意思是测试驱动开发,也就是说我们可以从测试的角度来检验整个项目.大概的流程是先针对每个功能点抽象出接口代码,然后编写单元测试代…
在实际的项目中,我们可能随时面对各种不同的需求,它的各个方面的要素决定了我们所采用的开发模式. 比如,它的复杂度如何?所有的需求是否足够清晰?开发人员对相关的业务是否足够了解?项目的工期是否合理?种种问题,不一而足.这也决定了我们可能面对不同的需求可能需要采用不同的开发模式.下面大概说几种. 1. TDD TDD指的是Test Drive Development,很明显的意思是测试驱动开发,也就是说我们可以从测试的角度来检验整个项目.大概的流程是先针对每个功能点抽象出接口代码,然后编写单元测试代…
首先,测试人员应该参与软件开发的全流程,这一点已经是软件行业的共识了. 其次,新技术.新框架.新思路不断涌现的今天,测试人员除了传统的功能测试,也要不断与时俱进,主动承担起自动化测试.性能测试等.除了更多参与软件流程,测试人员更要以自己的技术能力证明自己的价值! 再次,随着敏捷开发模式的不断迭代发展,敏捷开发的技术和管理模式,已经深入到传统和新兴的各个软件公司. 敏捷开发,除了快速迭代的项目管理模式,还带来了一系列技术实践层面的新思想.新概念.而且,新思路.新概念.新模式也在敏捷开发的一次一次迭…
按下F12之后,开发人员工具在桌面上看不到,但是任务栏里有显示.将鼠标放在任务栏的开发人员工具上,出现一片透明的区域,选中之后却出不来.将鼠标移动到开发人员工具的缩略图上,右键-最大化,工具就全屏出现了.(或者是右键-移动,然后手动调整窗口大小) 但是这时候是单独一个窗口,没有和IE页面结合在一起.点击右上角的固定按钮(快捷键CTRL+P),就和IE结合在一起了,位于页面的下方. 或者是打开工具后,直接按快捷键ctrl+p,就出来了.(当然了,必须先打开开发工具,否则ctrl+p是IE8的打印)…
1.为什么每一个CLR开发人员都需要读这篇文章 和所有的其他的大型代码库相比,CLR代码库有很多而且比较成熟的代码调试工具去检测BUG.对于程序员来说,理解这些规则和习惯写法非常的重要. 这篇文章让所有的CLR开发者都尽量能在较少知识的情况下,去了解CLR中自己工作的那一部分内容.这篇文章将会为你呈现CLR的发展史,以及不同阶段解决的不同问题和不同阶段解决问题以后给开发者带来的一些更加便利的东西. 1.1代码规范 这是最为重要的一个章节!设想一下本文的目录里面的一些项,然后想想自己该如何设计代码…
IE的F12开发人员工具不显示问题: 按下F12之后,开发人员工具在桌面上看不到,但是任务栏里有显示.将鼠标放在任务栏的开发人员工具上,出现一片透明的区域,选中之后却出不来.将鼠标移动到开发人员工具的缩略图上,右键-最大化,工具就全屏出现了.(或者是右键-移动,然后手动调整窗口大小) 但是这时候是单独一个窗口,没有和IE页面结合在一起.点击右上角的固定按钮(快捷键CTRL+P),就和IE结合在一起了,位于页面的下方. 或者是打开工具后,直接按快捷键ctrl+p,就出来了.(当然了,必须先打开开发…