我所接触到的开发自测

和list&非标类团队的开发同学合作了将近1年了,自己在这个阶段看到了一些自测效果提升的情况,分享出来。下表是xlist&非标类团队中15名开发同学2012年上半年和下半年的bug reopen率和低级bug率的统计。可以看到2项指标均有不同程度的下降。经过这半年的实践,小谈一下我接口的开发团队的自测情况。 表一list&非标类团队中15名开发同学的bug统计 时间 总bug数 月均reopen率 月均低级bug率 备注 2012-02-01至2012-06-30 204 ... 详情

hive文件存储格式小记

hive文件存储格式包括以下几类: •TEXTFILE •SEQUENCEFILE •RCFILE •自定义格式 SEQUENCEFILE: SequenceFile是Hadoop API提供的一种二进制文件支持,其具有使用方便、可分割、可压缩的特点。 SequenceFile支持三种压缩选择:NONE, RECORD, BLOCK。 Record压缩率低,一般建议使用BLOCK压缩。 示例: stored assequencefile location '/group/tbdataapplication/mirror/r_auction_auctions_mirror/'; RCFILE RCFILE是一种行列存储相结合的存储方式。... 详情

Chrome扩展浅析

Chrome浏览器以其简洁的风格和支持扩展的特点,得到了广大用户的肯定,同时,作为一个支持扩展的平台,也使浏览器的功能发挥到了极致。 首先扩展和插件是两个有区别的概念,在很长一段时间里,我也认为是一个东西,其实不然。插件是保证产品的可用性,就像我们用浏览器看视频,一定要安装Flash插件,没有就不能正常播放。扩展是提高产品的品质,使得用得更好,比如在浏览器上安装天气扩展,没有天气扩展,浏览器一样可以用,不影响可用性,但是装了天气扩展可以方便查看天气。所以,插件是可用,扩展是用好。 在Chrome商店中(https://chrome.google.com/webstore/category/extensions?hl=zh-CN),扩展已经突破1万。扩展一般包含两个文件,一个文件是扩... 详情

测试数据建模

现在很多软件应用,都设计成2部分:应用程序Application + 数据库DB。要对这种类型的应用软件进行测试,“测试数据”这个概念就非常的关键。测试用例中的“前置条件”,基本就是围绕测试数据来设计的。以淘宝网的测试为例,验证每个功能点时,最重要的就是准备好各种类型的数据对象,比如:不通信用级别的卖家,不同类目属性的商品等等。 熟练的测试工程师手里都会保存一批测试数据(比如账号、商品),并且分类管理,不同场景的测试用例,都会有专门的测试数据来支持。在ta的心里,存在着一套完整的测试设计方案,在工作中也会显得游刃有余。要达到这种状态,需要经过一段时间的积累,需要“磨合”。对测试数据的控制力,也是测试工程师的重要能力之一,可惜这种能力很难被识别,被比较。 最近2年... 详情

使用Xcode工具静态检查分析代码

Clang 是一个 C、C++ 和 Objective-C 编程语言的编译器前端,采用了底层虚拟机(LLVM)作为其后端,提供一个GNU编译器套装(GCC)的替代品。克里斯·拉特纳,在苹果公司的赞助支持下进行开发,而源代码授权是使用类 BSD 的开源授权。 Clang静态分析和Instruments来剖析代码有一些不同,Clang更致力于在编译的过程中通过自身的一套判断机制来找出代码中潜在的隐患。 在XCode 3.2之后的版本里,Clang已经被集成进来,Static Analysis 是基于 Clang 的非常好的静态代码分析工具。可以从xcode直接运行Static Analysis 分析器。 Static Analysis 优点: 1. 使... 详情

javaScript测试框架jasmine介绍(二)

在javaScript测试框架jasmine介绍(一)中介绍了编写jasmine测试脚本的语法结构和一些基本的框架特性,在(二)中笔者继续介绍一些不是十分常用,但在某些场景的测试中可能会用到的框架特性。 先来介绍一下Spies: Jasmine的测试替身被称作spies,spy可以保存任何方法及方法参数的调用痕迹。jasmine有特殊的匹配器来保证spies之间的相互作用。 toHaveBeenCalled这个matcher当spy被调用过时返回true。toHaveBeenCalledWith当参数列表匹配上任何一次spy的调用记录参数时返回true,下图中其余spc都不难理解,只解释,foo.setBar.calls.length为调用setBar的次数。 用andR... 详情

Tomcat源码解读--代码走读之(二十的2-2)container.start(二十一)

当前对象为StandardEngine[Catalina],执行间接父类LifecycleBase的start()方法。类继承关系是StandardEngineextendsContainerBaseimplementsEngine,ContainerBaseextendsLifecycleMBeanBaseimplementsContainer。 1、setStateInternal(LifecycleState.STARTING_PREP,null,false),里面有一个StandardEngine的listener。 (1)、EngineConfig,在此阶段没有动作。 2、StandardEngine的startInternal()内容主要为调用父类Container... 详情

【JAVA基础】RTTI 和 Reflection

outline 1) 什么是RTTI? 2)RTTI应用场景?(什么情况下要直接使用RTTI,什么机制是基于RTTI实现的即间接使用了RTTI) 3) 直接使用RTTI:Class,如何获得类的Class对象 3)Reflection和RTTI的区别 运行时定位class(运行时定位class;编译时就要定位class) 4)Reflection机制的使用包括Class和Reflection API 5) Reflection机制支持了哪些场景框架、机制? ------------------------------------splitter---------------------------- 什么是RTTI 在运行时识别一个对象的类型,... 详情

交叉测试的必要性和遇到的问题

在软件测试过程中,每个项目一般由多名测试工程师组成,分别负责不同模块的测试。对同一个模块进行多轮测试,测试人员对手中的模块无论从整体到细节都有了非常深刻的掌握,但同时存在的定向思维,测试疲态也影响了bug的发现。这种测试模式不但影响了产品的最终质量,同时测试人员对产品整个逻辑和功能的了解也受到了限制。 鉴于上述问题,在测试的过程中引入交叉测试是非常有必要的。所谓交叉测试,是指在测试的某一阶段,测试人员相互交换测试的模块,这样不但可以使不同的测试人员保持测试的新鲜感,还可以进一步发掘测试的未知领域,发现交叉测试的模块和之前测试的模块间的联系,甚至可以构建更多的测试场景,对提高产品的质量也起到了很大帮助。 那么,交叉测试在什么时候引入比较合适呢。第一轮测试是每个测试人员和对应功能模块的... 详情

无线客户端测试流程随想

最近在写年度总结时,对目前项目iPhone客户端的测试流程做了一些分析。由于无线客户端产品和传统的Web端测试所注重的点大有不同,客户端的测试更关注视觉和交互,和各种场景下客户端的处理逻辑,所以测试流程也需要和传统的Web测试有所区别。 希望对无线测试有兴趣的同学们,一起讨论,一起分享。。。 1.目前客户端测试流程。(单线程流程) (1)单线程流程存在问题: 1.测试需要关注视觉,交互,功能等所有的问题,对测试自身专业技能要求过高。测试资源投入和产出比不高。 2.BugBash阶段发现交互,视觉,需求问题,修改成本过大,可能直接导致项目周期不可控,项目质量风险过大。 3.QA在测试过程中提出视觉,交互,需求不足或需求缺少时,很难有主... 详情

Java字符串解惑

Java字符串在我们平时接口测试中使用频率较高,很多人认为这部分很基础没有什么值得探讨的。但是别小看它哦,简单的东东也蕴藏着许多小陷阱呢嘿嘿。。。 有兴趣的我们一起往下看,顺便可以测测看你是不是真正掌握了基础的Java String类呢(*^__^*) 嘻嘻…… 一、认识字符串类String 很多语言中字符串被当做字符数组来处理,那java呢? • 在Java中,字符串是一个对象,是由字符构成的一个序列 • String变量存储的是对String对象的引用,String对象里存储的才是字符串的值 • String对象是不可变的,它的内容是不可改变的 二、常见错误解析 问题1: String str1 = "Java"; Strin... 详情

JAVA_关闭数据库对象探讨

前段时间看了别人写的接口测试代码,对于关闭数据库对象有点疑问,顺带搜索了相关资料学习了下,这里总结如下希望感兴趣的同学能够从中受益,那么分享的目的也就达到了(*^__^*) 嘻嘻... 一、示例说明 我们先来看看下面这段关闭数据库对象的代码哪些地方比较好已经注意规避了?此外存在哪些问题呢? /** * 得到数据库连接 * @return */ public Connection getConnect(){ Connection connection =null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); connection = DriverManager.getCon... 详情

Tomcat源码解读--代码走读之(十九的4)StandardService. start(二十)

1、setStateInternal(LifecycleState.STARTING_PREP,null,false),其中listeners为0,所以在改阶段没有动作。 2、startInternal(),内容如下图。 (1)、setState(LifecycleState.STARTING),因listeners的数量为0,所以此阶段没有动作。 (2)、container.start(),Engine的启动,后续介绍。 (3)、executor.start(),executors为空,在此阶段没有动作。 (4)、connector.start(),连接的启动http/1.1和AJP/1.3,后续介绍。 3、setStateInternal(LifecycleStat... 详情

Tomcat源码解读--代码走读之(十八的2)StandardServer. startInternal(十九)

1、fireLifecycleEvent(CONFIGURE_START_EVENT,null),其中CONFIGURE_START_EVENT="configure_start"。其中6个listeners。 (1)、NamingContextListener 1)、将NamingResources的namingResources赋值为server.xml的GlobalNamingResources对象。 2)、创建一个对象namingContext,是hashtable结构。 3)、securityTokens.put(name,token),其中name=/,token=StandardServer[8005]. 4)、ContextBindings.bindCon... 详情

什么是“测感”

什么是测感呢? 举几个例子:“在一堆乱七八糟的工牌中每个人都能够快速找到自己的工牌。用的是什么算法?”“如果一群姑娘站在你面前,你一眼看过去,就知道哪个长的漂亮,哪个是你喜欢的哪一型的,不需要用尺子量一量身高,再量一量三围。又用了什么算法?”“一接电话就知道是身边的哪位朋友,这时又用了什么算法?”,“盲人知道自家客厅,卧室的哪个方位,为什么看不见也能知道呢?”所以,测感,直面解释,就是你一眼看上去,对产品业务逻辑及系统结构有一种直觉。 “业务逻辑上下文不连贯,不同业务之间的逻辑冲突,系统实现隐患风险,不同系统之间的耦合影响”等Bug实际上说的就是根据测感分析后的结论。 测感不是你看到某个产品用户反馈问题多的时候,不分青红皂白猛扎进去找问题,那不是测感; 测感也不是你看到某个系统... 详情