快捷键

修改快捷键 window-》preference-》general-》keys:
查找引用:ctrl+shift+g
覆盖测试:alt+shift+E,T
复制一行:ctrl+alt+down
调试运行:alt+shift+D,T
改为:
查找引用:ctrl+g
覆盖测试:ctrl+W
复制一行:ctrl+d
调试运行:ctrl+q

概念

变异(数字、返回值、errMsg)
循环用例(BinarySearchTree test2)
容易出现变异的地方(自定义异常)
多个测试用例
用反射(复制对比,Datalog hasCode)
我的测试步骤(代码最多、私有函数)
使用eclipse代码模板
半自动化测试:生成随机数据、记录随机数据来跑分支,记录对应的结果来断言

bug检测率

  针对特定的应用场景,写好了测试用例,运行测试用例,发现程序的行为和测试用例中预期的不一致,则称这个程序出bug了。

  行为不一致的具体表现为:返回值、运算符、条件判断、数值(引用、数字、字符串变化)等。这些在项目升级或者完善的时候容易出现,这时,测试用例就派上用场了,能用于检测升级后是否出现了bug。

  如何检测测试用例的有效性呢?主要指标是分支(语句)覆盖率和bug检测率。以上可见,bug出现在项目升级或者完善时,改动而来的变化,但在实际应用中不可能等到项目升级了才来检测用例是否有效,有工具可以来模拟这些变化,这些变化则称之为“变异”,将程序输入,进行变异后,输出多份代码。每份代码都认为出现了bug,因为里面的部分代码被工具改动了,即和原来的项目代码表现不一致了。用这些变异后的代码运行测试用例,要求测试用例运行失败,这样才算是检测出bug了,否则都通过的话,则没检测出bug。

插件

覆盖率插件:eclemma
变异插件:http://muclipse.sourceforge.net/site/site.xml
https://sourceforge.net/projects/muclipse/?source=typ_redirect

反射例子

package refExample;

import java.lang.reflect.Field;
import java.lang.reflect.Method; public class Main {
public static void main(String[] args) throws Exception{ Class clazz = A.class; { //调用有参静态方法
Method f1 = clazz.getDeclaredMethod("f2", new Class[]{int.class});
f1.setAccessible(true);
f1.invoke(null, 123);
}
{ //调用无参静态方法
Method f1 = clazz.getDeclaredMethod("f2", null);
f1.setAccessible(true);
f1.invoke(null, null);
}
{ //设置静态属性
Field field = clazz.getDeclaredField("aa");
field.setAccessible(true);
field.set(null, 7); Method f1 = clazz.getDeclaredMethod("f1",null);
f1.setAccessible(true);
f1.invoke(null, null);
}
{ //设置成员属性
A a = (A) clazz.newInstance();
Field field = clazz.getDeclaredField("a");
field.setAccessible(true);
field.set(a, 99); Method f1 = clazz.getDeclaredMethod("f3",null);
f1.setAccessible(true);
f1.invoke(a, null);
}
} }
class A{
private static int aa;
private static void f1(){
System.out.println(aa);
}
private static void f2(int a){
System.out.println(a);
}
private static void f2(){
System.out.println("no p 2 ");
} private int a;
private void f3(){
System.out.println(a);
}
}

Java测试技巧的更多相关文章

  1. Java测试工具和框架

    个人目前只接触过JUnit以及Powermock,后续会关注更多有关测试这方面的东西 8个超实用的Java测试工具和框架_开发/数据库_IT专家网 http://database.ctocio.com ...

  2. 初学者的API测试技巧

    API(应用程序编程接口)测试是一种直接在API级别执行验证的软件测试.它是集成测试的一部分,它确认API是否满足测试人员对功能.可靠性.性能和安全性的期望.与UI测试不同,API测试是在没有GUI层 ...

  3. Java数组技巧攻略

      Java数组技巧攻略 0.  声明一个数组(Declare an array) String[] aArray = new String[5]; String[] bArray = {" ...

  4. Java测试工具

    1.   开源测试工具: http://www.open-open.com/43.htm 2.   10款常用的JAVA测试工具 :http://developer.51cto.com/art/200 ...

  5. 在Jmeter中使用自定义编写的Java测试代码

    我们在做性能测试时,有时需要自己编写测试脚本,很多测试工具都支持自定义编写测试脚本,比如LoadRunner就有很多自定义脚本的协议,比如"C Vuser","Java ...

  6. 如何使用 Java 测试 IBM Systems Director 的 REST API

    转自: http://www.ibm.com/developerworks/cn/aix/library/au-aix-systemsdirector/section2.html 如何使用 Java ...

  7. 第一次Java测试及感触

    周四进行了java测试,感触很深,测试的题目是用Java实现一个ATM机的管理系统.最后3个小时后,我没有完成这次测试,但是我找到了自己的很多不足,明确了自己的问题究竟在哪里. 关于这次测试我不会的最 ...

  8. java新手抖机灵(java新手技巧)

    java新手抖机灵(java新手技巧) 1.交换两个整数的值 好处是不用定义临时变量,显得代码简洁,提高运行效率 其实也可以用+-*/进行这种运算 比如可以这样: a = a + b; b = a - ...

  9. 开发测试技巧|辅助开发调试:goolge浏览器利用F12在控制台输入脚本实现表单自动填充

    一个开发测试技巧的指引和截图,利用google浏览器的F12调试和Console执行,注入JavaScript脚本实现表单的自动填充和测试. 原文链接: http://www.lookdaima.co ...

随机推荐

  1. rn-splash-screen 启动页 ios

    1.删除iOS工程文件夹下的 LaunchScreen.xib 文件 2. 3.  如果第4步不一样的样式,可以重新走这个图片的步骤就行 4.进入iOS工程的AppDelegate.m中做如下修改: ...

  2. SpringBoot | 遇坑总结 | JPA

    1. Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ...

  3. [題解] luogu p1220 關路燈

    區間dp 题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯. ...

  4. 消息队列介绍、RabbitMQ&Redis的重点介绍与简单应用

    消息队列介绍.RabbitMQ&Redis的重点介绍与简单应用 消息队列介绍.RabbitMQ.Redis 一.什么是消息队列 这个概念我们百度Google能查到一大堆文章,所以我就通俗的讲下 ...

  5. JS面向对象方法(一): 使用原生JS 实现导航栏下多级分类弹出效果

    利用二级菜单的onmouseover/out事件 重新构建一级菜单 ".hover" 样式类 代码如下: CSS部分: 在原来的目标:hover样式中 增加 .hover状态 li ...

  6. bzoj2806 [Apio2012]dispatching【可并堆】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2809 保存可并堆模版代码. #include <cstdio> #include ...

  7. bzoj2818: Gcd懵逼乌斯反演

    由于是单组数据,强行不分块O(n)过 线性筛部分非常神奇,用了一个奇妙的推导(懒得写了) #include <bits/stdc++.h> using namespace std; ],f ...

  8. Jmeter----小技巧(3)

    1.关闭启动Jmeter时出现的面板 说明:启动Jmeter的同时往往会打开一个下图所示的面板,经常不小心关掉后,导致Jmeter停止运行,偶尔写了好久的脚本没来得及保存就没了,烦恼不已 怎样避免如上 ...

  9. 转 SecureCRT 使用X11 转发功能打开图形化窗口

    https://yq.aliyun.com/articles/53308 摘要: 有些时候,有些程序可能需要依赖图形界面才能启动,例如安装Oracle时(其实oracle支持命令行安装),例如需要启动 ...

  10. 110 Balanced Binary Tree 平衡二叉树

    给定一个二叉树,确定它是高度平衡的.对于这个问题,一棵高度平衡二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过 1.案例 1:给出二叉树 [3,9,20,null,null,15,7] ...