Fork me on GitHub
Google

测试数据与代码分离的测试

今天看到花花同学写的白盒测试的白皮书,大致翻了下。感觉缺少点什么,之前也一直都在讨论,测试数据与测试代码是否需要分离,测试代码如何建设冗余的问题。如何解决这2个问题,feed4junit是一种思路,我对比junit 4和feed4junit的功能,大致了解这些功能的实现。 对于网站的接口测试,常常面临的一个场景:大量不同的输入,但处理逻辑的业务不变,对其结果进行验证也会有不同的期望值。按照之前的一些思路,往往会为每一组输入和输入写一个case,达成大量的代码冗余。 基于上面的场景,junit 4给出了参数化的特性,从而实现了不同的输入对应相同的代码。

阅读更多...

Google

java反射机制及动态代理

目前正在看Hadoop RPC框架的源码,在深入了解这些之前,有一些基础知识需要回顾下。 java反射机制及动态代理 java网络编程 java NIO 先总结下第一个,java反射机制及动态代理的相关知识点: java反射机制 在看与java反射机制相关的代码前,试着看看下面这几个问题: 什么是反射? 为什么使用反射?

阅读更多...

Google

编写可阅读代码的艺术-读书笔记

编写可阅读代码的艺术 1. 代码应易于理解 1.1 可读性的基本标准: 代码的写法应该使别人理解它需要的时间最少 1.2 代码短并不是易理解的标准,2者基本没有关系: 如下面2段功能一致的代码。 代码片段1: assert(!(bucket = FindBucket(key)) || !bucket -> IsOccupied()) 代码片段2: bucket = FindBucket(key); if (bucket != null) assert(!bucket -> IsOccupied())

阅读更多...

Google

ClassLoader详解

ClassLoader是神马? 先回顾一下java程序运行过程和class加载的原理: java程序运行过程:一个java程序都是由一些*.class字节码文件组成。程序的运行,需要从入口函数开始(如main()),调用相关的class文件中的方法,如果该字节码文件找不到,则会抛出系统异常。 class文件加载原理:程序启动时,并不会一次性加载程序所要用的所有class文件,而是根据程序的需要,通过Java的类加载机制(ClassLoader)来动态加载某个class文件到内存当中的。只有当class文件被载入到了内存之后,才能被其它class引用。

阅读更多...

Google

mysql db字符集升级至utf8mb4

为什么需要升级 最近,因业务方的数据库支持utf8mb4,而DataX同步工具还停留在支持utf8字符集上。导致一些同步任务无法正确同步emoji等表情符号字段,出现大量的乱码。 mysql 5.5.3版本之前,utf8编码最多支持3个字节,也就是BMP这部分的编码区,范围0000~FFFF这一部分。

阅读更多...

Google

体验墙外生活的一种方案-L2TP/IPSec-VPN

Linode使用有一段时间了,上面一直都搭着PPTP作为翻墙VPN,实际上使用蛮少的。最近想躺在床上就可以通过ipad翻墙看看新闻,但是查了下方法,大家都一直建议使用L2TP/IPSec VPN。 翻阅了不少人博客上的搭建方法,本来以为蛮简单的一个事情,还是折腾了2个晚上才搞定。我试着记录下这次折腾的步骤,或许可以减少大家的误操作。 我搭建的基础环境如下: Linode VPS

阅读更多...

Google

Truth:就是这么迷人

使用junit框架为基础,写单元测试,集成测试等等。都有可能写下这么一段代码: Set foo = ...; assertTrue(foo.isEmpty()); // or, shudder, foo.size() == 0 没有什么复杂的逻辑,无非就是验证foo是否为空得一个断言。这个时候,大家会看到下面这段异常信息,莫名其妙:

阅读更多...

Google

思路决定出路

现在, 3条产品线的自动化都已在进行中,平时大家也都会碰到一些问题,这些问题的解决思路也是决定我们的工作效率的一个关键因素。 今天帮媛媛解决一个问题后,突然有一点感触,就把它写了下来,比较凌乱,大家凑合看看吧! 重点不是在这个问题的复杂程度,而是在我们平时的问题解决思路上。

阅读更多...

Google

分布式系统测试–使用HttpServer的一个并发问题

上周发布的一个系统,出现了一个很诡异的现象。抽象一下描述,问题大概就是这样的: 需求: 一次http请求,通过url的params来读取服务器上的一个日志,并将日志内容返回给用户。 问题表现: 存在一定的机率,一次请求返回的内容,与期望的内容不一致。也就是所谓的串日志问题。

阅读更多...


top