摘要:为有效开展数据报送测试,本文提出一种数据交互驱动测试的方法和经验,通过阐述数据交互的不同测试对象对应的具体测试方法和测试通过准则,为后续数据交互类测试工作提供借鉴和参考。
一、数据报送测试面临的挑战
数据报送系统的核心工作是满足接口要求,完成数据的报送工作。与传统的页面级-功能级-流程级的测试方法不同,数据报送系统测试更关注于交互数据流程测试、交互数据质量和交互数据的时效性测试。要求测试人员熟悉业务规则、交互规范、校验规则和SQL校验方法,既能进行数据SQL验证也能进行报文的数据测试。
二、数据交互驱动测试方法
针对以上挑战,结合以往项目测试方法,本文提出了一种数据交互驱动测试方法(如图1所示),该方法着眼于系统数据交互测试,按照测试对象的不同进行分类,明确测试方法和测试通过准则,并以此渗透完成系统其他相关的测试。
图1 数据交互驱动测试方法
数据交互驱动测试以每轮测试为线,被测程序运行为点,依据运行前中后测试对象的差异,将测试分为运行前的设计测试、运行中的运行测试和运行后的产物测试三阶段。将测试当成一场交谊舞,测试方法就是它的舞曲,设计测试、运行测试和产物测试则是这舞曲的经典三部曲,而以此渗透的其他测试,请把他当成伴奏,一曲结束即结束一轮测试,而当所有轮测试顺利完成后,整个项目测试也就基本完成。
现在,就让我们随着这支舞曲跳起来吧!
1 第一部曲:设计篇
设计测试的对象主要是开发设计文档、待测试程序以及程序相关的部署配置等内容。具体测试包括设计文档检查、待测程序检查。
1.1 设计文档检查
设计文档检查重点关注测试设计的规范性和设计的完整性,即确认设计的内容与约定好的交互规范内容是否一致;设计的功能与需求比对是否有遗漏;设计的功能与软需中的功能点比对是否有遗漏等。具体测试可以包括:接收数据设计文档的检查和交付数据设计文档的检查。
1.2 待测程序检查
待测程序检查是指测试人员依据设计文档,检查待测程序和程序部署配置相关信息。重点关注设计的脚本是否有遗漏。具体测试内容为:测试待测试程序较交付清单是否有遗漏;测试待测试程序较设计是否有遗漏;测试待测试程序部署配置是否合理。
2 第二部曲:运行篇
运行测试的对象为程序具体程序(作业或脚本)的运行情况,主要包括正常运行测试、强负载测试、异常测试。
2.1 正常测试
正常运行测试是指程序执行小并发数,模拟各类数据交互程序的正确运行,测试程序是否运行顺畅,无异常。
2.2 强负载测试
负载测试是在强负荷(高并发数运行)下的测试,查看程序在高压下的数据交互情况。
2.3 异常测试
异常测试主要验证在出现各类异常情况(工具模拟内存满,CPU满,磁盘满,操作系统重启等操作)后,程序仍可以持续运行。
3 第三部曲:产物篇
产物测试的对象为交互报文或交互文档。从数据交互角度看,运行产物包括了数据交付方和数据接收方。数据交互可大可小,大可大到与行外系统的交互,小可小到我们平常所说的系统内的每次数据表的转换。从测试角度看,测试又可包括但不限于规范性测试、完整性测试、数据准确性测试、容错性测试。
3.1 数据交付方
3.1.1 规范性测试
规范性测试是指最终交互产物是否符合交互规范的验证。具体测试可以包括:文件名规范测试、数据类型测试、已确定校验规则测试、各时点数据报送约束测试、各时点数据空值约束测试、各时点数据项特性约束测试、字典表规范测试。
(1)通用规范测试
通用规范测试是指针对交付文件名规范、文件头规范、文件体共性规范和通用规则开展的测试。主要检查数据报送文件和数据反馈文件结构是否符合接口文件规范,以防止错误结构文件的报送和可能因报文结构不规范而造成的交互报文的打回或报文接收运行错误等现象。
(2)数据类型测试
数据类型测试指验证交互的数据类型是否符合交互规范。
(3)已确定校验规则测试
已确定校验规则测试是针对接收方特别强调需要满足的校验规则开展的测试。这类规则与交互规范文档中其他规范要求的可能有重复,也有补充内容。为保证规范完整性校验,可作为单独一项测试开展也可去重补充案例。
(4)各时点数据报送约束测试
各时点数据报送约束测试是指对不同类文档不同时点报送的信息就是否“必须报送”、“不应报送”开展专项测试。
(5)各时点数据空值约束测试
各时点数据空值约束测试是指对不同类文档不同时点报送的信息就是否不能为空开展测试。
(6)各时点数据项特性约束测试
数据项特性约束测试是指对不同类文档不同时点报送的信息针对他自身数据的具体业务规范开展的测试。
(7)字典表规范测试
字典表规范测试是指对数据库内的数据转换参考的字典表的规范性进行测试,以此确保对照转换后的数据完全符合交互约定的规范。
3.1.2 完整性测试
完整性测试是指最终交互产物是否有遗漏的测试。常见的测试情况有:信息类别完整性测试、业务种类完整性测试、关键信息业务量的完整性测试、关联信息数量比对测试。
3.1.3 数据准确性测试
数据准确性测试是依据数据转换规则验证待交付产物的数据是否正确。常见的测试有:端到端测试、关联信息逻辑测试、转换规则校对、反馈报文正确解析验证。
3.1.4 容错性测试
容错性测试是指模拟源文件中的各类脏数据,或模拟强负载运行,或模拟运行期间发起异常事件,验证异常运行后的产物。
3.2 数据接收方
3.2.1 规范性测试
规范性测试是指接收方在接收到信息后反馈信息的规范性验证。具体测试可以包括:错误返回信息规范测试、正常返回信息规范测试。
3.2.2 完整性测试
完整性测试是指接收的所有表、表内的字段满足预期的数据需求,没有遗漏。具体来讲主要包括,接收方的完整性测试包括表的完整性检查、记录数完整性检查、字段完整性检查。
3.2.3 一致性测试
一致性测试是指接收入库的信息和预期数据信息一致性的校对。包括数据类型一致性校对、数据内容一致性校对。具体测试方法和通过准则如下:
3.2.4 容错性测试
容错性测试是指模拟交付文件中的各类脏数据,或模拟强负载运行,或模拟运行期间发起异常事件,验证异常运行后的产物。
作者:李琳 田娜 吴文锦
来源:51Testing软件测试网原创