多维系统文件数据验证测试研究和实践

发表于:2020-6-01 08:04

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:李琳 王海林 郑献    来源:51Testing软件测试网原创

  行业背景:随着数字化建设的持续快速发展,业务部门对系统下载的文件质量提出了更高的要求,全面高效可持续的测试已成为银行IT建设和测试服务追求的目标。
  面对的问题:测试人员无法在有限的时间内人工完成大数据量多维文件的下载和数据比对工作,如六天时间内完成12906个txt文件和xml文件的四次下载和数据逐行比对测试。
  应对措施:通过程序开发和对已有测试工具的灵活运用,圆满高效完成测试任务;汇总经验,为后期下载多维文件数据比对测试提供有效的技术参考和工具支持。
  一、背景
  十九届四中全会,将"数据"列为生产要素参与分配,标志着以数据为关键要素的数据经济进入了新时代。金融业是数据密集型行业,在生产经营过程中积累了海量的数据资源。人们可以通过系统界面查看或文件下载的形式有效的获取和使用数据资源。因此,如何做好系统数据下载测试也成为相关部门越来越关注的内容。
  笔者梳理文件数据校对可能的测试场景,大致包括但不限于:
  校对新旧系统导出的文件内容及格式,确保新系统导出文件的内容和格式与原系统导出的文件内容格式保持一致的测试场景;
  验证系统更新前后导出的文档内容及格式一致性的测试场景;
  验证系统导出的文档格式内容与业务规划的格式内容一致性的测试场景,常见的有报表校对,特别是财务报表的数据校对。
  超大量文件的下载及内容校对的测试场景。
  本文针对数据文件下载比对测试中“数据查询、待下载文件选择、保存文件、本地文件更名另存为指定目录、多维文件数据校对、校对结果记录、校对结果汇总、问题汇总”八个常规测试步骤,就如何通过测试工具的灵活运用和程序的开发,实现系统自动下载测试,下载的多维文件自动校对等整个测试过程进行简要介绍,以期能对后期的系统文件下载及文件数据比对测试提供有益的参考和借鉴。
  二、测试现状及问题
  (1)系统文档下载测试现状及问题:
  人工测试主要采用等价分类和抽样测试的方法。尝试过一个人不间断执行“输入查询条件、选择待下载的文件、点击按钮导出文件、文件更名另存为指定目录”操作,一个上午3个小时共完成72份文件的导出备份操作。因此,对于系统大数据量文件下载更名的测试任务,如12906份文件的下载更名,完全通过人工操作是不无法完成的。
  通过ATP自动化测试平台可实现系统的自动数据查询测试和文档下载测试,但一是对特殊架构系统突发测试任务不适用,二是暂时还不提供自动更名另存为指定目录的功能。而目前很多系统将文件保存到本地,保存的文件有的直接覆盖前一文件,有的则以同名文件加编号的形式保存,这种下载后的文件必须立即进行数据校对或文件更名,否则时间一久测试人员就很难再想起文件内数据的具体查询条件是什么,自然更不用说使用工具实现文件的自动定位,完成数据的自动比对工作。
  (2)多维文件信息批量比对测试现状:
  多维文件(无论是txt文件、xml文件、excel文件还是WPS表格文件)测试人员先选择两个要比较的文件,通过一些专业文件编辑器,寻找文件内容的差异,再选择下两个要比较的文件进行文件比对......以上操作重复执行,最终完成待校验文件清单中的所有文档的数据校对工作。
  因此,对于系统大数据量文件校对的测试任务,人工测试无法胜任。但要开展文件批量自动化比对测试,存在以下问题:没有现成的工具可以借鉴和使用。
  三、自动化测试架构
  目前系统文件的下载及内容比对,如仅靠人工测试是无法高效高质量的完成大量文件的批量下载及数据校对的测试任务,针对这个现状,测试团队创新尝试,通过程序开发和对已有测试工具的灵活运用实现系统多维文件的下载及内容比对的自动化测试。
  整个测试流程为:首先,利用QTP工具模拟“数据有条件查询、待下载文件的选择、文件的保存”操作,其次,通过QTP编程实现本地文件更名另存到指定目录的操作,最后,依据项目组提供的待测试清单,使用VBA语言编程完成文件的完整性校对、文件的数据行数统计、文件的数据内容及格式的校对、并实现校对结果的记录、校对结果的汇总统计和比对问题的汇总工作。
  整个测试架构图如下:
  四、测试工具的灵活运用
  测试人员通过QTP的灵活运用实现数据的自动条件查询、自动保存和本地文件自动更名备份操作。
  1、QTP运用流程
  2、主要步骤及注意事项
  一是界面操作步骤的录制:只需打开QTP点击录制按钮[record],然后依据业务操作步骤执行一遍。特别需要注意的是,测试人员必须清楚的明白,工具的运用是为了快速完成测试任务。如何实现系统的全自动化是后期有时间慢慢规划考虑的事。因此,在ACTION中就录制那些反复多次循环操作的步骤(重复次数至少大于15次),尽可能的减少脚本的复杂度和脚本的维护工作量。
  二是特殊对象的识别。使用QTP过程中,经常会遇到一些无法识别的界面控件,一般来说,可通过以下八种方法来识别测试对象:
  (1)原录制的应用程序发生变更,导致程序中对象的静态属性发生变化时,可人工更改测试对象的属性值完成对象的识别。
  (2)对象属性动态变化但是可以在执行时得到变化的属性值,这类情况可考虑使用SetTOProperty 方法。
  (3)对象属性动态变化但是可以事先预期到属性值的变化,这类情况可以考虑采用参数化测试对象属性为数据表参数的识别方法。
  (4)当对象属性动态变化但是属性值符合某种特殊的表达约束时,可以使用正则表达式进行对象的识别。
  (5)标识属性多余或需要新添加标识属性时,可考虑修改 QuickTest 来标识对象的一组属性。
  (6)对于标准的QTP 对象的复杂对象可考虑使用描述性编程方法来处理。
  (7)QTP 无法识别对象类型但是操作的位置是界面上的某个区域,可尝试使用虚拟对象,根据你划定的区域来识别。
  (8)QTP 无法识别对象类型但是对象位置固定的,可考虑切换录制模式。按照屏幕上的 x 坐标和 y 坐标录制该对象,将所有父类对象录制为 Windows 测试对象,将所有其他对象录制为WinObject 测试对象。
  三是参数脚本化的设置。
  QTP参数化可在编辑器视图下直接编码,也可以在关键字视图下通过选项进行设置:单击要参数化项目的“值”列,点击,选择Data Table,在弹出的“值配置选项”对话框中进行数值参数化,此时,在QTP编辑器视图中可以看到类似这样的代码:
  即表示已完成参数化过程。用这种方式需要注意的是:参数维护后要运行验证下,对于复杂的场景会存在实际取到的参数值和预期的不一样或是循环不正确的现象,需要在录制和运行设置中做相应的设置,或是通过写语句来控制迭代过程中的取值。类似如下代码:
  四是编程实现本地文件自动更名存储操作
  核心代码:
  五、数据处理工具编码实现
  1、文件数据的批量自动校对及编码实现
  文件对比流程主要可以分为三部分,一是读入待对比文件,二是文件内容对比处理,三是将对比结果输出至指定文件。具体步骤为:首先,根据文件对比清单将文件夹下的对比文件读入Excel;其次,把对比文件1内容作为一列,把对比文件2内容作为一列,对Excel的每行逐一对比,将每行的对比结果输出至第三列,形成对比明细,并在对比清单中记录两文件内容是否一致;然后,将对比明细输出至预先的文件夹中,方便后续对文件不一致的地方进行查看;最后,遍历文件夹下所有文件做同样操作即完成所有文件对比。
  核心逻辑
  TXT文件对比
  XML文件对比
  2、处理流程
  TXT文件处理流程:
  XML文件处理流程图
  3、代码难点
  在代码实现过程中,主要难点有:一是将txt文件读取到Excel中乱码,由于txt文件中的编码为UTF-8,Excel中的编码为GB2312,两者编码格式不一致导致不能正常显示对比结果;二是文件数量过于庞大,如何保证不重不漏的对比每一个文件,将对比结果输出至不同文件;三是如何对两文件中不同的部分进行结果明细展示,便于开发定位问题。
  六、数据比对结果
  1、工具界面
  2、文件对比结果展现
  为方便任务相关干系人清晰获知测试结果,定位问题,文件比对结果通过概述和明细两种模式展示,具体展现形式如下:
  (1)文件对比结果概览
  (2)单个文件对比结果明细
  七、实践效果总结
  以数据架构管理新旧系统下载文件数据校对实践为例,从新旧两个系统一共批量下载比对的xml文件6228份和txt文件6678份。将人工测试与通过程序开发和对已有测试工具的灵活运用实现的自动化测试,就质量和效率进行比较:
  从测试质量上看,人工测试一般采用等价类抽样测试的方法,即依据文件类型等价分类,随机抽样下载一份xml文件和txt文件,完全一致性验证概率是0.6%。测试两轮,第一轮测试抽样测试结果是文件格式内容一致,第二轮抽样测试发现内容存在不一致现象,新系统下载的文件存在乱码;而自动化测试验证新旧文件完全一致概率100%,发现不一致文件255个,发现错误类型四类。
  从测试效率上看,灵活的自动化测试较全部人工对比能大大减少测试工作量,提高测试效率。具体效率比对结果如下:
  文件批量下载:采用自动化从新旧两个系统批量更名下载6228份xml文件、6678份txt文件,用时共计8小时,平均每小时更名下载1613.25个文件。而人工操作在正常情况下,一个人不间断的执行3个小时大约完成70个文件的下载更名存储操作,平均每小时更名下载23.3个文件。两者比对结果是自动化测试比全部人工操作大约节约时间97%。
  文件批量比对:一共对6228份xml文件、6678份txt文件进行了四轮全量逐行比对。自动化测试用时共计两天;而人工测试平均需要工时10分钟,共计269天。因此,文件批量比对比全部人工对比节约时间99%。
  由此可以看出,通过程序开发和对已有测试工具(QTP)的灵活运用,可以大大提升了文件对比效率,帮助测试人员在有限的测试时间里高质量的完成文件数据比对的测试任务。
  八、总结及展望
  本文主要介绍了通过程序开发和对已有测试工具的灵活运用实现的自动化测试方法,对测试架构、测试流程、核心代码和难点注意点进行了较为详细的阐述。在实际项目测试中,上述测试方法经过数据架构管理系统(DOTA)优化项目的功能测试的验证,取得了较好的测试效果。
  随着农业银行软件中心在产品创新、IT架构、组织体系和研发模式等方面的深刻变革和数字化再造,如何在有限的测试时间内提供高质量的测试服务,圆满完成测试需求部门的我们测试期望将是测试处室的工作重点和难点之一,上述测试方法对研发中心未来大数据量文件下载数据比对测试提供一定的参考和借鉴。

       版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号