如何通过代码分析精简用例(2)

上一次分享的如何通过代码分析精简用例主要是针对WEB侧逻辑复用,从而精简冗余用例的案例。

本次的案例分享是希望通过对SVR代码的分析,完成用例执行的精简。

测试需求:

每日每工号B2C电话拉取画像限制为200次

这种类似频次的需求,在很多项目中都会遇到,它们共通的特点是实际操作起来比较复杂,在有限的时间里可能难以覆盖。对于这类需求比较好的方式是单元测试+全流程测试的组合,关于单元测试的方法在我曾经的乱弹单元测试中有介绍,本次介绍的是手工测试如何通过代码分析来简化。

代码分析:

涉及SVR:画像SVR(cc_customer_data_svr) 风控SVR(cc_risk_manage_svr)

不想看下面的分析过程的可以直接看上图。

  1. 画像SVR在拉取画像前会请求风控SVR,检查画像拉取配额信息customer_profile_processor.cpp
  2. 风控SVR首先拉取用户画像配额配置(如:200次),接下来通过读取redis获取用户画像使用次数,判断使用次数是否小于配额,如果不小于配额则返回没有配额,否则自增使用次数写入redis后返回。

check_user_profile_quota_processor.cpp

cc_risk_manage_svr.cpp

  1. 画像SVR通过返回的配额信息,决定是否拉取画像。

customer_profile_processor.cpp

用例精简:

拿两个用例来举例:

登录工号A,拨打B2C网络电话同一号码n次,同一天内尝试再次拨打

登录工号A,拨打B2C网络电话不同号码n次,同一天内尝试再次拨打

通过这两个用例我们可以得出写用例同学是希望校验同一号码是否会被“去重”。

通过代码分析后,我们的执行则可以变成:

(前提:拨打一次B2C后),拨打同一号码,用户画像使用次数是否增加。

(前提:拨打一次B2C后),拨打不同号码,用户画像使用次数是否增加。

用户画像使用次数的查询,如果直接去通过命令行去查redis是比较麻烦的,从代码里我们可以看到开发其实是把查询结果写进了日志。我们可以通过日志比较直观的看到查询结果。

DEBUG162: kfuin=2852199351, kfext=2852997014, quota result=0, use=5, max=5

至此,我们就完成了从耗时较长的多次电话拨打转变为拨打少量电话检查日志,从而完成了用例执行的精简。

总结

对于一些共通的需求和设计保持敏感,保持测试的完备性的同时提升测试效率。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

Entity Framework 和NHibernate的区别

今天在Boy's (小气的神) BLOG上看到一篇精彩的文章 Astoria to SQLite to Entity Framework to 建立你的ORM观...

2007
来自专栏张善友的专栏

Gallio 自动化测试平台

Gallio是MbUnit的作者组织开发的一个开源项目,非常值得从事测试开发的同学们的注意。 根据Gallio网站的描述:Gallio自动化平台是一个开放的,可...

18910
来自专栏MelonTeam专栏

WWDC2017小结

WWDC 2017 硬件 iMac Pro ? 这款深空灰色的设备被称为至今为止的最强 Mac,它将搭载最高 18 核心的 Intel Xeon 处理器和 AM...

1939
来自专栏美团技术团队

WWDC案例解读:大众点评相机直接扫描支付是怎么实现的

去年12月4日,Apple CEO Tim Cook 和王兴共同出现在上海的一家老字号生煎店“大壶春”,现场用大众点评App体验了iOS 11新功能,包括用地图...

822
来自专栏ATYUN订阅号

微软为OneDrive和SharePoint带来了自动转录和计算机视觉功能

微软今天宣布计划向使用OneDrive和SharePoint的Microsoft 365客户推出一系列AI服务。今年下半年,用户将能够从所有音频和视频文件中获得...

713
来自专栏张善友的专栏

针对构架师的.NET 3.0介绍

微软.NET的最新版本,.NET Framework 3.0,为开发下一代业务解决方案软件系统开启了新的可能。它的设计目标是:提高生产力,降低基础设施复杂性,提...

1706
来自专栏zhangdd.com

详解Win10家庭版/专业版/企业版功能区别

之前曾经在今年更早时间解释了Win10各个版本之间有什么差别和不同之处,但是在Win10升级全知晓中发现依然有很多朋友还是在问,这里就再详细解释一下。

1383
来自专栏码农阿宇

从博客园博问站点迁移ASP.NET Core展望.NET Core

今年年初,博客园的博问系统就已经迁移到了 ASP.NET Core on Linux并发布上线发布。

951
来自专栏程序员八阿哥

年薪20万Python工程师进阶(2):Python 资源 + 经典练手项目

Python 越来越火爆,最近自己也在学习。整理下一些 Python 资料,和练手的项目。希望对你学习 Python 有所帮助。

861
来自专栏张善友的专栏

微软发布IronRuby

微软公司在其MIX07大会上宣布了IronRuby,一个运行在.NET CLR之上的Ruby实现的发布。其中,IronRuby与Java VM上的JRuby类似...

19010

扫码关注云+社区