计算机辅助生成QC统计文档

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1章文档概述1.1编写目的在测试项目管理中,我们需要知道精确的进度信息。但在使用QC作为测试项目管理工具时,QC只提供了一些基础的报表,没有提供复杂的分析数据。我们在使用QC作为管理工具的测试项目中,用JAVA开发了一个辅助工具。本文档简单介绍这个工具的设计思路和使用方法。本文不讲解本工具所基于的JAVA开发语言和jxl库,不讲解eclipse开发平台的用法,不讲解数据库基础,也不讲解QC的使用方法。如果需要了解这些信息,请读者通过其他渠道学习。本项目使用QC10.0.0.1946版本,使用oracle10g数据库:共31页第2页1.2术语和缩略语无。1.3参考资料HPQualityCenterDatabaseReference。第2章总体设计思路2.1在测试管理中需要哪些信息我们在测试管理过程中,需要一些信息来帮助我们更严格、更细致的管理测试过程,而QC只提供了一些基础数据。如果需要更详细、更综合的信息,需要对这些基础数据进行分析。那么,我们需要哪些QC不能直接提供的信息呢?每一个测试计划中的任意层级的主题节点包含了多少个案例?请参见“测试案例索引”。测试计划中的测试案例是否已经都按计划进入到测试集中了?请参见“测试案例索引”。每一位测试人员的测试进度达到什么程度了?请参见“人员工作进度”、“模块交易完成度统计”、“XX子系统交易完成度统计”等。每一位测试人员还有哪些测试案例没有执行并且通过?还有哪些测试案例没有通过?请参见“测试集索引”。哪些缺陷没有按计划修复?请参见“缺陷分析”。哪些缺陷屡改屡错?请参见“缺陷分析”。还有其他需求么?如果有,尽管继续列出来,然后写程序去实现吧。需要注意的是,这些信息,QC都已经提供了,但QC并没有把这些信息整合起来,不便于测试管理人员一目了然的了解相关情况。因此,我们开发了这个辅助工具,从QC的数据库中进行专题分析。我们开发的这个工具,是用JAVA写的一个非商业化的工具,没有任何图形界面,而且,也只是将结果输出到EXCEL表格(没有图)。但是,基于这个软共31页第3页件的思路,可以采用AWT、J2EE或者其他框架进行更商业化的包装。2.2QC提供了哪些资料QC的提供了足够多的联机帮助文档。不太好的消息是,这些文档是用英文书写的。好消息是,要获得这些文档,并不需要连接互联网,只需要能够使用测试项目中使用的QC就可以了。进入QC后,点击上方的菜单:帮助文档库:在弹出的页面上,看到《HPQualityCenterDatabaseReference》了么?它就是我们自己开发QC辅助工具必不可少的参考书。因为,我们没有办法得到QC的设计文档,只能自己去分析数据库,来得到自己需要的信息了。点击后面的“Online”超级链接,可以从这个QC服务器上下载一份chm格式的文档。共31页第4页2.3直接查看QC数据库在QC提供的帮助文档中了解到数据库的基本信息后,最好是再到数据库里去得到一些直观的认识吧。共31页第5页整个数据库分成很多schema。我们注意到,每一个项目都会在数据库中创建一套完整的数据库表,并用schema名字作为区分。Schema的命名规则是:域名_项目名_DB。QC提供的文档中给出的数据库表结构说明,并不一定是最新的,请使用PL/SQL的右键菜单“描述”获得最准确的信息:共31页第6页使用PL/SQL的右键菜单“查询数据”读取表中的数据,获得直观的印象:共31页第7页2.4测试项目使用QC的标准流程我们假定使用如下的QC标准流程进行测试:需求截图:共31页第8页测试计划截图:测试实验室截图:共31页第9页缺陷截图:2.5测试项目中的实体定义用QC测试项目的管理员(注意,不是QC站点管理员),进入QC项目管理功能:共31页第10页2.5.1需求本项目中,需求实体完全采用QC标准的定义:共31页第11页2.5.2测试增加一个用户字段“案例类型”,指出案例是用于验证正常流程还是用于攻击测试等目的:其中,“查找列表”中的“Priority”的定义如下:共31页第12页测试实体中的“状态”的值域定义如下:其中,“Design”表示处于设计状态(还没有发布),“Imported”表示从其他地方导入的案例,“Ready”表示案例已经就绪、可以执行了,“Repair”表示案例处于修改状态(还没有发布)。上述这四个是QC提供的标准状态。在本项目中,新增了一个“已审核”状态,这个状态的目的是指出案例已经被审核过了。但实际上,这个状态并没有用,而且,这个状态本身就与“Ready”状态有重叠。建议读者在测试实践中不要使用这个状态。共31页第13页在本项目中新增的另外一个状态“暂缓”,笔者认为非常有必要。例如,在整个测试项目的第一轮测试过程中,某些案例并不具备测试条件,需要在后续几轮予以执行。但为了不影响第一轮的案例执行率、未执行案例等统计信息,需要将这些状态设置为“暂缓”状态,表示这个案例不在“打开”状态的测试集及测试进度等统计中,但又不需要将该案例从原来的主题移到某个特殊的目录下。另外,考虑到实际测试项目中,并不是每一个组织都愿意花费时间去严格使用“Design”和“Ready”状态来管理测试案例的编制流程,本工具并没有区分除了“暂缓”状态的另外五个状态,而是将它们一视同仁。2.5.3测试集我们没有在测试集实体中增加额外的用户字段:测试集实体中“状态”的值域定义如下:共31页第14页其中,“打开”(Open)表示测试集正在执行中,“已关闭”(Closed)表示测试集已经执行完成。在本项目中新增的另外一个状态“未开放”(Ready)。在整个测试项目过程中,在某一轮测试还没有结束时,就需要先着手准备后一轮测试的测试集。为了不影响测试进度等统计数据,需要将这些未来要执行的测试集状态设置为“未开放”。“暂缓”的案例也可以放入“未开放”的测试集,而不会影响任何统计数据。2.5.4缺陷增加三个用户字段“根主题”、“开发方”、“预计修复时间”:共31页第15页本测试项目涉及到多个子系统,为了在缺陷诊断会上快速区分缺陷属于哪个子系统,因此设置“根主题”的列表类型的用户字段。共31页第16页本测试项目涉及到多个开发方,为了在缺陷诊断会上快速区分缺陷属于哪个开发方,因此设置“开发方”的列表类型的用户字段。共31页第17页QC提供了一个“估计修复时间”的系统字段,这个字段是integer类型,表示从发现缺陷到修复缺陷,估计需要多少天。但在本项目中,经常出现缺陷修复的多次延期,而且,还需要从缺陷发现时间加上“估计修复时间”两个字段进行简单计算才能知道具体是哪一天应该修复缺陷,很不方便。因此,我们增加了“预计修复时间”这个日期类型的自定义字段。在创建缺陷时,要求测试人员必须指定以下字段:根主题、主题,并且,尽量从测试集视图链接并创建缺陷。共31页第18页本项目中使用的缺陷的系统字段“状态”的值域如下表:共31页第19页2.6其他事项为了使用本工具,需要在数据库中创建一个拥有DBA权限的用户。第3章工具介绍3.1QCHelper命令参数说明本工具的主程序入口是QCHelper.main()。共31页第20页本工具同时用于两个测试项目,因此,定义了两个变量run4ebank、run4debit,用于指出需要执行哪个项目的统计。qchelper.setTransactionDate(null);这个语句用于指定统计时使用的交易日期,null表示执行者使用的PC电脑当前的系统日期,“2012-11-09”表示使用2012年11月9日作为交易日期。更详细的运行参数在exec_for_EBANK()或者exec_for_DEBIT()中定义。这些参数详细的说明如下:Stringproj_name=E_BANK;//QC中定义的项目名称Stringurl=jdbc:oracle:thin:@XXX.XXX.XXX.XXX:1521:orcl;//JDBC连接数据库的完整地址Stringuser=xxx;//登录数据库的拥有DBA权限的用户名Stringpasswd=xxx;//登录数据库的用户密码Stringdomain_name=DEFAULT;//QC中定义的“域”名称booleanincludeDeleted=false;//是否包含已经删除到“取消附加”中的测试案例booleanincludeAuto=true;//是否包含从其他类似项目批量导入的用作参考的测试案例//输出的报表文件的前缀。输出文件的格式为:前缀+固定名称+交易日期后缀+.xlsStringfile_prefix=XX银行XX系统;//案例输出到Excel文档时,索引sheet中输出的主题树的最大深度。0表示输出所有层级的主题树,通常用于测试过程中内部使用。如果是上报给领导,建议将此值设置为1或者2。intmax_subject_depth_to_excel_test=0;共31页第21页//缺陷输出到Excel文档时,索引sheet中输出的主题树的最大深度intmax_subject_depth_to_excel_bug=1;//每个项目,最上层的主题的ID,需要自己到数据库里去查询,或者从本工具生成的测试案例索引表中去找。某些项目,会将测试案例复制若干份作为备份或者不同轮次的测试集,此时就需要设置这个变量。如果项目中只使用一套测试案例(笔者认为,这是更值得推荐的一种方法),则只需要将最上层主题ID设置为2.inttop_subject_id=2;//最上层测试集的父节点的ID,如果只需要输出某一轮测试集,需要设置这个变量。否则,将其设置为0就可以了。inttop_fold_father_id=0;//最上层测试集的父节点的名称,这个名称只用于输出到测试集文档索引sheet的最上层统计值所在行。Stringtop_fold_name=XX系统测试;//在输出模块交易总表时,是否输出子系统项下的各级模块的明细。False表示只输出子系统级的统计值booleanoutput_trans_detail=false;//作为本工具的人员分工配置的输入文件的名称,需要放在java工程的根目录下Stringin_excel_name=交易映射及人员分工表.xls;//作为本工具的人员分工配置的输入文件中的sheet的名称Stringin_sheet_name=交易映射表;//作为本工具的不测(不进入统计项)的主题配置的输入文件中的sheet的名称Stringnotexec_sheet_name=不测的主题;intmax_depth_in_userjob=2;//用户进度表中的主题深度booleanexecStatusByOpenSet=true;//是否根据打开的测试集计算测试案例的执行状态//是否在索引中输出测试集ID字段。通常根据主题输出深度决定。也可以自行设置。inttest_set_id_col=(max_subject_depth_to_excel_test==0)?1:0;//是否在索引中输出主题ID字段。通常根据主题输出深度决定。也可以自行设置。intsubject_id_col=(max_subject_depth_to_excel_test==0)?1:0;共31页第22页3.2配置文件说明3.2.1交易映射表配置文件需要设置“交易映射表”、“不测的主题”、“任务分工表”三个sheet。其中,前两个sheet的格式是相同的:3.2.2任务分工表任务分工表的格式如下:共31页第23页其中,A-G列,直接来自于测试集统计表中的索引sheet。“测试负责人”、“计划执行日期”需要手工指定。测试管理人员在编制测试集时,无需在QC中逐一调整测试集中的测试负责人和计划执行日期,只需要在本sheet中批量设置测试集层级的测试负责人和计划执行日期,本工具的TestSetBatcher.main()可以批量更改数据库中的测试负责人及计划执行日期。这个小工具对于测试案例数量非常多(成百上千)的情况下非常实用。3.3报表说明3.3.1人员工作进度人员任务

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功