思想:
测试是质量的基础;是维护的基础;是重构的基础
eg:一次数据的计算错误,没有测试,造成30万的损失(仅仅算人力成本,不计算线上成本)
测试设计:
单元测试
单元测试样本生成 是扁平化设计,每个模块解耦。单个模块用 hadoop streaming +python 的方式运行,方便单独测试。每个模块的代码都有日志分级,方便快速进行调试,降低维护成本。
对于java部分的hadoop代码,采用 多态设计,将业务处理与hadoop 、hbase框架做了解耦,方便业务代码单机做测试。而业务代码用JUNIT5进行了单元测试。
集成测试
集成测试每个模块都有统一的集成测试入口: model/test/start_test.py ,可以快速做模块测试。
为单个模块设计了对应的业务测试类,例如:zhaozu对应的业务类zhaozuTest, 两者之间联系:zhaozuTest摘取的zhaozu的base_log,只是挑选了20条左右。设计原因:如果以单天的数据做测试,耗时长,测试效率不高;抽取少量代码,形成xxxxTest业务类,方便快速测试。
回归测试
回归测试当修改了代码,需要做rebuild,如果以某个业务单天跑,耗时很长,所以,以zhaozuTest 做小数量的全流程的测试。将所有模块都跑到。10分钟左右可以将所有的模块代码都测试一遍。脚本路径:sample/regressionTesting.sh