电商产品 coupon适用商品页面增加价格区间筛选项

背景

促销是电商的基本功能,所以产品启动项目,促销指引。完成之后,开发同学觉得增加一个价格区间筛选,用户体验会更好。主动提出要增加此功能点。
在这里插入图片描述

算法

开发同学设计技术方案
设定6个区间段,可左右滑动。适用商品价格 (最高价格-最低价格 )/6,取整(只有首位数字,其余位数为0,例如,30,200)如果结果为个位,不进行区间分割。
例如,最低价格3.9 最高价格 499, 则(499-3.9)/6= 82.5166667 取整递增段应该为 80
区间段应该为,80以下 80-160 160-240 240-320 320-400 400以上

我作为测试,听到技术方案,提出问题,如果产品价格分布不太均匀,马上会出现某些区间段 筛选没有商品,用户体验很差。

开发自己反思
当前的问题是使用等分区间,可能出现部分区间内无商品的 bad case。
可能的解决办法:

方案2,使用 elasticsearch 提供的 variable_width_histogram 聚合功能
实现比较简单
我们现在用的 elasticsearch 版本不支持,需要升级集群
可能效果也未必好(每个桶内的商品量相差很大),但是至少不会出现某个桶内无商品的情况
方案3,使用其他的基于统计的算法
https://jingpeicomp.gitbooks.io/search-platform/content/algorithm/number_section.html 推荐的
不一定能基于 elasticsearch 实现,比如 es 可能不提供方差/标准差这个聚合函数
看起来这个算法还是需要二次统计每个区间内的商品数量,那就要多查一次 es
对于这么一个小功能,实现有点太重,投入产出比低。

最终实现方案,
取 5% 到 95% 分位的价格,这两个价格差值等分作为价格区间
这个效果应该与基于标准差的估算类似,甚至更佳
统计每个区间内的商品数量,如果少于 6 个(一屏)则与高价格区间合并
增加价格区间合并,可以避免badcase

测试点

后端算法:
区间合并
空区间
正常区间分割
不需要分价格区间
前端ui及交互
左右可滑动
点击区间 可正常筛选商品
和原有价格/销量 排序的耦合测试

针对后端算法设计测试case

discount1,商品9个,价格范围0-9.9元 7个+10000-15000 元 2个

discount2,商品13个,价格范围0-9.9元6个 +50-80元 1个+150-200元 6个
discount3,商品9个,价格范围0-9.9元5个 +50-80元 1个+150-200元 3个

总结

1,测试同学需要问清楚技术方案,才能设计相应的测试case,覆盖所有场景 避免盲目工作
2,测试case设计要尽可能精简,精准
3,开发同学不能想当然,轻视任何小的feature
4,培养模型抽象能力,leetcode 上算法题,给一个区间,分桶,让数字尽可能均衡。

用户体验,技术方案,产品需求,有时需要折中考虑。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
    本课程全程使用目前比较流行的开发工具idea进行开发,涉及到目前互联网目中最常用的高并发解决方案技术, 如dubbo,redis,solr,freemarker,activeMQ,springBoot框架,微信支付,nginx负载均衡,电商活动秒杀,springSecurity安全框架,FastDFS分布式文件服务器,还会涉及到代码生成器,   前台的技术有angularJS和BootStrap框架,此课程内容丰富实战性强,如果你还是传统目的开发人员,那你学完本课程会有很大的收获,让你的薪资上涨,5K以上,让你完全感受到了互联网思维带来的高 并发解决方案的思路,如果你是开发的小白,建议你学完Spring,SpringMVC,MyBatis框架后再来学习本门课程,学完以后会让你完全体验到企业级开发的流程.在职开发人员学完后会让你的薪资更高,让你更了解互联网是如何解决高并发 学完SSM框架的同学就可以学习,能让你切身感受到企业级开发环境目标1:完成solr环境安装、中文分析器和业务域的配置目标2:会使用Spring Data Solr完成增删改查操作目标3:完成批量数据导入功能目标4:完成按关键字搜索功能目标5:实现考拉易购搜索结果高亮显示功能目标6:说出考拉易购搜索的业务规则和实现思路目标7:完成查询分类列表的功能目标8:完成缓存品牌和规格数据的功能目标9:完成显示品牌和规格数据的功能目标10:完成过滤条件构建的功能目标11:完成过滤查询的功能目标11:实现考拉易购价格区间筛选功能目标12:实现搜索结果分页功能目标13:理解多关键字搜索目标14:实现搜索结果排序功能目标15:实现隐藏品牌列表功能目标16:实现搜索页与首页对接功能目标17:完成更新索引库的功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马少芳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值