• 0
  • 0
分享
  • 多维系统文件数据验证测试研究和实践
  • 恬恬圈 2020-06-03 13:51:53 字数 4307 阅读 1936 收藏 0

行业背景:随着数字化建设的持续快速发展,业务部门对系统下载的文件质量提出了更高的要求,全面高效可持续的测试已成为银行IT建设和测试服务追求的目标。

面对的问题:测试人员无法在有限的时间内人工完成大数据量多维文件的下载和数据比对工作,如六天时间内完成12906个txt文件和xml文件的四次下载和数据逐行比对测试。

应对措施:通过程序开发和对已有测试工具的灵活运用,圆满高效完成测试任务;汇总经验,为后期下载多维文件数据比对测试提供有效的技术参考和工具支持。

一、背景

十九届四中全会,将"数据"列为生产要素参与分配,标志着以数据为关键要素的数据经济进入了新时代。金融业是数据密集型行业,在生产经营过程中积累了海量的数据资源。人们可以通过系统界面查看或文件下载的形式有效的获取和使用数据资源。因此,如何做好系统数据下载测试也成为相关部门越来越关注的内容。

笔者梳理文件数据校对可能的测试场景,大致包括但不限于:

校对新旧系统导出的文件内容及格式,确保新系统导出文件的内容和格式与原系统导出的文件内容格式保持一致的测试场景;

验证系统更新前后导出的文档内容及格式一致性的测试场景;

验证系统导出的文档格式内容与业务规划的格式内容一致性的测试场景,常见的有报表校对,特别是财务报表的数据校对。

超大量文件的下载及内容校对的测试场景。

本文针对数据文件下载比对测试中“数据查询、待下载文件选择、保存文件、本地文件更名另存为指定目录、多维文件数据校对、校对结果记录、校对结果汇总、问题汇总”八个常规测试步骤,就如何通过测试工具的灵活运用和程序的开发,实现系统自动下载测试,下载的多维文件自动校对等整个测试过程进行简要介绍,以期能对后期的系统文件下载及文件数据比对测试提供有益的参考和借鉴。

二、测试现状及问题

(1)系统文档下载测试现状及问题:

人工测试主要采用等价分类和抽样测试的方法。尝试过一个人不间断执行“输入查询条件、选择待下载的文件、点击按钮导出文件、文件更名另存为指定目录”操作,一个上午3个小时共完成72份文件的导出备份操作。因此,对于系统大数据量文件下载更名的测试任务,如12906份文件的下载更名,完全通过人工操作是不无法完成的。

通过ATP自动化测试平台可实现系统的自动数据查询测试和文档下载测试,但一是对特殊架构系统突发测试任务不适用,二是暂时还不提供自动更名另存为指定目录的功能。而目前很多系统将文件保存到本地,保存的文件有的直接覆盖前一文件,有的则以同名文件加编号的形式保存,这种下载后的文件必须立即进行数据校对或文件更名,否则时间一久测试人员就很难再想起文件内数据的具体查询条件是什么,自然更不用说使用工具实现文件的自动定位,完成数据的自动比对工作。

(2)多维文件信息批量比对测试现状:

多维文件(无论是txt文件、xml文件、excel文件还是WPS表格文件)测试人员先选择两个要比较的文件,通过一些专业文件编辑器,寻找文件内容的差异,再选择下两个要比较的文件进行文件比对......以上操作重复执行,最终完成待校验文件清单中的所有文档的数据校对工作。

因此,对于系统大数据量文件校对的测试任务,人工测试无法胜任。但要开展文件批量自动化比对测试,存在以下问题:没有现成的工具可以借鉴和使用。

三、自动化测试架构

目前系统文件的下载及内容比对,如仅靠人工测试是无法高效高质量的完成大量文件的批量下载及数据校对的测试任务,针对这个现状,测试团队创新尝试,通过程序开发和对已有测试工具的灵活运用实现系统多维文件的下载及内容比对的自动化测试。

整个测试流程为:首先,利用QTP工具模拟“数据有条件查询、待下载文件的选择、文件的保存”操作,其次,通过QTP编程实现本地文件更名另存到指定目录的操作,最后,依据项目组提供的待测试清单,使用VBA语言编程完成文件的完整性校对、文件的数据行数统计、文件的数据内容及格式的校对、并实现校对结果的记录、校对结果的汇总统计和比对问题的汇总工作。

整个测试架构图如下:

1.png


四、测试工具的灵活运用

测试人员通过QTP的灵活运用实现数据的自动条件查询、自动保存和本地文件自动更名备份操作。

1、QTP运用流程

15243603_202006011134492gbse.png

2、主要步骤及注意事项

一是界面操作步骤的录制:只需打开QTP点击录制按钮[record],然后依据业务操作步骤执行一遍。特别需要注意的是,测试人员必须清楚的明白,工具的运用是为了快速完成测试任务。如何实现系统的全自动化是后期有时间慢慢规划考虑的事。因此,在ACTION中就录制那些反复多次循环操作的步骤(重复次数至少大于15次),尽可能的减少脚本的复杂度和脚本的维护工作量。

二是特殊对象的识别。使用QTP过程中,经常会遇到一些无法识别的界面控件,一般来说,可通过以下八种方法来识别测试对象:

(1)原录制的应用程序发生变更,导致程序中对象的静态属性发生变化时,可人工更改测试对象的属性值完成对象的识别。

(2)对象属性动态变化但是可以在执行时得到变化的属性值,这类情况可考虑使用SetTOProperty 方法。

(3)对象属性动态变化但是可以事先预期到属性值的变化,这类情况可以考虑采用参数化测试对象属性为数据表参数的识别方法。

(4)当对象属性动态变化但是属性值符合某种特殊的表达约束时,可以使用正则表达式进行对象的识别。

(5)标识属性多余或需要新添加标识属性时,可考虑修改 QuickTest 来标识对象的一组属性。

(6)对于标准的QTP 对象的复杂对象可考虑使用描述性编程方法来处理。

(7)QTP 无法识别对象类型但是操作的位置是界面上的某个区域,可尝试使用虚拟对象,根据你划定的区域来识别。

(8)QTP 无法识别对象类型但是对象位置固定的,可考虑切换录制模式。按照屏幕上的 x 坐标和 y 坐标录制该对象,将所有父类对象录制为 Windows 测试对象,将所有其他对象录制为WinObject 测试对象。

3、是参数脚本化的设置

QTP参数化可在编辑器视图下直接编码,也可以在关键字视图下通过选项进行设置:单击要参数化项目的“值”列,点击2.png,选择Data Table,在弹出的“值配置选项”对话框中进行数值参数化,此时,在QTP编辑器视图中可以看到类似这样的代码:

3.png

即表示已完成参数化过程。用这种方式需要注意的是:参数维护后要运行验证下,对于复杂的场景会存在实际取到的参数值和预期的不一样或是循环不正确的现象,需要在录制和运行设置中做相应的设置,或是通过写语句来控制迭代过程中的取值。类似如下代码:

4.png

4、编程实现本地文件自动更名存储操作

核心代码:

5.png

五、数据处理工具编码实现

1、文件数据的批量自动校对及编码实现

文件对比流程主要可以分为三部分,一是读入待对比文件,二是文件内容对比处理,三是将对比结果输出至指定文件。具体步骤为:首先,根据文件对比清单将文件夹下的对比文件读入Excel;其次,把对比文件1内容作为一列,把对比文件2内容作为一列,对Excel的每行逐一对比,将每行的对比结果输出至第三列,形成对比明细,并在对比清单中记录两文件内容是否一致;然后,将对比明细输出至预先的文件夹中,方便后续对文件不一致的地方进行查看;最后,遍历文件夹下所有文件做同样操作即完成所有文件对比。

核心逻辑

TXT文件对比

7.png

XML文件对比

8.png

2、处理流程

TXT文件处理流程:

1.png

XML文件处理流程图

2.png

3、代码难点

在代码实现过程中,主要难点有:一是将txt文件读取到Excel中乱码,由于txt文件中的编码为UTF-8,Excel中的编码为GB2312,两者编码格式不一致导致不能正常显示对比结果;二是文件数量过于庞大,如何保证不重不漏的对比每一个文件,将对比结果输出至不同文件;三是如何对两文件中不同的部分进行结果明细展示,便于开发定位问题。

六、数据比对结果

1、工具界面

3.png

2、文件对比结果展现

为方便任务相关干系人清晰获知测试结果,定位问题,文件比对结果通过概述和明细两种模式展示,具体展现形式如下:

(1)文件对比结果概览

4.png

(2)单个文件对比结果明细

5.png

七、实践效果总结

以数据架构管理新旧系统下载文件数据校对实践为例,从新旧两个系统一共批量下载比对的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软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 沐沐一开始学习python的时候也会觉得枯燥无味,面对各种python的变量、赋值、数字、字符串、列表、元祖等基本知识总是昏昏欲睡。似乎怎么学习都很难将python应用于实际的测试工作。直到我遇到了django,才慢慢的对python有了进一步的实践和认知,所以很有必要安利给大家。比如大家可以用django框架进行简单的博客开发、测试框架开发等、或者可以下载一些开源的测试框架,在本地搭建起来后,熟悉框架的源码,会在框架学习的过程中,慢慢掌握python的各种语法。这里先简单介绍一下,Django是一个开源的Web应用框架,是Python众多框架中的爆款,采用了经典的MVC设计模式。Django...
            1 0 3962
            分享
          • Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。Wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以Wireshark看不懂HTTPS中的内容,如果是处理HTTP,HTTPS还是用Fiddler,其他协议比如TCP,UDP就用Wireshark.。第一部分:数据抓包打开“Wireshark”,选择下面抓包来源并点击“捕获”,如图:点击“开始”进行抓包,如图:抓包完成后点击左上角的“停止”图标即可结束...
            0 0 1303
            分享
          • 简介zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成:zabbix server与zabbix agent。zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux, OS X, Windows ,Solaris,HP-UX,AIX,Free BSD...
            0 1 2438
            分享
          •   美国国家航空航天局(NASA)局长比尔-纳尔逊(Bill Nelson)分享了该局将继续与波音公司合作执行前往国际空间站(ISS)的乘员任务的四个关键原因,尽管波音公司的Starliner飞船出现了推进器问题。这些问题迫使美国国家航空航天局(NASA)谨慎行事,决定在明年二月用 SpaceX 的"载人"龙""(Crew Dragon)飞船运送乘员返回,这意味着两名乘员将继续在国际空间站生活半年多。  纳尔逊局长在昨天的媒体电话会议上分享了原因,宣布了美国国家航空航天局的决定。他说,需要有两个不同的航天器来运送宇航员,以及美国国家航空航天局与波音公司的...
            0 0 383
            分享
          •   今天,我们来聊聊如何成为一枚初级测试工程师?  最近经常收到小伙伴的私信问打算进入到互联网这个行业,如何转行软件测试?学测试难吗?以及谈到自己非计算机科班毕业,半路转行没什么经验,比较迷茫,不知道学习路线,以及需要学习哪些课程。甚至询问是否需要报个培训班学习,自学就可以吗,还是必须报班等问题。  首先我想说,初级软件测试学习和入门的门槛都是很低的,比起开发岗位来说,要容易得多,只要知道学习路线以及怎么学之后,自学是完全可以入行的。所以,今天就来跟大家探讨一下这个问题。  我浏览了 BOSS 直聘、拉勾网、猎聘网等招聘网站上目前关于初级测试工程师的招聘要求,以及薪水待遇等信息。以本人所在的城...
            0 0 922
            分享
      • 51testing软件测试圈微信