
1引言
1.1编写目的
本文档对天津农合行稽核监督及操作风险监控系统的单元测试进行分析总结,读者主要面向参与本项目的开发人员和测试人员,另外还有天津农合行相关领导和专家。
1.2背景
◆项目来源
传统上,银行的风险指信贷风险和市场风险,在操作风险管理上较为落后。当前对操作风险的预防主要放在监督中心,现有的监督软件只能做到通过分散地挑选一部分凭证来对流水进行核实,对于没有凭证的业务不能进行监控。对整个业务的综合分析,只能通过人工的方式凭业务人员的自身素质进行简单判断,若要对需复杂计算、大数据量分析后才能得到的风险信息,就需要运用计算机手段来实现。原先由人工进行监督,只能对凭证进行全面监督,无法根据业务重要性区分监督重点。
近年来银行内部人作案层出不穷,由于这些人熟悉银行制度、系统的漏洞,作案手段有很强的连续性和隐蔽性,通常一般监督难以发现。
现阶段,部分银行还存在以下问题:
●凭证保存不便,查阅困难。凭证经过事后监督后送回网点,由网点分散保管,占据了行内存放凭证的空间,查阅凭证费时费力,要递送凭证纸张,浪费时间,并且由于经常查阅导致凭证损坏。
●整个事后监督操作比较分散,不适应前台业务整合和核算一体化的管理要求。
●人工审票重点不突出。一般由事后监督人员手工翻阅部分传票,无法选择高风险业务进行重点监督。
●人工审票需要具有较高素质、较多经验的监督人员,这样对监督人员要求高,人员培训也要花费很大的开销。
●不能实现基于历史交易统计和关联交易分析。目前各家银行在风险的防范上均采取了各种措施,包括主业务系统内部实现的基于交易的控制,以及基于当天业务数据的简易的分析,但是随着目前高智商犯罪的增加,做案分子专门找制度的漏洞,使得每一笔业务本身都是正确的,而只有基于大量业务的统计和关联交易进行分析时才发现。
●对风险缺乏制度化的整套管理制度。风险模型的提出和建立、风险的生成和查询、风险的处理、风险的打印、风险的核销和落实没有制度化的方法来保证,效率低下。
风险的响应不及时。一般地,70%的风险案件需要查找到原始凭证或者凭证的图像,但是目前的银行凭证的管理和风险的分析属于两个不同的部门,使得即使发现了风险,等到落实查找时已经过去了许多天,不能及时减少风险带来的损失。
有效地管理和方便地调阅庞大的交易流水信息和凭证影像信息,高效监督并及时发现操作方面的风险日益受到银行各级领导的重视,为了适应行内前台业务整合和核算一体化的管理要求,达到减员增效和提高监督质量的目的,建立一套完善的、自动化程度高、扩展性强的集流水勾对、帐务处理、稽核和统计分析、决策支持的全新的监督系统已迫在眉睫。
为了解决银行面临的以上问题,信雅达公司提供的综合事后监督系统引入了OCR光学识别技术,集凭证录入、图像处理、智能识别、数据核对、海量存储、精确查询、重点监督于一体的计算机辅助管理系统,实现了凭证档案的缩微,并在实现凭证影像精确索引的基础上,建立业务处理风险预警监督中心,结合影像和流水实现对业务的重点监督,替代银行原有的手工监督和账务监督的模式,逐步实现了事后监督的自动化。
该项目的可行性研究,正是基于这样一种背景,为统一影像技术的应用范围、应用模式、业务需求、技术方案和加强该项技术的应用管理而提出来的。
◆委托单位
天津农合行;
◆开发单位
信雅达系统工程股份有限公司;
◆主管部门
天津农合行业务监控中心、天津农合行信息技术中心
1.3定义
CMM 软件能力成熟度模型
OCR 光学字符识别
CSBANK IPS 天津农合行稽核监督及操作风险监控系统
1.4参考资料
[1] 天津农合行产品业务需求书
[2] CMM软件规范,信雅达质量管理部,2010.4.18
[3] 天津农合行稽核监督及操作风险监控系统需求规格说明,项目组,200
[4] 天津农合行稽核监督及操作风险监控系统概要设计说明书V1.0.0,项目组,2009
[5] 天津农合行稽核监督及操作风险监控系统数据库结构说明书V1.0.0,项目组,2009
2单元测试项目及结果
2.1 扫描程序
| 单元测试计划 | |
| 标识 | 扫描.粗索引录入模块 |
| 组件功能项 | 完成粗索引的录入 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | BatchInputInfo.h, BatchInputInfo.c |
| 编号 | 1.001 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 正确显示粗索引信息,并检验用户输入的有效性 |
| 测试内容描述 | 检查用户是否输入了网点号或柜员号,是否有输入项为空 |
| 输入期望 | 有一个为空的输入项 |
| 功能处理期望描述 | 无法通过检验,错误信息为粗索引信息不能为空 |
| 输出期望 | 粗索引信息不能为空 |
| 单元测试结果 | |
| 实际输入数据 | 柜员为空 |
| 实际处理情况描述 | 用户点击确定按钮后,程序检验,发现柜员为空,弹出柜员不能为空的提示信息 |
| 实际输出 | 柜员不能为空 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | 扫描.扫描模块和生成索引文件 |
| 组件功能项 | 取得图像,并正确显示 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | Dyinput.h ,Dyinput.c;view,h,view.c ;xvcsview.h,xvcsview.c |
| 编号 | 1.002 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 能取得图像,并正确显示 |
| 测试内容描述 | 扫描图像 |
| 输入期望 | 在试图中显示 |
| 功能处理期望描述 | |
| 输出期望 | 正确显示 |
| 单元测试结果 | |
| 实际输入数据 | 实际凭证 |
| 实际处理情况描述 | 取得凭证图像 |
| 实际输出 | 取得凭证图像,并在视图中显示 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | 扫描.凭证登记模块 |
| 组件功能项 | 完成用户扫描的凭证登记 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | c;view,h,view.c ;xvcsview.h,xvcsview.c,userdefine.h,userdefine.cpp,voucherchk.c |
| 编号 | 1.003 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 登记一个柜员的凭证,在提交的时候进行核对。 |
| 测试内容描述 | 扫描员登记一批凭证, |
| 输入期望 | 大于实际的凭证数 |
| 功能处理期望描述 | 在提交的是后提示用户,凭证登记数不对 |
| 输出期望 | 有提示 |
| 单元测试结果 | |
| 实际输入数据 | 登记100张,实际扫描99张 |
| 实际处理情况描述 | 在提交的时候提示用户 |
| 实际输出 | 提示用户,凭证等记数不对 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | InputDevice.ini配置 |
| 组件功能项 | 对配置文件进行配置,检验扫描程序是否正常读取参数 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | ImageInputSysSet.cpp.cpp, ImageInputSysSet.cpp.h,View.cpp,View.h |
| 编号 | 1.004 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 检验配置信息是否被正确读取 |
| 测试内容描述 | 1、修改配置文件InputDevice.ini 2、启动扫描程序 |
| 输入期望 | 正确的配置信息 |
| 功能处理期望描述 | 按配置项目读取配置参数 |
| 输出期望 | 将配置信息取入内存中 |
| 单元测试结果 | |
| 实际输入数据 | InputDevice.ini |
| 实际处理情况描述 | 按配置项目读取参数 |
| 实际输出 | 参数被读入内存中 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | 调用XVCS进行扫描处理 |
| 组件功能项 | 完成调用XVCS,并接收XVCS提交的数据 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | XvcsSysSet.cpp,XvcsSysSet.h,XvcsView.cpp,XvcsView.h |
| 编号 | 1.005 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 检验扫描程序与XVCS的接口 |
| 测试内容描述 | 1、打开扫描程序,自动调用XVCS 2、扫描员登记、扫描一批凭证, 3、完成扫描,扫描程序接收XVCS提交图像数据 |
| 输入期望 | 登记一批图像,扫描图像,提交 |
| 功能处理期望描述 | 程序自动调用XVCS,扫描完成后,提交给扫描程序 |
| 输出期望 | 扫描程序成功获取XVCS提交图像 |
| 单元测试结果 | |
| 实际输入数据 | 登记扫描20张影像,并提交 |
| 实际处理情况描述 | XVCS被成功调用 |
| 实际输出 | 扫描程序成功获取了XVCS提交的影像 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | 自动识别 |
| 组件功能项 | 完成版面识别,OCR识别以及流水勾对 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | AutoProcess.cpp AutoProcess.h FormRecog.cpp FormRecog.h OCRRecog.cpp OCRRecog. MainFrm.cpp MainFrm.h |
| 编号 | 2.001 |
| 程序设计人员 | 张海军、王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 是否能够识别出图象的版面名称 |
| 测试内容描述 | 对于20091021采集到的图象进行版面识别 |
| 输入期望 | 采集到的图象数据 |
| 功能处理期望描述 | 对于输入的图象能够进行正确的版面识别 |
| 输出期望 | 正确的图象版面识别结果 |
| 单元测试结果 | |
| 实际输入数据 | 20040412采集到的图象数据 |
| 实际处理情况描述 | 首先从数据库中取得图象数据,然后进行版面识别 |
| 实际输出 | 大部分都是正确的版面识别结果 |
| 测试结论 | 正常 |
| 编号 | 2.002 |
| 程序设计人员 | 张海军、王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 是否能够对不同的版面进行正确的OCR识别 |
| 测试内容描述 | 对于20091021采集的图象进行版面识别以后,对于不同的版面识别结果进行相应的OCR识别 |
| 输入期望 | 图象数据,版面名称,以及相应的OCR识别信息 |
| 功能处理期望描述 | 对于不同版面名称的图象,进行不同区域的图象进行抠取,进行正确的OCR识别 |
| 输出期望 | 得到正确的OCR识别结果 |
| 单元测试结果 | |
| 实际输入数据 | 20091021采集的图象和OCR识别后的版面名称以及OCR识别信息 |
| 实际处理情况描述 | 对于图象进行了相关的图象抠取和相应的手写体以及打印体识别 |
| 实际输出 | 大部分都是正确的OCR识别结果,一部分由于识别版面的一些干扰,导致识别有误 |
| 测试结论 | 正常 |
| 编号 | 2.003 |
| 程序设计人员 | 张海军、王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 是否能够进行正确的流水勾对 |
| 测试内容描述 | 对于20091021采集到的图象经过版面识别以及OCR处理以后,进行流水勾对 |
| 输入期望 | 版面识别结果,和OCR处理结果 |
| 功能处理期望描述 | 根据版面名称,帐号金额等信息与流水进行勾对 |
| 输出期望 | 流水勾对成功 |
| 单元测试结果 | |
| 实际输入数据 | 20091021采集到的图象版面识别后的版面名称以及OCR识别结果 |
| 实际处理情况描述 | 与流水进行了相应的勾对 |
| 实际输出 | 大部分勾对成功,还有一些由于版面名称以及OCR识别有误导致勾对失败 |
| 测试结论 | 正常 |
| 编号 | 2.004 |
| 程序设计人员 | 张海军、王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 检验题头识别 |
| 测试内容描述 | 对于没有表格线条特征的版面,是否可以通过题头识别来确定版面 |
| 输入期望 | 无表格线条特征版面(具有题头特征) 题头配置参数 |
| 功能处理期望描述 | 根据题头配置参数,程序调用SYDFormMatch.dll题头识别接口,对图像进行识别 |
| 输出期望 | 正确的版面名称 |
| 单元测试结果 | |
| 实际输入数据 | 20091021采集到的图象 |
| 实际处理情况描述 | 对于表格线条特征没有识别出的图像,进入题头识别功能,并调用 SYDFormMatch.dll进行题头识别 |
| 实际输出 | 大部分版面打印清晰的图像,能够通过题头识别获得版面类型 |
| 测试结论 | 正常 |
| 编号 | 2.005 |
| 程序设计人员 | 张海军、王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 检验线条颜色混淆识别 |
| 测试内容描述 | 对于版面表格线条特征相似,颜色不同的版面进行区分 |
| 输入期望 | 线条颜色混淆配置 易混淆图像凭证 |
| 功能处理期望描述 | 调用SydClrDeal.dll,分析凭证图像的颜色信息,根据线条颜色配置,获取正确的版面名称 |
| 输出期望 | 正确的版面名称 |
| 单元测试结果 | |
| 实际输入数据 | 20091021采集到的图象 |
| 实际处理情况描述 | 对于已经配置易混淆特征的影像,调用SysClrDeal.dll分析表格线条特征,并可以返回分析后的版面名称 |
| 实际输出 | 大部分配置正确的图像,能够通过颜色识别获得版面类型 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | CSBANKIPS.DataArchive.CMainFrame
|
| 组件功能项 | 流水导入(下载流水、配置方案、流水导入) |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | 目录:\\CSBANKIPS\\DataImport |
| 编号 | 3.001 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王品 |
| 测试目的 | 下载流水文件 |
| 测试内容描述 | 用设定的用户连接FTP服务器,下载流水文件到本地指定目录 |
| 输入期望 | 正确的用户信息 |
| 功能处理期望描述 | 正确的用户,成功登陆到FTP服务器,并下载流水文件 |
| 输出期望 | 成功下载流水文件 |
| 单元测试结果 | |
| 实际输入数据 | FTP:162.16.1.252,user:csbank,password:cs |
| 实际处理情况描述 | 成功连接到FTP服务器,显示出服务器上的文件列表,选择流水文件,成功下载到指定目录 |
| 实际输出 | 下载流水文件到指定目录d:\\workflow |
| 测试结论 | 正确 |
| 编号 | 3.002 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王品 |
| 测试目的 | 配置流水导入方案 |
| 测试内容描述 | 针对建行流水数据,配置导入方案 |
| 输入期望 | 各种配置信息 |
| 功能处理期望描述 | 成功保存方案到数据库中 |
| 输出期望 | 保存方案成功 |
| 单元测试结果 | |
| 实际输入数据 | 各种配置信息 |
| 实际处理情况描述 | 按照向导设置各种配置信息 |
| 实际输出 | 数据库中成功保存配置方案 |
| 测试结论 | 正确 |
| 编号 | 3.003 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王品 |
| 测试目的 | 导入流水 |
| 测试内容描述 | 按照配置方案导入流水数据 |
| 输入期望 | 流水文件与配置方案相符合 |
| 功能处理期望描述 | 导入的流水达到配置方案的要求 |
| 输出期望 | 流水导入正确 |
| 单元测试结果 | |
| 实际输入数据 | 选择流水文件、导入方案 |
| 实际处理情况描述 | 按照导入方案将流水数据导入到数据库中 |
| 实际输出 | 流水数据导入达到预期期望 |
| 测试结论 | 正确 |
| 单元测试计划 | |
| 标识 | MaualProcess.CmainFrame |
| 组件功能项 | 完成主要主框架,人工处理主程序 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | MainFrm.cpp MainFrm.h |
| 编号 | 4.001 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 检查差错处理函数是否正确调用差错处理子系统,并保存差错信息 |
| 测试内容描述 | 当程序界面选中差错图像时,点击差错菜单,则调用OnCheckinerror()函数。 系统进入该函数,并判断,当前是否选中差错图像,如果选中,则调用 WriteError()函数,进入差错登记流程,否则退出。 |
| 输入期望 | 选择图像,点击菜单响应该函数 |
| 功能处理期望描述 | 可以进入差错登记流程,并正确登记差错 |
| 输出期望 | 差错处理成功 |
| 单元测试结果 | |
| 实际输入数据 | 没有选择图像,直接点击菜单响应该函数 |
| 实际处理情况描述 | 当程序界面选中差错图像时,点击差错菜单,则调用OnCheckinerror()函数。 系统进入该函数,同时判断,当前没有差错图像(或差错流水),则直接退出。 当程序界面选中差错流水时,点击差错菜单,则调用OnCheckinerror()函数。 系统执行该函数,同时判断,当前没有差错流水(或差错图像),则直接退出。 |
| 实际输出 | 根据差错类型进入不同差错登记流程 |
| 测试结论 | 正常 |
| 编号 | 4.002 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 检查主附件调整是否正常 |
| 测试内容描述 | 调用AdjustPSLevel(int nIndex, int nPSLevel, CString strOtherInfo=””) 函数,输入参数序号、主附件标志、其他信息后,凭证被调整为主件、 电子凭证、附件、一般附件。 首先判断该张图像是否被删除,如果是,则退出,返回-1,再判断该图像是否为 背面,如果时,则退出,返回-1。 然后调整主附件关系,将该凭证设置为相应的主附件。 |
| 输入期望 | NIndex=0,nPSLevel=9,strOtherInfo=”” |
| 功能处理期望描述 | 第一张凭证被设置为电子凭证 |
| 输出期望 | 1 |
| 单元测试结果 | |
| 实际输入数据 | NIndex=0,nPSLevel=1,strOtherInfo=”” |
| 实际处理情况描述 | 首先判断该张图像没有被删除,再判断该图像不是背面。然后调整主附件关系, 将该凭证调节为主件,并返回1。 |
| 实际输出 | 1 |
| 测试结论 | 正常 |
| 单元测试结果 | |
| 实际输入数据 | NIndex=1,nPSLevel=1,strOtherInfo=”” |
| 实际处理情况描述 | 首先判断该张图像没有被删除,然后判断该图像是背面。直接返回-1 |
| 实际输出 | -1 |
| 测试结论 | 正常 |
| 编号 | 4.003 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 从数据库读取图像文件的索引信息,并从文件服务中取临时图像文件 |
| 测试内容描述 | 调用GetImageTempFile(CDSDatabase * pDb, CString strTableName, CString strSerialNo,CString strBatchId, CString& strFileName, BOOL bFlag) 传入相应的数据库指针,表名,图像序列号,批次号,文件名信息,能够将图像 保存至strFileName文件中 |
| 输入期望 | PDb传入业务库指针,strTableName传入批次表名,strSerialNo传入图像序号 StrBatchId输入存在于表中的批次,strFileName=”C:\\\CS_IMG.JPG” |
| 功能处理期望描述 | 能够输出图像至文件”C:\\\CS_IMG.JPG” |
| 输出期望 | 1 |
| 单元测试结果 | |
| 实际输入数据 | PDb=pBusiDB,strTableName=”bp_tmpbatch_tb”,strSerialNo=“‘43234 StrBatchId=“20091103345032”,strFileName=”C:\\\CS_IMG.JPG” |
| 实际处理情况描述 | 从表中读取凭证的序列号43234的图像信息,连接文件服务,将得到的信息提交 给文件服务,文件服务提取该图像文件,并另存至”C:\\\CS_IMG.JPG” |
| 实际输出 | 1 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | MaualProcess.ZyFunction |
| 组件功能项 | 完成人工处理用到的公用函数 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | ZyFunction.cpp ZyFunction.h |
| 编号 | 4.004 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 测试人工处理程序写文件日志是否正常 |
| 测试内容描述 | 调用WriteLogFile(CString strMsg,CString strLogPath) 函数将打开文件strLogPath,并将信息strMsg写入该文件,标志时间信息 最后关闭该文件。如果无法打开文件,则返回-1 |
| 输入期望 | strMsg=”CS_TEST”,strLogPath=”C:\\\\CS_TEST.log” |
| 功能处理期望描述 | 能够在文件”C:\\\\CS_TEST.log”中输入文件”CS_TEST” |
| 输出期望 | 1 |
| 单元测试结果 | |
| 实际输入数据 | strMsg=”CS_TEST”,strLogPath=”\\\162.168.1.6\\\\CSBANK\\\\CS_TEST.log” |
| 实际处理情况描述 | 由于共享网络路径\\\162.168.1.6\\\CSBANK\\断开着 文件系统无法打开该网络路径下\\\162.168.1.6\\\CSBANK\\\CS_TEST.log文件 则直接返回错误-1 |
| 实际输出 | -1 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | CSBANKIPS.PSubPrimary.CMainFrame
|
| 组件功能项 | 主附件核对(主附件判断、重点监督判断) |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | 目录:\CSBANK\\psub |
| 编号 | 5.001 |
| 程序设计人员 | 陈时康、王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 主附件判断 |
| 测试内容描述 | 按照预定义的规则以及配置的主附件判断条件表判断图像的主附件关系 |
| 输入期望 | 无 |
| 功能处理期望描述 | 正确判断图像的主附件关系 |
| 输出期望 | 正确判断图像的主附件关系 |
| 单元测试结果 | |
| 实际输入数据 | 无 |
| 实际处理情况描述 | 成功进行主附件关系判断 |
| 实际输出 | 主附件关系判断结果正确 |
| 测试结论 | 正确 |
| 编号 | 5.002 |
| 程序设计人员 | 陈时康、王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 重点监督判断 |
| 测试内容描述 | 按照配置的重点监督业务表判断图像是否需要重点监督 |
| 输入期望 | 无 |
| 功能处理期望描述 | 按照配置的重点监督业务表判断图像是否需要重点监督 |
| 输出期望 | 重点监督标志设置正确 |
| 单元测试结果 | |
| 实际输入数据 | 无 |
| 实际处理情况描述 | 成功判断图像是否需要重点监督 |
| 实际输出 | 重点监督标志设置正确 |
| 测试结论 | 正确 |
| 单元测试计划 | |
| 标识 | 差错登记. ErrorSheetBras |
| 组件功能项 | 本模块负责验证C/S差错登记接口 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | ErrorBookInDlg.h ErrorSheetBras.h ErrorBookInDlg.cpp ErrorSheetBras.cpp |
| 编号 | 6.001 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇 |
| 测试目的 | 检验图像差错登记 |
| 测试内容描述 | 输入差错的类型、发生日期、机构号、柜员号及状态等信息, 要求能够正确显示在差错登记界面,并可以成功登记入差错表中 |
| 输入期望 | 通过结构体ERRORSTRUCT传入业务日期、发生机构、发生柜员等信息 |
| 功能处理期望描述 | 通过接口输入的差错类型、业务日期等信息可以正确地反映在差错登记 页面上,同时可以输入补充信息,在开始登记时,将所有信息写入差错表中 |
| 输出期望 | 登记差错成功标志 |
| 单元测试结果 | |
| 实际输入数据 | 差错类型:影像系统 发生日期:>=20091111 and <=20091111 网点号:3101 柜员号:31063 |
| 实际处理情况描述 | 在列表中正常显示出差错基本信息为: (nErrorSource=1 and strTradeDate=’ 20091111’ and strSiteNo =’31063’ and nErrorType=1 and strTellerNo =’31063’) 在登记界面上选择差错原因等信息 点击登记差错按钮 |
| 实际输出 | 差错登记成功 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | 差错处理. ErrorProcess |
| 组件功能项 | 本模块负责差错进行处理 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | |
| 编号 | 6.002 |
| 程序设计人员 | 柯杰 |
| 测试人员 | 柯杰 |
| 测试目的 | 检验查询功能是否完善 |
| 测试内容描述 | 输入差错的类型、发生日期、机构号、柜员号及状态等标志, 要求查询得到与之对应的差错记录集,并在列表中正常显示出来 |
| 输入期望 | 任意的条件(当然是有数据的才能看到结果) |
| 功能处理期望描述 | 程序根据输入的组合条件组成相应的查询子句的条件部分, 并在数据库查到了相应的记录,返回各差错记录 |
| 输出期望 | 列表显示各差错记录明细 |
| 单元测试结果 | |
| 实际输入数据 | 差错类型:影像系统 发生日期:>=20091107 and <=20091112 网点号:3101 柜员号:31061 |
| 实际处理情况描述 | 在列表中正常显示出条件为: (Error_Source=1 and occur_date>=’20091109’ and occur_date <=’20091109’ and site_no =’3101’ and operator_no =’31061’) 的所有差错的记录集 |
| 实际输出 | 对应差错记录集 |
| 测试结论 | 正常 |
| 编号 | 6.003 |
| 程序设计人员 | 柯杰 |
| 测试人员 | 柯杰 |
| 测试目的 | 检验审核/取消功能 |
| 测试内容描述 | 通过选取列表中的差错明细输入差错号, 然后将该条差错置为审核或取消状态,置数据库中的 相应标志位,对列表进行删减 |
| 输入期望 | 任意选取列表中的差错,选择进行审核或取消操作 |
| 功能处理期望描述 | 按选择操作将选中记录的审核标志置位 |
| 输出期望 | 状态位改变,列表记录状态显示改变 |
| 单元测试结果 | |
| 实际输入数据 | 选取一条差错进行取消操作 |
| 实际处理情况描述 | 查找到选中的记录将其标志置为9, 并刷新列表及对应图像 |
| 实际输出 | 库中该记录的flag=9列表该条差错记录为取消状态 |
| 测试结论 | 正常 |
| 编号 | 6.004 |
| 程序设计人员 | 柯杰 |
| 测试人员 | 柯杰 |
| 测试目的 | 检验删除差错功能 |
| 测试内容描述 | 通过选取列表中的差错明细输入差错号, 然后将该条差错置为删除状态,置数据库中的 相应标志位,对列表进行删减;对于已审核过的记 录不能进行该操作 |
| 输入期望 | 任意选取列表中的差错,确认删除 |
| 功能处理期望描述 | 按选择操作将选中记录的标志置位 |
| 输出期望 | 状态位改变,列表记录状态显示改变 |
| 单元测试结果 | |
| 实际输入数据 | 选取一条差错进行删除 |
| 实际处理情况描述 | 查找到选中的记录将其标志置为-9, 并刷新列表 |
| 实际输出 | 库中该记录的flag=9列表该条差错记录消失 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | CSBANKPS.OcrAudit.CMainFrame
|
| 组件功能项 | 人工查账(人工查账、人工轧账) |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | 目录:\\CSBANKIPS\\ocraudit |
| 编号 | 7.001 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 人工查账 |
| 测试内容描述 | 查询指定日期、网点以及各种查询条件下的图像、流水 |
| 输入期望 | 指定的查询条件 |
| 功能处理期望描述 | 按照查询条件查询出图像或流水 |
| 输出期望 | 查询结果正确 |
| 单元测试结果 | |
| 实际输入数据 | 网点:2101,日期:20091107,流水:未勾对,图像:未勾对 |
| 实际处理情况描述 | 选择查询网点、日期、流水状态、图像状态,查询出流水列表、图像列表,并显示图像 |
| 实际输出 | 查询出3笔流水未勾对、无图像未勾对 |
| 测试结论 | 正确 |
| 编号 | 7.002 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 人工轧账 |
| 测试内容描述 | 对当天业务的网点或柜员进行轧账 |
| 输入期望 | 能轧账的网点 |
| 功能处理期望描述 | 显示所有能轧账的网点,不能轧账的网点显示当前状态,对可以轧账的网点进行轧账 |
| 输出期望 | 成功轧账 |
| 单元测试结果 | |
| 实际输入数据 | 能轧账的网点:2101 |
| 实际处理情况描述 | 进行轧账 |
| 实际输出 | 成功轧账 |
| 测试结论 | 正确 |
| 单元测试计划 | |
| 标识 | CSBANKIPS.DataArchive.CMainFrame
|
| 组件功能项 | 数据提取、目录提交 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | \CSBANKIPS\\DataArchive\\MainFrm.h \\CSBANKIPS\\DataArchive\\MainFrm.cpp |
| 编号 | 8.001 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇 |
| 测试目的 | 数据是否提取到本地目录 |
| 测试内容描述 | 对批次20091118211242805047进行归档,如果数据提取成功,则在D:\\ArchiveRoot\20091118211242805047目录下就会有134张JPG图像和一个IndexInfo.xml文件。 |
| 输入期望 | Batch_id=’ 20091118211242805047’ |
| 功能处理期望描述 | 产生目录D:\\ArchiveRoot\20091118211242805047 |
| 输出期望 | 目录且文件存在 |
| 单元测试结果 | |
| 实际输入数据 | Batch_id=’ 20091118211242805047’ |
| 实际处理情况描述 | 首先生成目录,读取数据库,将图像从网点服务上读出来 |
| 实际输出 | 目录D:\\ArchiveRoot\20091118211242805047存在,图像文件存在 |
| 测试结论 | 正常 |
| 编号 | 8.002 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇 |
| 测试目的 | 图像是否二值化 |
| 测试内容描述 | 根据归档选项(按凭证类型二值化),对批次20091118211242805047的JPG图像进行二值化,如果图像二值化成功,则在D:\\ArchiveRoot\20091118211242805047目录下就会有134张图像(其中包括部分彩色图像、部分黑白图像)和一个IndexInfo.xml文件。 |
| 输入期望 | Batch_id=’ 20091118211242805047’ |
| 功能处理期望描述 | 产生目录D:\\ArchiveRoot\20091118211242805047,且根据版面类型,部分图像被二值化 |
| 输出期望 | 目录且图像文件存在,部分图像按配置被二值化 |
| 单元测试结果 | |
| 实际输入数据 | Batch_id=’ 20091118211242805047’ |
| 实际处理情况描述 | 首先生成目录,查找图像目录,将图像读出,根据配置条件,根据凭证名称,对于符合二值化条件的图像,进行二值化 |
| 实际输出 | 目录D:\\ArchiveRoot\20091118211242805047存在,部分彩色JPG图像文件二值化为黑白TIFF文件(为了统一处理,文件名暂时还采用JPG后缀名) |
| 测试结论 | 正常 |
| 编号 | 8.003 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇 |
| 测试目的 | 本地目录是否提交至历史归档库 |
| 测试内容描述 | 对目录D:\\ArchiveRoot\20091118211242805047进行提交,如果目录提交成功,则在临时批次表中的批次数据状态改为12已提交 |
| 输入期望 | Batch_id=’ 20091118211242805047’ |
| 功能处理期望描述 | 成功处理提交任务后,批次状态改为12 处理提交任务失败后,批次状态仍然为11 |
| 输出期望 | 批次表中的状态改为12 |
| 单元测试结果 | |
| 实际输入数据 | Batch_id=’ 20091118211242805047’ |
| 实际处理情况描述 | 首先查找目录,调用归档接口,将图像提交至归档文档服务,同时将索引写入历史数据库的索引表及数据表中 |
| 实际输出 | process_state由11改为12 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | CSBANKIPS. DayEndPro.CDlgClearTemp
|
| 组件功能项 | 日终清理(临时表清理、日志管理) |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | \CSBANKIPS\DayEndPro\DlgClearTemp.h \CSBANKIPS\DayEndPro\DlgClearTemp.cpp \CSBANKIPS\DayEndPro\DlgLogMan.h \CSBANKIPS\DayEndPro\DlgLogMan.cpp |
| 编号 | 9.001 |
| 程序设计人员 | 李木火、王勇 |
| 测试人员 | 王勇 |
| 测试目的 | 归档后的临时数据表是否清理 |
| 测试内容描述 | 清理20091027业务日期的临时表数据 |
| 输入期望 | Occur_date=’20091027’ |
| 功能处理期望描述 | Select count(*) as reccnt from bp_tmpdata_1_tb where occur_date=’20091027’后 Reccnt==0 |
| 输出期望 | 表bp_tmpdata_1_tb业务日期为20091027的记录数为0 |
| 单元测试结果 | |
| 实际输入数据 | Occur_date=’20091027’ |
| 实际处理情况描述 | 首先检查是20091027日期的数据是否全部归档,先删除数据表,后删除业务日期为20091027业务日期的所有记录 |
| 实际输出 | Reccnt==0 |
| 测试结论 | 正常 |
| 编号 | 9.002 |
| 程序设计人员 | 李木火、王勇 |
| 测试人员 | 王勇 |
| 测试目的 | 日志是否清理 |
| 测试内容描述 | 清理20091107业务日期的日志表 |
| 输入期望 | Occur_date=’ 20091107’ |
| 功能处理期望描述 | Select count(*) as reccnt from bp_run_log_tb where occur_date=’ 20091107’后 Reccnt==0 |
| 输出期望 | 表bp_run_log_tb业务日期为20091107的记录数为0 |
| 单元测试结果 | |
| 实际输入数据 | Occur_date=’ 20091107’ |
| 实际处理情况描述 | 首先检查是20091107日期的数据是否全部导出,发现全部导出,则执行语句 delete from bp_run_log_tb where Occur_date=’ 20091107’ |
| 实际输出 | Reccnt==0 |
| 测试结论 | 正常 |
| 编号 | 9.003 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇 |
| 测试目的 | 清理历史已刻盘数据是否正常 |
| 测试内容描述 | 清理20091021业务日期的历史归档数据 |
| 输入期望 | Occur_date=’ 20091021’ |
| 功能处理期望描述 | Select count(*) as reccnt from ad_batchinfo_tb where occur_date=’ 20091021’后 Reccnt==0 Select count(*) as reccnt from ad_data20091021_tb where batch_id in (select batch_id from ad_batchinfo_tb where occur_date=’ 20091021’) Reccnt==0 |
| 输出期望 | 表ad_batchinfo_tb\\ad_data20091021_tb业务日期为20091021的记录数为0 归档文件系统中,日期为20091021的目录为空 |
| 单元测试结果 | |
| 实际输入数据 | Occur_date=’ 20091021’ |
| 实际处理情况描述 | 首先检查是20091021日期的数据是否已经刻盘,刻盘则删除 Delete from ad_data20091021_tb where batch_id in (select batch_id from ad_batchinfo_tb where occur_date=’ 20091021’) delete from ad_batchinfo_tb where Occur_date=’ 20091021’ 从文件系统根据索引删除文件 |
| 实际输出 | Reccnt==0 |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | FormStudioDT.CFormStudioDTView |
| 组件功能项 | 彩色版面定义工具 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | FormStudioDTView.cpp FormStudioDTView.h |
| 编号 | 10.001 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 测试是否能够在版面中分析出参考原点位置 |
| 测试内容描述 | 调用FindOriginForTitleSetting(HDIB hDIB, CPoint *pOrg, CRect rcTitle) 系统分析hDIB图像,如果该图像句柄为空,则返回FALSE,如果为彩色图像则进行 处理,并转换为二值图像,对rcTitle区域进行分析,如果存在参考原点信息,则返回 TRUE,否则则返回FALSE |
| 输入期望 | 取款凭条句柄,原点指针,题头区域 |
| 功能处理期望描述 | 能够返回题头区域的原点信息 |
| 输出期望 | TRUE |
| 单元测试结果 | |
| 实际输入数据 | 取款凭条句柄,原点指针,题头区域 |
| 实际处理情况描述 | 函数得到句柄後,判断不为空NULL,再对图像头信息进行分析,判断为彩色图像, 则进行二值化处理,调用函数NewFormMatch,不成功,则获取题头区域,再调用 GetTextOffsetRect,搜索成功,则返TRUE |
| 实际输出 | TRUE |
| 测试结论 | 正常 |
| 编号 | 10.002 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 测试判断版面是否已经被抽取版面特征 |
| 测试内容描述 | 调用IsValidPageFace(DWORD dwPageID) 根据传入的dwPageID信息,查询数据库的相关表,如果获取字段rec_type为0, 则返回false,如果获取字段>0,则返回true |
| 输入期望 | dwPageID=1001000 |
| 功能处理期望描述 | 能够正确判断,该模板是否已经获得版面特征信息 |
| 输出期望 | True |
| 单元测试结果 | |
| 实际输入数据 | dwPageID=1001000 |
| 实际处理情况描述 | 根据传入的模板ID1001000,查询到该版面的版面类型,并返回成功 |
| 实际输出 | true |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | FormStudioDT.CFormStudioDTView |
| 组件功能项 | 设置浮动区域 |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | FloatField.cpp FloatField.h |
| 编号 | 10.003 |
| 程序设计人员 | 王勇 |
| 测试人员 | 王勇、王品 |
| 测试目的 | 测试当前鼠标是否在浮动区域上划过 |
| 测试内容描述 | 调用PointOverFloatField(CPoint pt) pt为当前鼠标的点(屏幕坐标) |
| 输入期望 | 鼠标划过界面的动作,不经过浮动区域 |
| 功能处理期望描述 | 首先获得图像的偏移位置,求得鼠标相对于图像的相对位置,然后调用 IsPointInRect(pt,rc),判断该点是否在浮动区域矩形范围内,如果在, 则返回true,否则返回false |
| 输出期望 | false |
| 单元测试结果 | |
| 实际输入数据 | 鼠标划过界面的动作,不经过浮动区域 |
| 实际处理情况描述 | 首先获得图像的偏移位置,求得鼠标相对于图像的相对位置,然后调用 IsPointInRect(pt,rc),判断该点不在浮动区域矩形范围内,则返回false |
| 实际输出 | false |
| 测试结论 | 正常 |
| 单元测试结果 | |
| 实际输入数据 | 鼠标划过界面的动作,经过浮动区域 |
| 实际处理情况描述 | 首先获得图像的偏移位置,求得鼠标相对于图像的相对位置,然后调用 IsPointInRect(pt,rc),判断该点在浮动区域矩形范围内,则返回true |
| 实际输出 | true |
| 测试结论 | 正常 |
| 单元测试计划 | |
| 标识 | CSBANKIPS.DataArchive.CMainFrame
|
| 组件功能项 | 系统配置(数据库初始化、系统参数配置) |
| 针对概要/详细设计文件名 | 《稽核监督及操作风险监控系统项目概要设计说明书V1.0.0》 |
| 物理文件名 | 目录:\\CSBANKIPS\\sunsysconfigue |
| 编号 | 11.001 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王品 |
| 测试目的 | 数据库初始化 |
| 测试内容描述 | 完成系统初始化的系列操作,包括创建各个数据库、数据表,导入初始化的数据 |
| 输入期望 | 脚本正确 |
| 功能处理期望描述 | 成功创建数据库、数据表,初始化数据 |
| 输出期望 | 成功创建数据库、数据表,初始化数据 |
| 单元测试结果 | |
| 实际输入数据 | 正确的脚本 |
| 实际处理情况描述 | 数据库、数据表顺利创建,初始化数据导入成功 |
| 实际输出 | 数据库初始化成功 |
| 测试结论 | 正确 |
| 编号 | 11.002 |
| 程序设计人员 | 陈时康 |
| 测试人员 | 王品 |
| 测试目的 | 系统参数配置 |
| 测试内容描述 | 配置各种系统参数 |
| 输入期望 | 正确的参数信息 |
| 功能处理期望描述 | 方便输入参数信息,并成功保存参数信息到数据库中 |
| 输出期望 | 保存参数信息成功 |
| 单元测试结果 | |
| 实际输入数据 | 正确的参数信息:'data_flag','12','重控子系统' |
| 实际处理情况描述 | 在字典表中插入记录,输入上述参数信息,保存到数据库中 |
| 实际输出 | 成功保存信息 |
| 测试结论 | 正确 |
本项目的单元测试基本以每一个系统程序开发人员为单位,在以《单元测试计划》的文档指导下,文档所提及的测试范围以及测试需求都得到比较好的贯彻。
同样,由于把单元测试分散在每个程序员的开发编码过程中,有利于提高代码的质量,减少了代码中可能存在错误隐患。
每个程序员对自己开发的代码是最熟悉的,所以通过这种自己开发,自己测试的方式,可以养成程序员良好的编码习惯。
综上所述,这次项目的单元测试满足了项目对软件质量的要求,并且已经可以进行下一阶段系统、集成测试。
4测试资源消耗
(无)
