博文

软件测试---白盒测试指南(一三)(2007-06-27 12:54:00)

摘要:错误码DM13举例,如:数据库表bd_invcl中加一字段avgprice,执行完后sql语句后,PreparedStatement类型的stmt中执行set语句的顺序要与数据库表中字段顺序一致。否则出错 String sql = "insert into bd_invcl(pk_invcl, invclassname, invclasscode, endflag, avgprice, invclasslev) values(?, ?, ?, ?, ?, ?)";        Connection con = null;        PreparedStatement stmt = null;        try {               con = getConnection();               stmt = con.prepareStatement(sql);               // set PK fields:               String newOid = getOID();               stmt.setString(1, newOid);           &......

阅读全文(2568) | 评论:0

软件测试---白盒测试指南(一二)(2007-06-27 12:53:00)

摘要: B12 在BO、DMO类中调用另一个BO对象时是否保证一个事务内的正确实现 在BO和DMO类中,如要使用其它BO对象,必须使用getBeanHome()方法获得。假如BO1的一个方法内要使用BO2,那么示例如下:         BO2Home home = getBeanHome(“BO2Name”, BO2Home.class);         BO2 bo2 = BO2Home.create();         bo2.method1(); 其中,getBeanHome()方法的第一个参数(“BO2Name”)是一个字符串,代表BO2的JNDI名称。我们技术部的中间件默认的JNDI名称由“包名.remote接口名”构成,例如,对上述BO2(假定它位于nc.bs.mypackage包中),默认的JNDI名称是“nc.bs.mypackage.BO2”。 不可直接New一个BO对象的实例,否则中间件将无法控制和确保其事务属性的正确实现       B13 向数据库插入一条记录时,是否为它获得唯一主键(OID) 提供OID的算法由系统管理统一处理,通过在DMO基类的两个接口方法getOID(String pk_corp)和getOIDs(String pk_corp, int amount)提供给业务模块使用。其中,参数pk_corp是此记录所属的公司的主键。如果参数pk_corp为null,则默认为集团公司的数据。       B14 业务级校验 业务级校验方法是否齐全           8.1).  DMO(数据管理对象):     序号 测试项 测试内容 质量保证标准 问题属性 出错频率 DM0 继......

阅读全文(2401) | 评论:0

软件测试---白盒测试指南(一一)(2007-06-27 12:52:00)

摘要:8.1).  ValubleObject:数值对象 一个VO类包装一组代表业务含义的数据,负责在系统各层之间传递业务数据。通常一个VO对应一个数据库表,但也可以对应多个数据库表,或对应一个数据库表的部分字段。     序号 测试项 测试内容 质量保证标准 问题属性 出错频率 VO1 继承性 该类是否继承于VO类 正确性 错误   VO2 get()和set()方法是否齐全 VO类是否包含每个需要持久化属性的setXXX和getXXX方法。 在set方法中是否对属性进行合法性校验,校验失败抛出ValidationException异常 正确性 错误   VO3 构造子 该类应包含无参构造子、只含参数OID的构造子 正确性 错误   VO5 参数 全参构造子中参数的顺序是否与set语句的顺序一致?(去掉) 正确性 错误   VO6 语句体 在每个set方法中是否有修改对应属性的语句体? 正确性 错误   VO7 语句体 在每个get方法中是否有返回对应属性的语句体? 正确性 错误   VO8 空值问题 所有为保存操作员的录入数据而创建VO对象的类属性应初始化为null,直到操作员录入数据时才为相应属性分配空间和赋值。在保存到数据库时,把空属性(null)映射为数据库相应字段的null。       VO9 Integer、Double包装类型 由于Java的Primitive Type类型(如int、double)不是对象,所以不能使用它们作为类属性类型,应该采用对应的Integer、Double等相应的包装类型。           8.2). BO业务对象层: 每个BO类都继承BusinessObject类。B......

阅读全文(2606) | 评论:0

软件测试---白盒测试指南(十)(2007-06-27 12:51:00)

摘要: UI28 业务功能测试 系统初始化状态测试 1.   系统初始化分为两种,初次使用本系统时各界面的初始化和再次使用本系统时各界面的初始化。主要测试各菜单和功能按扭的缺省状态(变灰与激活)是否合理;各种控件的缺省值是否正确。 2.对于母子表的界面,注意母子表是否能同步显示,显示的明细记录是否正确。       UI29 新增: l          操作逻辑是否合理(包括业务数据输入的先后顺序)。比如应先定位树节点,再按新增按钮; l          按下新增按钮后,各功能按钮和菜单状态变化是否正确;界面的编辑框是否刷新(注意合理的保留值不应刷新);光标定位是否合理。 l          能否输入合法的数据;能否正常地调出参照框,并导入所需的数据(包括下拉框,参照对话框,右键菜单等)。能否正常修改或清除数据(需要注意参照框的此项要求)。 l          在没保存所编辑的记录时,进行其他操作,系统是否提示保存新增记录,对话框文本是否正确合理。 l          按保存按钮后,是否进行全面的逻辑校验(与设计文档相符),与正常的业务逻辑保持一致;提示文本是否正确合理,对话框能否正常操作(见非正常用例阶段的通用对话框测试描述)。退出对话框后光标定位是否合理。 l          能否正常保存数据。界面数据显示是否正确。菜单、其它功能按钮及控件状态变化是否合理。 l          能否查询到此记录,查询到......

阅读全文(1941) | 评论:0

软件测试---白盒测试指南(九)(2007-06-27 12:50:00)

摘要:8.5.1.         UI功能测试 分为两个主要手段: l         非正常用例手段:此阶段主要是采用不合法的输入数据和非正常的操作手段。测试系统的错误控制与处理能力。保证系统不死机,能正常稳定运行。 l         正常用例手段:此阶段主要采用合法的业务数据,正常的操作手段。保证UI符合设计要求和操作习惯,能正常稳定运行,能正确处理业务数据。   1、界面规范测试 2.界面初始化测试 3、编辑控件(除功能按钮以外的控件)应用测试; 4、通用对话框测试 5、参照框测试; 6、状态栏测试 7、业务功能测试(新建、保存、删除、查询、浏览、退出) 8. 界面级校验测试   序号 测试项 测试内容 质量保证标准 问题属性 出错频率 UI20 界面规范测试 1.同一界面,不能同时在同一屏上打开多个。 2.菜单、控件的一致性测试:与设计文档相比较。主要查看菜单与控件是否齐全,控件的类型是否正确。 3.界面的整体布局测试:控件的整体布局是否协调,颜色,尺寸是否合理。具有操作逻辑的控件,其摆放的先后位置是否合理。 4.图标、标题、标签测试:各种图标使用是否符合规范;标题文本、标签文本是否正确合理。 5.控件的鼠标提示文本测试:是否有鼠标提示,提示文本是否正确合理(针对重要的控件)。         UI21 界面初始化测试 1.“增加”、 “退出”、“浏览”按钮是否被激活,“取消”按钮是否变灰。 2.界面是否自动列示最后(或最前)一条记录?(如在列表/卡片型界面中的卡片中) 3.各种标签文本和图标提示文本是否正确         UI22 界面控件功能测试 1.最小化、......

阅读全文(2479) | 评论:0

软件测试---白盒测试指南(八)(2007-06-27 12:49:00)

摘要:8.1). 界面UI层: 为提高测试效率,界面UI层测试可将黑盒测试技术和白盒测试技术结合起来进行测试 8.5.1.         代码规范: 序号 测试项 测试内容 质量保证标准 问题属性 出错频率 UI1 继承类 1.从ToftPanel继承一个类。每个界面类都要继承ToftPanel:         public class myUI extends ToftPanel{…}       UI2 添加按钮 2. 是否为界面类添加它需要的按钮。 a)         添加按钮属性。 b)        添加按钮组属性 c)        将按钮设置到界面上。在构造方法中是否添加如下语句:             setButtons(m_aryButtonGroup);       UI3 响应按钮 3. 响应按钮。在onButtonClicked(ButtonObject bo)方法中,处理按钮事件:     public void onButtonClicked(ButtonObject bo) {         if (bo == m_boNormalButton) {             onNormalButtonClicked(......

阅读全文(2658) | 评论:0

软件测试---白盒测试指南(七)(2007-06-27 12:48:00)

摘要:8.1). SQL语句规范:(详见数据库处理规范) 序号 测试项 测试内容 质量保证标准 问题属性 出错频率 S1 书写规范 语句全部用小写       S2 SQL语法 l          禁止使用“select  *  from ”语法。 l          禁止使用“insert into table_name values(?,?,……)”语法, l          统一使用“insert into table_name (col1,col2,……) values(?,?,…...)”。       S3 SQL语法 如果在语句中有not in(in)操作,是否考虑用not exists(exists)来重写。       S4 类型转换 避免显式或隐含的类型转换。例如在where子句中numeric 型和int型的列的比较       S5   当SQL语句含有运算符时,运算符需与其他字符串用空格区分。否则容易导致以下类似问题。在语句select a–b from table 中, a,b均为变量。拼写该语句时,如果a=6, b= -3,则语句变为select 6--3 from table。--变为Sql的注释,语句报错       S6 查询优化 为提高索引的效率,查询路径优化(尤其是要尽力减少查询嵌套)。       S7 视图 使用静态视图,不允许动态创建视图,索......

阅读全文(2958) | 评论:0

软件测试---白盒测试指南(六)(2007-06-27 12:48:00)

摘要:8.1). 数据类型:   序号 测试项 测试内容 质量保证标准 问题属性 出错频率 D1 Null转化 在设置值对象VO时,在VO内部是否将空串""将转化null,数值型数据(整数、浮点数)null转为0。*       D2 Null转化 在取得VO元素放到界面时(如放到UITextField)是否根据需要将null转化为""或"0"或”0.0”。       D4 控件数据类型的转换 编辑控件数据类型是否与表中对应字段数据类型一致 1.UITextField文本域数据类型在nc.ui.pub.beans.textfield包的UITextType接口中定义了TextStr、TextInt、TextDbl、TextDate和TextDateTime等5类,但布尔型使用UICheckBox或UIRadioButton控件,故没有定义布尔型。         D5 UFDouble的使用 去掉原UFCurrency类型,重新封装UFDouble,所有的数值型及运算是否采用UFDouble。       D6 UFDateTime的使用 去掉原UFTime类型,重新封装UFDateTime。       D7 某些数据封装类型的禁用 禁止使用的数据封装类型,如Boolean、Short、Long、Float、Double、Date。       D9 双精度型控件的范围控制 对双精度型控件是否控制最大长度范围: 如:对双精度型,数据库表中字段设为Decimal类型,pricision为20位,Scale为8位   则需加入语句: ivjtxtShipUnitNum.setMaxLength(20);    &nbs......

阅读全文(2842) | 评论:0

软件测试---白盒测试指南(五)(2007-06-27 12:47:00)

摘要: J12 if语句 在if语句体右括号后紧跟一个分号常常是一个错误,会使if语句成为顺序语句。 正确性 错误   J13 循环语句 通过循环语句对一Vector型变量赋值时,其Vector变量的实例化语句是否被错误地包含在循环体内? 正确性 错误   J14 循环语句 注意循环的条件中是否有差1的现象? 正确性 错误   J15 循环语句 代码是否有无穷循环的可能?(循环条件永远为真) 可预测性 错误   J16 数值范围 是否存在溢出错误       J17 This Super This和Super的用法是否正确       J18 构造子 是否缺少构造子方法       J19 方法声明、参数、 返回值 方法声明错误 参数错误 返回值错误       J20 计算 计算错误       J21 比较 比较错误       J22 控制流 控制流错误       J23 类的修饰符 修饰符是否符合以下原则: Public用于对所有的类可见, Private用于对本类可见 Protected不仅用于对子类可见,也用于对同一个包的其它所有类可见                  ......

阅读全文(2206) | 评论:0

软件测试---白盒测试指南(四)(2007-06-27 12:46:00)

摘要:8.1). JAVA语言规范走查内容 序号 测试项 测试内容 质量保证标准 问题属性 出错频率 J1 下标 是否有下标变量越界错误? 健壮性 错误   J2 除数 是否包含有除零错误的可能? 健壮性 错误   J4 Get方法 当对一个不知是否为空的对象取其属性值会引起空指针异常。如果空指针异常没有被接收程序将终止。例如:BusinessData1.getBusinessDate2.getOid()当BusinessData1.getBusinessDate2为null时, BusinessData1.getBusinessDate2.getOid()将发生异常 健壮性 错误   J5 字符串 在字符串比较和将字符串写入数据表前应Trim()掉它的前后空格。 健壮性 错误   J6 字符串连结符"+" 将字符串连结操作中的+操作符同加法运算中的+操作混淆将导致奇怪的结果。例如:y为int类型,y的值为5,g.drawString("y+2="+y+2,30,30);将显示y+2=52 正确性 错误   J7 Float double 不要用等于或不等于来比较浮点值,而应该判断其差别是否小于某一指定小的值。例如:89.6 实际可能为89.59999232458 正确性 错误   J8 Float double 不要对浮点值用做计数循环,应用整型值。 正确性 错误   J9 Float double 不要使用类型float或者double的变量执行精确的金融计算。浮点数的不精确会导致引起不正确金融计算的错误。可定义若干类来完成不同的金融计算。 正确性 错误   J10 switch switch语句的末尾如果没有defaul语句将会不利于处理异常。 健壮性 缺陷   ......

阅读全文(3203) | 评论:0