JOB测试一般要求:
CIF:对非字符型字段空值检查,日期检查。
LDF:要求数据要覆盖JOB的所有路径,即每条路径至少需要有一条数据通过。
LOD:把LDF生成的文件进行加载,查询数据库检查所加载的数据是否正确。
测试方法:
1、由于JOB的数据流程顺序,可以把JOB按照先后排序,按顺序造数据。
2、测试的重点应在LDF层的STEP1中,造数方法如下:
用INSERT INTO命令往数据库插入两条数据,模式如下:
INSERT INTO UID_1,……,HS_1,ROW_ID_1
INSERT INTO UID_2,……,HS_1,ROW_ID_2
造EXF数据文件,模式如下:
……,UID_3,…… --对应新记录N
……,UID_1,……,HS_2 --对应更新记录U
……,UID_2,……,HS_1 --对应老记录O
字段解释:
总的来说,测试数据需要造三个UID,其中两个放到数据库里,一个放到EXF文件里;两个HASHCODE,数据库里与EXF文件分别放一个;两个ROW_ID,放到数据库里,这是数据库的物理主键。
UID:由于UID是业务上的主键,具有唯一性(虽然实际上可以插入两条具有相同UID的记录,但这是业务规则不允许的),而要覆盖更新记录和老记录路径,就需要往数据库里插入两条记录,分别对应UID_1和UID_2。EXF文件含一个完全不同的UID的记录,造出新记录。EXF数据文件的另外两条记录分别为UID_1和UID_2;由于EXF的这两条记录都能够与数据库关联,则可以进行HASHCODE的比较了。
HASHCODE:用于在UID相同的那两条记录进行对比。
ROW_ID:由于ORACLE里ROW_ID是物理上的主键,具有物理唯一性。如果不赋值,则视为空值,那么插入一条带空值ROW_ID的记录后,再不能再插第二条带空值ROW_ID的记录了。为了能够插入两条数据,就需要造两个ROW_ID字段了。