使用Junit做单体测试的分析

使用Junit做单体测试的分析
一、Junit的优缺点
1.优点
· JUnit 测试能让您更快地开发出质量更高的代码。
· JUnit 测试检查它们自身的运行结果并提供及时的反馈。
· JUnit 测试能被组织成呈层次结构的多个测试套件。
· 您能快捷地并廉价地编写 JUnit 测试案例。
· 开发人员能很容易地完成 JUnit 测试。
· JUnit 测试是用 Java 写成的。
· JUnit 能测试 EJBs,servlets 和线程程序。
· JUnit 是围绕两种主要的设计模式而设计的:命令模式和复合模式。
· JUnit 是免费的。
2.缺点
· JUnit 不会从测试代码中分离出测试数据。
· JUnit 不能对 Swing GUIs, JSPs 或者 HTML 进行单元测试。
· JUnit 测试不能取代功能测试。即使您所有的单元测试都成功,也并不意味着你的软件一切就绪。
· JUnit 不能单元测试服务器端的 Java 代码。几种 Xunit 测试框架被设计用来单元测试服务器端的 Java 代码。
二.使用Junit写测试用例的建议
针对上个项目UT阶段虽Junit的测试代码不少,但IT阶段BUG数量仍大大超出计划值的现象,对使用Junit写测试用例的原则做如下建议,尽量达到在保证测试无遗漏的情况下使用最少的Junit代码量。

1.使用路径分析法结合边界条件来保证被测代码的所有语句至少执行一次。
 例:某方法的流程图如下图所示:

流程图
 
① 根据流程图找出独立路径,并画出流图,上例的相应流图如下所示:

流图
 
其中:每一个圆,称为流图的节点,代表一个或多个语句,流程图中的处理方框序列和菱形决策框可映射为一个节点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个节点,即使该节点并不代表任何语句,边和节点限定的范围称为区域。
② 根据流图获得独立路径的集合,上例的独立路径的集合如下:
路径1:1-11
路径2:1-2-3-4-5-10-1-11
路径3:1-2-3-6-8-9-10-11
路径4:1-2-3-6-7-9-10-1-11

③ 针对每一条独立路径编写出测试用例
④ 可以通过如下三种方法之一来计算独立路径的上界:
1. V=E-N+2,E 是流图中边的数量,N 是流图节点数量。
2. V=P+1,P 是流图G 中判定节点的数量
3. V=R,R 是流图中区域的数量

     例如,(b)流图可以采用上述任意一种算法来计算独立路径的数量
1. 流图有4 个区域,所以V=4
2. V=11 条边-9 个节点+2=4
3. V=3 个判定节点+1=4
由此为了覆盖所有程序语句,必须设计至少4 个测试用例使程序运行于这4 条路径。
⑤ 对于输入数据使用边界值法编写其他的测试用例

2.对于一些比如普通Bean类的set/get方法、只是简单的封装JAVA API,没有复杂的逻辑和算法的方法不需写JUnit测试用例。

3.对于方法测试有交叉的情况,如A方法中调用了B方法,那么测试A方法时,已经运行过的B方法的独立路径,在测试B方法时则不需再测。
三、新项目实施单元测试的计划
1.单元测试仍将进行自动化持续集成测试;
2.对于非GUI部分,在继续使用ANT + Junit的同时,引入静态BUG分析工具FindBugs,以帮助提高代码质量以及排除隐含的缺陷;
3.对于GUI部分,将调查自动化测试工具。


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值