如何测试数据模型?

这次针对于金融行业的理财方面的数据模型做一些测试总结:

数据模型往往是无界面的,大部分都是后台的业务逻辑和一些公式计算,由一个个的job组成,那在测的过程中,就是去执行这些job,观察执行后的结果是不是正确。以下是在测试过程中需要注意的点:

  • 在测一个job之前,要将已生成的目标数据删除或者置0,避免在核对结果时查看了老的数据,一定要确保数据是本次执行过程中新生成的。
  • 如果源数据中无数据,那么生成的目标数据会不会补齐。有些情况是不补齐,有些情况是按前一天的来补,或者是补0,补1,根据具体需求而定。
  • job是不是支持历史数据的回滚,想测历史某一天,或者某一段时间的数据,是否支持。
  • 测历史时,要考虑传入的日期超过源数据最早的日期时,是否会有冗余数据产生,例如源数据只有到1991年,job执行时传参1989年。
  • 非交易日的数据是否存表。
  • 多次执行job时,得到的结果不同时,是进行覆盖还是新增数据。
  • 计算公式时可以将数据导到excel中进行计算。 常用的excel函数有SUM(求和),MIN(求最小),MAX(求最大),AVERAGE(求平均值),STDEV.S(求样本方差),PRODUCT(连乘),ABS(绝对值),CORREL(相关性),COV(协方差)。
  • 计算时要考虑各种值的位数,每一个数据所要求保留的小数位可能是不相同的,这直接影响到你所计算出来的结果。
  • 代码层面,源数据缺失时应该报warning还是报error,要根据业务的影响程度。
  • 回归测试最好是用自动化来做(可以用python+unittest),手工花费时间太长。一个job写自动化代码可能花费半天以内,但是手动测试一次可能就花了2个小时,执行两次以上,时间就赚回来了。


留言