ImageVerifierCode 换一换
格式:DOCX , 页数:85 ,大小:41.41KB ,
资源ID:6048377      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6048377.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(白盒测试流程.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

白盒测试流程.docx

1、白盒测试流程白盒测试指南(说明:此白盒测试指南主要给白盒测试人员提供一些基本的白盒测试方法和技术,由于涉及的问题广泛,测试内容中的细节不一定准确和完整,还有待于各位的共同参与和不断完善,欢迎多交流!)目的本方案主要实施NC产品程序代码的白盒测试。使界面符合设计规范,适用于用户;保证程序创建的类与接口的完整与正确,以及程序模块单独正常运行。保证局部模块功能完备性,运行正确性与稳定性。测试项所要测试的类。如:nc.ui.bd.*nc.bs.bd.*nc.vo.bd.*测试依据1. NC产品需求报告;需求规格说明书、用例描述清单2. 设计文档;(OOA、OOD、CRC卡)如:AOM(Analysis

2、 Object Model)表示类间的静态关系,是多个相关的用例共用的。ASD(Analysis Sequence Diagram)是按业务工作的顺序表示每一工作步骤执行时类间的动态关系。一个用例对应一个ASD。CRC (Collaborators & Responsibilities Card)卡是一个类的完整表述3. 界面规范4. 编码规范5. 开发命名标准通过的准则1.界面测试通过的标准:界面的样式、大小、颜色、整体布局的设置;各种标签控件的使用及主题描述以及事件源控件的使用、快捷键使用都应符合NC系统应用框架需求报告和设计文档的相关规范。2.程序代码通过的标准:创建的类、接口、方法、属

3、性应与设计文档保持一致;程序的各种命名、注释、代码行的格式等应符合程序开发命名标准和编码规范;程序模块能独立稳定运行。测试环境配置1 测试工具:2 软件环境:Client端: 操作系统:中文WINNT/2000开发环境:VA3.5 专业版待测试的源码包Server端: 操作系统:WIN NT4.0 开发环境:VA3.5 专业版 通讯环境: Servlet 3 DB Server端:DBMS:SQL SERVER4 资源文件白盒测试总流程测试流程依据,请参见代码层次结构规范。NC系统中的对象主要分为如下几种: 界面对象(UIObject) 数值对象VO(ValueObject) 业务对象BO(B

4、usinessObject) 数据管理对象DMO(DataManageObject)测试流程可按二种方式,其优缺点对照:BODMOUI VO VO UIBODMO前者:优点是便于测试者从界面层直观地录入数据,缺点是做回归测试时,录入数据需重复后者:原则是从底层测试,底层测试通过了,再依次往上一层测试;否则不需往上层测试缺点:需给中间层做一测试小程序:根据程序中类的对象构造输入数据及将结果输出到控制台上,(可通过自行设计测试工具来改善,测试工具需求另附)优点:做回归测试时,不用再构造输入数据,只要再执行一遍小测试程序测试步骤:需要列出所测试类的调用关系和关键方法的调用关系(依据为数据流)。(1)

5、 类关系图。(2) 方法的功能调用关系图:只需要列出一些调用关系较复杂的方法。7.1. 配置好测试环境;7.2. 编写测试用例;另附7.3. 静态测试,走查代码;代码走查使用测试用例启发检测错误,沿程序逻辑走一遍,检测程序结构和实现上是否有问题7.4. 动态测试 界面初始化状态测试; 界面控件功能测试;(正反用例); 业务功能测试(正反用例); 数据流关联测试(涉及多表的增、删、改),并结合数据库表的字段、外键、字段类型、精度、小数位数、非空、默认值、备注、数据对象等。 数据传递和接收一致,数据计算或处理后状态正确; 组合模块整体运行稳定,不出现死机;7.5. 确定问题属性:分为四类:错误、缺

6、陷、失效、故障错误是指计算值、观测值、测量值之间,或条件与真值之间,不符合规定的或理论上的正确值或条件缺陷是指与期望值或特征值的偏差故障是指功能部件不能执行所要求的功能。故障可能由错误、缺陷或失效引起。失效是指功能部件执行其功能的能力丧失,系统或系统部件丧失了在规定限度内执行所要求功能的能力7.6. 确定问题类别:问题类别分为以下几大类:1.各层公用问题2.JAVA语言规范3.数据类型4.SQL语句规范5 界面UI6.VO数值对象7.BO业务对象8.DMO数据管理对象9.业务逻辑重点10.事务处理与隔离级别测试(详见总体技术部相关文档)11效率测试(详见总体技术部相关文档)7.7. 填写测试报

7、告测试记录需详细填写具体实施方法中的相关列表;上交的测试报告只需填写未通过的项。(详见第10节)具体实施方法:8.1). 各层公用问题:序号测试项测试内容质量保证标准问题属性出错频率T1代码与设计对照按需求、UI,CRC设计文档与编码对照,看是否完全地实现了所有的UI设计文档和CRC卡中规定的内容?完备性错误T2代码与设计对照按需求、UI,CRC设计文档与编码对照,看是否创建了所需的数据库或其他初始化数据文件?完备性错误T3参数返回值方法中被传递参数的类型、个数、顺序及返回值是否正确?以符合UI设计文档和CRC卡为准。正确性错误T5参数的传递当方法需要调用其它方法时,调用的参数是否正确?(UI

8、设计文档和CRC卡中有调用说明)正确性错误T6命名是否按命名规范进行了类、方法、变量、属性的命名?正确性错误T7公式代码中的公式是否使用了设计文档中的相应数学公式。正确性错误T8注释注释是否使用简洁明了的语言对每一个方法都进行了充分必要的描述?是否对复杂的代码进行了注释?当程序的运行是受某些特殊因素限制时,是否做了限制注释?是否列出限制模块运行特性的全部特殊因素?易理解性缺陷T9冗余语句和变量是否存在永远执行不到的语句和变量,而降低了程序的可理解性?易理解性缺陷T10程序是否冗余对于程序中的大量重复内容,是否使用了专门的类来实现?可验证性缺陷T11代码整体规范是否自始至终使用了程序员开发手册和

9、编码规范中要求的格式、调用约定、结构等?一致性缺陷T12代码与书写注释在一个函数内代码的长度不允许超过100行。建议如果一个函数的代码长度超过一个屏幕,那么或许这个函数太长了。使用统一的格式化代码。将放在所有者的后面,并且在下一行代码前加入TAB键缩进;(TAB键比用若干个空格更容易控制使用统一的缩进距离)类的注释;接口的注释;函数的注释;类属性的注释;局部变量的注释;请详见:代码与注释书写风格规范易理解性缺陷TT13包命名是否符合程序包命名规范TT14类1.创建的属性(字段)是否完整,类型与命名是否规范,注释是否清楚合理。2.创建的方法是否完整;命名是否规范;修辞是否正确;参数,参数类型,返

10、回类型是否正确。3.调用的方法和传递的参数是否正确。1. 参数传递、返回值是否正确2. 特殊校验、处理是否有注释TT15类命名第一个字母大写的英文正常语序每个功能点的主程序(通常继承系统管理框架)统一采用ClientUI类名称。业务逻辑代码类以BO结尾,如:GeneralLedgerBO数值对象类以VO结尾,如:EmployeeVO数据管理对象类以DMO结尾,如:EmployeeDMO查询对象类以QO结尾,如:EmployeeQO非参照对话框类以Dlg结尾,如:EditEmployeeDlg参照对话框类以Ref结尾,如:WorkCenterRef面板类以Panel结尾,如:GeneralLed

11、gerPanelTT16接口接口名的开头加上字母I前缀从第二个字母起,用首字母大写的英文单词描述TT17方法1是否正确定义了此方法(包括修辞词、返回类型、参数、参数类型)2注释是否清楚3命名是否正确: 方法函数名的第一个单词小写,后面的单词第一个字母大写; 第一个单词必须是动词,使函数的意义清晰明了; 存取对象的属性使用setXXX()和getXXX()函数形式 访问布尔类型的属性可以使用isXXX()函数TT18类属性 所有类属性全部以m_开头,同其它变量区分开。 集合类型的域,如数组、向量,必须使用复数形式来指出它们多值特性。 所有的域都是私有的,用并且仅用getXXX和setXXX等的存

12、取函数去访问域,。 存取函数的可见性尽量为protected属性的,getter函数可以是public属性的 存取函数的命名规则是:getter函数 = get + 域名 (非布尔类型域) is + 域名 (布尔类型域)setter函数 = set + 域名TT19常量常量的命名全部使用大写。用下划线来分隔单词。MAX_VALUESTART_DATEMINIMUM_BALANCETT20类所实现的功能是否实现了要求的所有功能TT21类中的校验方法1 界面级的校验是否齐全2 业务级的校验是否齐全完备性错误TT22继承性封装性多态性面向对象程序是否体现继承、封装和多态的特性?TT23面向对象特性面

13、向对象程序中,编写类的方法时,是否同时考虑基类方法(Base:Function())的行为和继承类方法(Derived:Function())的行为TT24数据封装性数据成员是否满足数据封装的要求。有时强制的类型转换会破坏数据的封装特性。例如:class Hidenprivate:int a=1;char *p= hiden;class Visiblepublic:int b=2;char *s= visible;.Hiden pp;Visible *qq=(Visible *)&pp;在上面的程序段中,pp的数据成员可以通过qq被随意访问TT25类中成员方法以OOD为依据,类中成员方法是否实

14、现了设计中所要求的功能;如通过OOD仍不清楚,则还应依据OOA、及需求报告说明书8.2). JAVA语言规范走查内容序号测试项测试内容质量保证标准问题属性出错频率J1下标是否有下标变量越界错误?健壮性错误J2除数是否包含有除零错误的可能?健壮性错误J4Get方法当对一个不知是否为空的对象取其属性值会引起空指针异常。如果空指针异常没有被接收程序将终止。例如:BusinessData1.getBusinessDate2.getOid()当BusinessData1.getBusinessDate2为null时,BusinessData1.getBusinessDate2.getOid()将发生异常

15、健壮性错误J5字符串在字符串比较和将字符串写入数据表前应Trim()掉它的前后空格。健壮性错误J6字符串连结符+将字符串连结操作中的+操作符同加法运算中的+操作混淆将导致奇怪的结果。例如:y为int类型,y的值为5,g.drawString(y+2=+y+2,30,30);将显示y+2=52正确性错误J7Floatdouble不要用等于或不等于来比较浮点值,而应该判断其差别是否小于某一指定小的值。例如:89.6 实际可能为89.59999232458正确性错误J8Floatdouble不要对浮点值用做计数循环,应用整型值。正确性错误J9Floatdouble不要使用类型float或者doubl

16、e的变量执行精确的金融计算。浮点数的不精确会导致引起不正确金融计算的错误。可定义若干类来完成不同的金融计算。正确性错误J10switchswitch语句的末尾如果没有defaul语句将会不利于处理异常。健壮性缺陷J11switch是否在switch结构中的每一个case语句体结束时都有break语句?正确性错误J12if语句在if语句体右括号后紧跟一个分号常常是一个错误,会使if语句成为顺序语句。正确性错误J13循环语句通过循环语句对一Vector型变量赋值时,其Vector变量的实例化语句是否被错误地包含在循环体内?正确性错误J14循环语句注意循环的条件中是否有差1的现象?正确性错误J15循

17、环语句代码是否有无穷循环的可能?(循环条件永远为真)可预测性错误J16数值范围是否存在溢出错误J17ThisSuperThis和Super的用法是否正确J18构造子是否缺少构造子方法J19方法声明、参数、返回值方法声明错误参数错误返回值错误J20计算计算错误J21比较比较错误J22控制流控制流错误J23类的修饰符修饰符是否符合以下原则:Public用于对所有的类可见,Private用于对本类可见Protected不仅用于对子类可见,也用于对同一个包的其它所有类可见8.3). 数据类型:序号测试项测试内容质量保证标准问题属性出错频率D1Null转化在设置值对象VO时,在VO内部是否将空串将转化n

18、ull,数值型数据(整数、浮点数)null转为0。*D2Null转化在取得VO元素放到界面时(如放到UITextField)是否根据需要将null转化为或0或”0.0”。D4控件数据类型的转换编辑控件数据类型是否与表中对应字段数据类型一致1UITextField文本域数据类型在nc.ui.pub.beans.textfield包的UITextType接口中定义了TextStr、TextInt、TextDbl、TextDate和TextDateTime等5类,但布尔型使用UICheckBox或UIRadioButton控件,故没有定义布尔型。D5UFDouble的使用去掉原UFCurrency类

19、型,重新封装UFDouble,所有的数值型及运算是否采用UFDouble。D6UFDateTime的使用去掉原UFTime类型,重新封装UFDateTime。D7某些数据封装类型的禁用禁止使用的数据封装类型,如Boolean、Short、Long、Float、Double、Date。D9双精度型控件的范围控制对双精度型控件是否控制最大长度范围:如:对双精度型,数据库表中字段设为Decimal类型,pricision为20位,Scale为8位 则需加入语句:ivjtxtShipUnitNum.setMaxLength(20); ivjtxtShipUnitNum.setNumPoint(8);D

20、11最大长度的设置设置最大长度MaxLength(默认20位、对TextDate与TextDateTime无效),D12小数位数的设置设置小数位数NumPoint(默认4位、只对TextDbl有效)D13禁止输入字符的设置设置禁止输入的字符DelStr,整数和浮点数也可设置禁止字符串,如: /禁止输入负数 setTextType(TextStr); setDelStr(-); /只输入数字型字符 setTextType(TextDbl); setDelStr(-.);D14对齐方式整数和浮点数默认右对齐,其它左对齐,可以改变D15左边字符锁定的设置设置左边字符锁定 (1)setFixText(

21、String)-设置串并锁定和字符串相同的长度 (2)setFixText(String,int)-设置串并锁定参数给定的长度 (3)setFixTextLen(int)-锁定参数给定的长度 (4)setText(String)-设置串并取消锁定 任何设置都会修改以前设定的锁定长度 8.4). SQL语句规范:(详见数据库处理规范)序号测试项测试内容质量保证标准问题属性出错频率S1书写规范语句全部用小写S2SQL语法 禁止使用“select * from ”语法。 禁止使用“insert into table_name values(?,?,)”语法, 统一使用“insert into tab

22、le_name (col1,col2,) values(?,?,.)”。S3SQL语法如果在语句中有not in(in)操作,是否考虑用not exists(exists)来重写。S4类型转换避免显式或隐含的类型转换。例如在where子句中numeric 型和int型的列的比较S5当SQL语句含有运算符时,运算符需与其他字符串用空格区分。否则容易导致以下类似问题。在语句select ab from table 中, a,b均为变量。拼写该语句时,如果a=6, b= -3,则语句变为select 6-3 from table。-变为Sql的注释,语句报错S6查询优化为提高索引的效率,查询路径优化

23、(尤其是要尽力减少查询嵌套)。S7视图使用静态视图,不允许动态创建视图,索引,存储过程等数据库对象S8Null不能将Null 与 空串“”视为相同S9多表连接1.SQL语句包含多表连接时,是否加上表的别名。3. 子查询问题。对于能用连接方式或者视图方式实现的功能,不要用子查询。例如:select name from customer where customer_id in ( select customer_id from order where money1000)。应该用如下语句代替:select name from customer inner join order on custom

24、er.customer_id=order.customer_id where order.money100。3. 多表关联查询时,写法必须遵循以下原则,这样做有利于建立索引,提高查询效率。格式如下select sum(table1.je) from table1 table1, table2 table2, table3 table3 where (table1的等值条件(=)) and (table1的非等值条件) and (table2与table1的关联条件) and (table2的等值条件) and (table2的非等值条件) and (table3与table2的关联条件) an

25、d (table3的等值条件) and (table3的非等值条件)。S10复杂SQL语句对复杂SQL语句必须单独测试:如多表查询拚写语句是否符合业务要求S11多数据库适配1.Sql语句转换类。调用方法:SqlTranslator trans = new SqlTranslator(); destSql = trans.getSql(sourceSql, databaseType)。2提供SQLException信息转换。同一个SQL在不同数据库操作,JDBC返回的错误号以及错误信息不同。SQLException信息转换器将不同JDBC返回的错误号统一为以Sql Server7.0为准,错误信

26、息仍以不同JDBC返回的错误信息为主S11多数据库适配3SQL语法限制(1) 字符串连接必须用“|”符号。例如: select f1 | f2 from test:而不是: select f1 + f2 from test; 如果用“+”号,则Oracle不支持。(2) 左连接的写法必须带“outer”关键字。例如:select f1 from t1 left outer t2 on t1.f1 = t2.f1;而不是: select f1 from t1 left t2 on t1.f1 = t2.f1。(3) 参与左连接的列不能为常量例如,不允许如下语句: select * from t1

27、 left outer join t2 on t1.f1=A。(4) 在Case when语句中只能出现 =、=、= 以及is null运算符,不能出现 、 、!=、以及is not null运算符。 否则在Oracle的decode函数无法表达。(5) 在Case when语句中参与比较的列只能有一个。例如不能使用如下 casewhen语句:case when f1 1 then .when f2 1 then end。(6) 在对char类型比较时,要对列加上rtrim()函数,否则在Oracle中不会得到正确结果。(7) 在Delete、Update、Insert、Select语句中ch

28、ar类型的数值引用使用单引, 例如语句:Insert into t vlaues(“book”,5)在SQL Server中可以使用,而在Oracle、DB2中不支持。应为:Insert into t vlaues(book,5) 。(8) 通配符不能使用a-c%这种形式,应写成如:select * from table_name where col1 like a% OR col1 like b% OR col1 like c% 。(9) 不能通过来top n/percent限制查询结果集的记录数,oracle不支持(10) Union、order by、Group by、having、betweenand、in、exists、is null 用法一致

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1