白盒测试指南

  • 格式:pdf
  • 大小:287.91 KB
  • 文档页数:22

文件编号:UF/QP/2-09/QI/005编写:冯蕾蕾审核:SEPG日期:01/10/25版号:1.0页号:1/22

白盒测试指南

(说明:此白盒测试指南主要给白盒测试人员提供一些基本的白盒测试方法和技术,由于涉

及的问题广泛,测试内容中的细节不一定准确和完整,还有待于各位的共同参与和不断完善,

欢迎多交流!)

1.目的

本方案主要实施NC产品程序代码的白盒测试。使界面符合设计规范,适用于用户;保证程序创建

的类与接口的完整与正确,以及程序模块单独正常运行。保证局部模块功能完备性,运行正确性

与稳定性。

2.测试项

所要测试的类。如:

nc.ui.bd.*

nc.bs.bd.*

nc.vo.bd.*

3.测试依据

1.NC产品需求报告;

需求规格说明书、用例描述清单

2.设计文档;(OOA、OOD、CRC卡)

如:AOM(AnalysisObjectModel)表示类间的静态关系,是多个相关的用例共用的。

ASD(AnalysisSequenceDiagram)是按业务工作的顺序表示每一工作步骤执行时类间的动态关

系。一个用例对应一个ASD。

CRC(Collaborators&ResponsibilitiesCard)卡是一个类的完整表述

3.界面规范

4.编码规范

5.开发命名标准

4.通过的准则

1.界面测试通过的标准:界面的样式、大小、颜色、整体布局的设置;各种标签控件的使用及主题

描述以及事件源控件的使用、快捷键使用都应符合《NC系统应用框架需求报告》和《设计文档的

相关规范》。

2.程序代码通过的标准:创建的类、接口、方法、属性应与《设计文档》保持一致;程序的各种命

名、注释、代码行的格式等应符合《程序开发命名标准》和《编码规范》;程序模块能独立稳定运

行。

5.测试环境配置

1.测试工具:

2.软件环境:

Client端:文件编号:UF/QP/2-09/QI/005编写:冯蕾蕾审核:SEPG日期:01/10/25版号:1.0页号:2/22

操作系统:中文WINNT/2000

开发环境:VA3.5专业版

待测试的源码包

Server端:

操作系统:WINNT4.0

开发环境:VA3.5专业版

通讯环境:Servlet

3.DBServer端:DBMS:SQLSERVER

4.资源文件

6.白盒测试总流程

测试流程依据,请参见《代码层次结构规范》。

NC系统中的对象主要分为如下几种:

界面对象(UIObject)

数值对象VO(ValueObject)

业务对象BO(BusinessObject)数据管理对象DMO(DataManageObject)

测试流程可按二种方式,其优缺点对照:VOVO

前者:优点是便于测试者从界面层直观地录入数据,缺点是做回归测试时,录入数据需重复

后者:

原则是从底层测试,底层测试通过了,再依次往上一层测试;否则不需往上层测试

缺点:需给中间层做一测试小程序:根据程序中类的对象构造输入数据及将结果输出到控制台上,(可通

过自行设计测试工具来改善,测试工具需求另附)

优点:做回归测试时,不用再构造输入数据,只要再执行一遍小测试程序

7.测试步骤:

需要列出所测试类的调用关系和关键方法的调用关系(依据为数据流)。

(1)类关系图。

(2)

方法的功能调用关系图:只需要列出一些调用关系较复杂的方法。UIBODMODB

DMOBOUIDB文件编号:UF/QP/2-09/QI/005编写:冯蕾蕾审核:SEPG日期:01/10/25版号:1.0页号:3/22

7.1.配置好测试环境;

7.2.编写测试用例;

另附

7.3.静态测试,走查代码;

代码走查使用测试用例启发检测错误,沿程序逻辑走一遍,检测程序结构和实现上是否有问题

7.4.动态测试

界面初始化状态测试;

界面控件功能测试;(正反用例);

业务功能测试(正反用例);

数据流关联测试(涉及多表的增、删、改),并结合数据库表的字段、外键、字段类型、精度、小数

位数、非空、默认值、备注、数据对象等。

数据传递和接收一致,数据计算或处理后状态正确;

组合模块整体运行稳定,不出现死机;

7.5.确定问题属性:

分为四类:错误、缺陷、失效、故障

错误是指计算值、观测值、测量值之间,或条件与真值之间,不符合规定的或理论上的正确值或条件

缺陷是指与期望值或特征值的偏差

故障是指功能部件不能执行所要求的功能。故障可能由错误、缺陷或失效引起。

失效是指功能部件执行其功能的能力丧失,系统或系统部件丧失了在规定限度内执行所要求功能的能力

7.6.确定问题类别:

问题类别分为以下几大类:

7.7.填写测试报告

测试记录需详细填写具体实施方法中的相关列表;

上交的测试报告只需填写未通过的项。(详见第10节)1.各层公用问题

2.JAVA语言规范

3.数据类型

4.SQL语句规范

5界面UI

6.VO数值对象

7.BO业务对象

8.DMO数据管理对象

9.业务逻辑重点

10.事务处理与隔离级别测试(详见总体技术部相关文档)

11.效率测试(详见总体技术部相关文档)文件编号:UF/QP/2-09/QI/005编写:冯蕾蕾审核:SEPG日期:01/10/25版号:1.0页号:4/22

8.具体实施方法:

8.1).各层公用问题:序

号测试项测试内容质量保证

标准问题

属性出错

频率

T1代码与设

计对照按需求、UI,CRC设计文档与编码对照,看是否完全地实现了所有的UI设计文档和

CRC卡中规定的内容?完备性错误

代码与设

计对照按需求、UI,CRC设计文档与编码对照,看是否创建了所需的数据库或其他初始化数

据文件?完备性错误

参数

返回值方法中被传递参数的类型、个数、顺序及返回值是否正确?以符合UI设计文档和

CRC卡为准。正确性错误

参数的传

递当方法需要调用其它方法时,调用的参数是否正确?(UI设计文档和CRC卡中有

调用说明)正确性错误

命名是否按《命名规范》进行了类、方法、变量、属性的命名?正确性错误

公式代码中的公式是否使用了设计文档中的相应数学公式。正确性错误

注释注释是否使用简洁明了的语言对每一个方法都进行了充分必要的描述?是否对复杂

的代码进行了注释?当程序的运行是受某些特殊因素限制时,是否做了限制注释?

是否列出限制模块运行特性的全部特殊因素?易理解性缺陷

冗余语句

和变量是否存在永远执行不到的语句和变量,而降低了程序的可理解性?易理解性缺陷

程序是否

冗余对于程序中的大量重复内容,是否使用了专门的类来实现?可验证性缺陷

代码整体

规范是否自始至终使用了《程序员开发手册》和《编码规范》中要求的格式、调用约定、

结构等?一致性缺陷

代码与书

写注释在一个函数内代码的长度不允许超过100行。建议如果一个函数的代码长度超过一

个屏幕,那么或许这个函数太长了。

使用统一的格式化代码。将‘{’放在所有者的后面,并且在下一行代码前加入TAB

键缩进;(TAB键比用若干个空格更容易控制使用统一的缩进距离)

类的注释;

接口的注释;

函数的注释;

类属性的注释;

局部变量的注释;

请详见:《代码与注释书写风格规范》易理解性缺陷

T13包命名是否符合程序包命名规范

T14类1.创建的属性(字段)是否完整,类型与命名是否规范,注释是否清楚合理。

2.创建的方法是否完整;命名是否规范;修辞是否正确;参数,参数类型,返回类

型是否正确。

3.调用的方法和传递的参数是否正确。

1.参数传递、返回值是否正确2.特殊校验、处理是否有注释文件编号:UF/QP/2-09/QI/005编写:冯蕾蕾审核:SEPG日期:01/10/25版号:1.0页号:5/22T

T15类命名第一个字母大写的英文正常语序

每个功能点的主程序(通常继承系统管理框架)统一采用ClientUI类名称。

业务逻辑代码类以BO结尾,如:GeneralLedgerBO

数值对象类以VO结尾,如:EmployeeVO

数据管理对象类以DMO结尾,如:EmployeeDMO

查询对象类以QO结尾,如:EmployeeQO

非参照对话框类以Dlg结尾,如:EditEmployeeDlg

参照对话框类以Ref结尾,如:WorkCenterRef

面板类以Panel结尾,如:GeneralLedgerPanel

T16接口接口名的开头加上字母‘I’前缀

从第二个字母起,用首字母大写的英文单词描述

T17方法1.是否正确定义了此方法(包括修辞词、返回类型、参数、参数类型)

2.注释是否清楚

3.命名是否正确:

方法函数名的第一个单词小写,后面的单词第一个字母大写;

第一个单词必须是动词,使函数的意义清晰明了;

存取对象的属性使用setXXX()和getXXX()函数形式

访问布尔类型的属性可以使用isXXX()函数

T18类属性所有类属性全部以m_开头,同其它变量区分开。

集合类型的域,如数组、向量,必须使用复数形式来指出它们多值特性。

所有的域都是私有的,用并且仅用getXXX和setXXX等的存取函数去访问域,。

存取函数的可见性尽量为protected属性的,getter函数可以是public属性的

存取函数的命名规则是:

getter函数=get+域名(非布尔类型域)

is+域名(布尔类型域)

setter函数=set+域名

T19常量常量的命名全部使用大写。用下划线来分隔单词。

MAX_VALUE

START_DATE

MINIMUM_BALANCE

T20类所实现

的功能是否实现了要求的所有功能

T21类中的校

验方法1.界面级的校验是否齐全

2.业务级的校验是否齐全完备性错误

T22继承性

封装性

多态性面向对象程序是否体现继承、封装和多态的特性?

T23面向对象

特性面向对象程序中,编写类的方法时,是否同时考虑基类方法(Base::Function())的

行为和继承类方法(Derived::Function())的行为