导读
当前,在计算机主机的应用处理模式中,批量处理作为一种事后数据处理方式,一直是一种简单而又非常重要的处理方式,尤其是对于海量数据处理,批量方式就更能显示其高效的处理效果。随着批量交易变得越来越复杂,以及对批量处理时效性的要求,迫切需要有一种有效的、快速的批量作业测试方式,以实现对批量处理的自动化测试。
批量处理
批量处理是指将数据以按批处理的模式完成大量的数据访问、计算、分类、分析、汇总的过程,最终输出大量的营业分析报表,表现出数据访问量大,计算量大,流程复杂等特性。
一般而言,批量处理通过建立作业计划模板,以人工干预或系统自动调起程序的方式执行,模板中包含若干根据业务逻辑处理先后顺序进行排列的节点,节点可以调起对应的批量交易程序,对数据进行加工处理并输出结果。
目前银行大量数据处理都是以批量形式执行,涵盖了会计核算,对公业务,个人业务,信用卡业务,客户信息业务,数据处理业务等多个业务条线,涉及到账务处理,报表统计,数据处理消费等多个核心功能,如何有效地检查、验证和确保批量业务的正确性,成为银行测试部门的关键任务。
批量交易测试的共性关注点
尽管银行批量业务种类繁多,但其在测试过程中关注点基本有以下几个方面:
1、关注批量作业链配置,比如:配置模板正确性,调度计划是否符合预期,代理能否正常调起程序,负载均衡策略是否生效等。
2、批量程序逻辑加工正确性,包含加工逻辑是否正确,数据是否有遗漏,是否有重复,入库表结构,字段名,特殊字符,超长字符能否正常入库等。
3、程序本身语法及格式正确性,如是否包含明文密码,是否包含异常处理,日志定级是否正确,关键步骤是否有日志记录,程序语法是否规范,遇到特殊参数能否正确处理等。
4、性能效率是否符合要求,批量交易常常环环相扣,上游加工结果往往是下游加工的输入,因此要求批量脚本须在一定的时间内完成。
手工批量测试方式
基于以上测试点,手工进行测试的一般步骤为:根据需求设计测试用例,进行测试数据准备插入正反向测试数据,执行批量程序,查询数据库,根据预期结果编写检查语句核对生成数据。
但手工测试常常存在以下局限:
测试效率低。实际测试过程中需要申请各类权限而后连接加载机,连接数据库。以手工方式逐条重复操作,测试效率低,无法有效支持有刚性时间要求的回归测试
测试资产无法有效积累。测试过程中使用的SQL语句,编写的测试程序等无法结构化管理复用
批量测试对测试人员要求高。针对逻辑复杂,数据来源多,数据量大的批量程序,编写核对SQL语句或程序难度大
难以进行质量监控。批量项目协办众多,上下游逻辑耦合紧密,手工测试导致测试分布零散,无法进行有效监控
批量测试平台初探
针对以上问题我们团队开发了批量测试平台,实现了从数据准备->批量执行->结果校验的全流程自动化测试。
平台核心功能有:
1.通过批量平台串联整个测试流程,进行自动化测试,为回归测试提供支持。
2.将录入的测试资产管理起来,方便后续复用借鉴
3.通过预设的一系列检查规则:表结构检查、数据量检查、数据空值检查、数据合法性检查、数据正确性检查,降低了测试人员进行数据检查的门槛,同时支持数据库间,文件与数据库,文件间的大数据量对比。
4.将多期测试数据保存,可从项目、系统等多维度进行质量分析。
平台测试的基本流程:
基本流程
平台主要分为三大模块,配置管理、执行管理、统计分析,配置管理主要为录入基本信息,后续平台将利用这些信息连接数据库和加载机,接着录入系统信息和项目信息,这步是方便分别从系统及项目维度对测试资产进行分类。
配置数据库
执行管理是配置测试策略的核心,如何准备测试数据,执行批量程序的具体命令,配置执行结果的检查方法,这里我们预设了一些常见的检查规则,支持基本的结果检查,比如数据量进行对比,数据字段类型是否符合预期,某一字段是否在预期的范围内,两个表或表与文件的数据是否一致等。 通过这些预先定义良好的对比规则,降低了编写检查SQL语句的门槛,避免了繁复的人工检查过程。
配置测试文件
批次管理是对任务进行编排,在这里我们以任务作为执行的最小单元,一个批次下可以包含多个任务,因为在实际测试过程中,一个项目可能包含多个批量测试任务,这些测试任务的执行环境及系统各不相同但是都隶属于同一个项目,所以这里使用批次的概念编排多个任务。
批次管理
执行历史这里可以查看结果报告,我们将excel当中配置的各个sheet页在这里按条目一一对应,并且可以看到具体的执行日志,结果错误的语句,并抽取一定量的错误数据以供缺陷分析。
测试结果
统计分析模块目前还未完成开发,未来将根据使用情况,积累到足够数据后,针对数据采集情况采用不同报表和统计方式,以期能通过数据分析和报表呈现的方式对批量程序质量进行持续跟踪,进而提高测试质量。
总结
批量测试无前台页面,逻辑关系复杂,覆盖业务面众多,数据量大等特点,导致批量测试的难度很大。平台的产生纵然能解决自动化和降低部分检查难度,但其造数和测试的复杂性仍旧存在,导致平台配置仍然复杂。如荀子所言,“跬步不休,跛鳖千里;累积不缀,可成丘阜”,下一步的方向是将更多新技术与项目实际相结合,步步拆解其复杂性,进一步提高批量测试效率。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取