单元测试+集成测试+回归测试的设计

思想:

测试是质量的基础;是维护的基础;是重构的基础
eg:一次数据的计算错误,没有测试,造成30万的损失(仅仅算人力成本,不计算线上成本)

测试设计:

单元测试

单元测试样本生成 是扁平化设计,每个模块解耦。单个模块用 hadoop streaming +python 的方式运行,方便单独测试。每个模块的代码都有日志分级,方便快速进行调试,降低维护成本。
对于java部分的hadoop代码,采用 多态设计,将业务处理与hadoop 、hbase框架做了解耦,方便业务代码单机做测试。而业务代码用JUNIT5进行了单元测试。

2329716-b0a868178f26ad10.png

集成测试

集成测试每个模块都有统一的集成测试入口: model/test/start_test.py ,可以快速做模块测试。
为单个模块设计了对应的业务测试类,例如:zhaozu对应的业务类zhaozuTest, 两者之间联系:zhaozuTest摘取的zhaozu的base_log,只是挑选了20条左右。设计原因:如果以单天的数据做测试,耗时长,测试效率不高;抽取少量代码,形成xxxxTest业务类,方便快速测试。

2329716-fc30fc84a141905f.png

回归测试

回归测试当修改了代码,需要做rebuild,如果以某个业务单天跑,耗时很长,所以,以zhaozuTest 做小数量的全流程的测试。将所有模块都跑到。10分钟左右可以将所有的模块代码都测试一遍。脚本路径:sample/regressionTesting.sh

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,143评论 25 709
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,226评论 2 126
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    Mr希灵阅读 22,050评论 7 278
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,761评论 5 100
  • 我的家乡在武山,那是一个美丽的地方,那里的人们朴实善良,那里有很多名胜古迹,比如说水帘洞、卧牛山等等。但最让人流连...
    泪犹殇阅读 2,021评论 2 2