前言
最近几个月都处于找工作黄金期-金九银十,所以我的很多读者都收到了 offer。
从读者的反馈回来的面试中,我们发现除了像“测试工具”、“自动化测试”、“性能测试”等这些提升技能之外,必然要面试官考验到的一个技能就是“测试方法”和”测试思维“。
为了帮助大家的测试面试,今天我给大家整理一篇问到频率比较高的软件测试方法,就是经常被薅羊毛的优惠券要如何测试?
为什么企业面试喜欢问优惠券怎么测试呢?还不是因为这些曾经大家都熟知的优惠券事故么?
1、京东优惠券事故:2020 年 1 月 7 日,京东优惠券设置错误,导致的大量产品以 0 元超低价格成交,并且发货,小家电被薅羊毛 24 万件,损失金额高达 7000 多万。
2、2018 年 12 月 17 日,星巴克上线“星巴克 APP 注册新人礼”营销活动,遭受黑灰产羊毛党大规模攻击。他们利用大量手机号注册星巴克 APP 的虚假账号,并成功领取活动优惠券,导致星巴克的营销活动两天即停止。
3、2019 年 1 月 20 日凌晨,大量用户可以免费领取拼多多“无门槛 100 元券”,可以用来充值话费 Q 币等,这个‘薅羊毛’事件,导致拼多多巨额资金损失。
所以这种京东、拼多多的优惠券如何测试,我们具体要怎么回答呢?我来给大家总结分析一下。
01.测试思维
测试任何事物的测试思路可以总结如下:
第一步:梳理产品的核心业务流程:明白这是个什么项目,实现了什么业务,以及是怎么实现的?
这个步骤一般是参考公司的需求文档来的,如果产品提供需求文档的同时提供了业务流程图,可以遵循流程图来梳理;
如果产品没有提供流程图,就需要测试人员根据需求的理解自己画出流程图,达到梳理业务的目的。
第二步:根据流程进行模块细分,然后针对每个功能模块进行详细的测试点设计和提取。
这个单个功能的测试点提取要覆盖一下几个方面:
正常功能验证:优先覆盖正常的业务流程和功能验证,这其实也是单个功能的冒烟测试。冒烟测试先行,如果不通过,可以直接停止测试等开发修复后继续测试。
异常功能验证:为了更加贴近用户的使用产经,我们也要验证各种异常的场景,故意操作导致出错,检查系统的反馈和提示,保证用户操作失误的情况能够得到系统的友好指示。
因为有很多地方的操作都有可能会导致系统异常和抛错,所以为了不漏测,我们需要找出所有可能导致异常的输入项和选项。所以就到了第三步:
第三步:针对具体功能,寻找每个输入项和步骤,从以下三个角度来分析测试点。
- 长度,数据类型,必填项,重复
- 需求的约束条件 + 隐形需求
- 功能之间的交互
这其中就需要用到一些用例的具体设计方法了,比如场景法,等价类法,边界值法,错误推测法等等
第四步:考虑非功能测试点,包括界面、易用性、兼容性、安全性、性能压力
02.优惠券测试的功能点
基于上面的测试思路,我们可以分析得出“优惠券的功能”测试点如下:
梳理拼多多直播的业务流程如下:
**冒烟测试:**后台添加正确优惠券,并审批通过,前端用户领取并成功抵扣付款。
然后我们再进行各个功能模块的具体细化。根据刚刚上面的业务流程分析,我们不难发现
抖音直播只要分为后端发布优惠券和前端使用优惠券两个部分,所以这两个部分我们要分别进行测试。
我们先看看后台发布优惠券的基本需求:
基本信息
- 优惠券名称:必填项。限制 15 字 :1~15
- 优惠券副标题:非必填项。限制 15 字
- 优惠类型:必填项。主要有满减(满多少减多少)、立减、折扣券
- 发放数量:必填项。限制 1000000 份
- 使用说明:必填项。限制 500 字。
基本规则
- 用户类型:必填项。新用户、老用户、不同等级用户、不限
- 每人限领:必填项。默认 1 次。
- 有效期:a、固定日期:开始时间、结束时间 b、领取后,当天生效,有效天数:例如 30 天
- 跳转链接:必填项。优惠券页面
- 优惠券审批 :一般财务审批后优惠券 ID 生成。
优惠券发布后的约束条件
后台管理
- 优惠券基本信息:优惠券 id、面值、使用期限、发放量
- 已领取数量、已使用数量更新:
- 过期优惠卷处理:删除
用户使用场景
- 用户已领取已使用
- 用户已领取已过期
- 用户已使用订单取消/退款
所以,根据以上的需求我们先做一个基本的冒烟测试:后台添加正确优惠券,审批通过,前端用户领取并成功抵扣付款。
发布优惠券测试点
基本信息测试
优惠券名称(必填项,限制 15 字):
- 有效等价类:1,15
- 无效等价类:小于 1(0),大于 15(16),为空,负数
优惠券副标题
- 有效等价类:1,15
- 无效等价类:小于 1(0),大于 15(16),为空,负数
优惠券类型
- 满减(满多少减多少):例如满 200 减 50,验证前端功能正常
- 立减:例如设置立减 50 的优惠券,验证前端功能正常
- 折扣券:1-9 折的折扣券,验证前端功能正常
- 为空:验证必填项,前端有基本检查并报错信息友好
发放数量
- 有效等价类:1~1000000 范围的数字输入
- 无效等价类:小于 1(0),大于 1000000(10000001),非数字(字母,汉字 字符...),0,负数,为空
使用说明
有效等价类:1-500(1,500)
无效等价类:0,超出 500,为空
优惠券的基本规则
用户类型:
- 新用户类型优惠券:前端验证新用户可以使用抵扣,老用户不能使用抵扣;
- 老用户类型优惠券:前端验证老用户可以使用抵扣,新用户不能使用抵扣;
- 用户等级优惠券:前端验证不同等级用户对应使用场景,匹配的等级可以使用抵扣,否则不可以抵扣;
- 无限制优惠券:任何用户都可以使用并抵扣
商品类型限制
- 指定区域优惠券:验证对应用户使用场景,匹配的区域可以领取并使用,否则不可以使用;
- 商品品类优惠券:验证对应用户使用场景,匹配的商品类型可以领取并使用抵扣,否则不可以使用;
- 不限商品类型优惠券:验证对应用户使用场景,所有商品都可以使用该类型的优惠券。
每人限领优惠券
- 设置默认每人限制领取 1 张:前端验证不能多次重复领取,只能领取一次;
- 设置每人限制领取不限张数:前端验证可以多次领取并使用抵扣
- 限制张数不输入为空:有友好的提示信息。
优惠券有效期验证
选择固定日期过期:
- 有效等价类:开始日期 < 结束日期,并覆盖跨年,跨月等特殊时间,开始日期 = 结束日期
- 无效等价类:开始日期 > 结束日期,开始日期或者结束日期为空验证,提示报错
优惠券审批验证
- 财务审批通过:验证审批通过后,优惠券可以在前端使用
- 财务审批不通过:优惠券无法在前端显示和使用
优惠券发布后验证
后台管理优惠券
优惠券基本信息查看:优惠券 id、面值、使用期限、发放量
优惠券已领取已使用数量更新:
- 用户领取后,已领取的数量更新
- 用户领取后,已使用的数量更新
用户优惠券过期
支持删除,显示状态正确;删除之后,确认能否重复领取
用户使用场景验证
用户已领取已使用:
- 可以按照优惠券的规则进行抵扣
- 验证是否可以叠加使用
- 验证是否可以重复使用
用户已领取已过期
过期状态失效,状态变灰;
即将过期的优惠券是否有提醒
用户已使用取消订单/退款/支付失败
- 取消支付:优惠券返回账户
- 退款:优惠券返还或者作废, 然后退还的支付金额为实际支付金额
- 支付失败:优惠券返回账户
3.福利:私信我关键词“测试”即可领取软件测试全套资料
评论区说说 ~
平时有被优惠券套路过吗