一个基于面向对象语言的白盒测试模式(以Java为例)

本文详细介绍了基于面向对象语言(以Java为例)的白盒测试模式,包括单元测试和集成测试的基本规则、用例设计、记录和实现。强调了测试的覆盖性和复用性,提出了测试框架、测试用例度量参数和测试覆盖率检查的重要性。
摘要由CSDN通过智能技术生成

 一个基于面向对象语言的白盒测试模式(以Java为例)

                  

作者:廖光明 (liaogm2002@hotmail.com

 

1  概要

1.1 目的

规范项目单元与集成测试过程,统一集成测试、单元测试架构和用例设计,达到测试用例维护性,复用性较好,路径覆盖高的目的。

1.2 术语说明

为便于沟通,引入如下术语表述:

1)         Unit

对于过程性软件,指程序模块或组件;对于面向对象软件指Class,如果Class太大时,也可以操作/方法作为单元。

2)         Unit Test

Unit为范围,测试一个功能集中很详细具体的单个方面,也称为Logic Unit test

对面向对象软件的单元测试,指对某个单独的类编写测试用例. 一般指对类的方法独立进行的测试,测试方法之间无依赖关系,而测试所依赖的外部环境依靠mock或者stubs来控制,logic unit tests 是白盒测试的基础,一般由开发此程序单元的人员负责完成。

3)         Integration test

用于检查已通过Logic Unti test Class的集成协作操作是否符合需求设计说明,也称为Integration Unti test

在面向对象程序设计中,Integration unit tests是白盒测试的关键。

4)         Functional unit test

用于检查已经通过Integration Unti testClass Package输入接口、输出接口是否与需求说明一致,以级检查Package内部可能的冗余代码。

Integration test满足覆盖性要求(包括正常功能覆盖与异常处理覆盖)时,Functional Unit test测试方法类似于系统测试,不关注内部代码实现,其测试过程可参考本人后续的系统测试规范。

三种测试单元关系如下图:

 

 

2  适用范围

适用于面向对象编程的系统。

 

3  测试框架

使用Junit + Ant + CodeCoverage 作为测试框架。

 

4  单元测试基本规则

4.1 单元测试范围

4.1.1需要进行单元测试的类

除自动生成的Entity EJB外所有的Java类都需要实施单元测试,其中对ServletJSP暂缓实施。

 

4.1.2 需要进行单元测试的方法

原则:对其他对象可能会访问的所有方法需要进行显式的单元测试;

1)         public和缺省访问权限的方法都需要进行显式的单元测试;

2)         privateprotected方法的单元测试已经隐含在(1)中,无需再进行单独的单元测试;

3)         setter/getter方法无需进行单元测试,除非它们执行了set/get其属性以外的其他动作;

4.2 测试用例的设计

测试用例是针对方法的,亦即方法的实参用例。测试用例应该包括所有的可能输入情况。

所有单元集成测试都应该实现的测试用例:

1)         正常运行的测试用例;

2)         设计的应当出错(发生异常)的测试用例;

3)         参数为特殊值的测试用例;

4)         常见的各类参数的特殊值:

A.      Object类型的参数值为null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值