抽奖相关功能测试思路

1. 抽奖系统功能测试用例设计(登录 + 每日3次 + 中奖40% + 道具兑换码)

✅ 功能点分析
  • 必须登录后才能抽奖
  • 每天最多抽奖3次
  • 抽奖有 40% 概率中奖
  • 中奖返回兑换码
✅ 测试用例设计

编号

用例描述

前置条件

操作

预期结果

TC01

未登录时抽奖

未登录

请求抽奖接口

提示未登录/权限不足

TC02

登录后首次抽奖

登录成功

第一次请求抽奖

正常返回抽奖结果

TC03

登录后第4次抽奖

已抽3次

再次请求抽奖

提示抽奖次数已用尽

TC04

每天抽奖次数刷新

隔天

请求抽奖接口

抽奖次数重置,可继续抽奖

TC05

抽中奖励为兑换码

登录+中奖情况

请求抽奖接口

返回奖励物品和兑换码

TC06

抽奖不中奖

登录+非中奖情况

请求抽奖接口

返回未中奖消息或普通反馈

2. 宝箱概率测试(无限钻石,测试特定物品概率)

✅ 目标

验证“某个物品”的掉落概率是否符合设定(例如:物品A 掉落率为5%)

✅ 测试方法
  1. 模拟调用宝箱接口大量次数,例如 100,000 次;
  2. 每次记录返回的物品 ID 和数量;
  3. 对目标物品 A 统计实际出现次数;
  4. 实际概率 = 出现次数 / 总次数;
  5. 与设定概率进行误差比较,设定允许 ±容差(如 0.5%)。
✅ 验证标准
  • 假设设定概率为 5%,实际统计值应落在 [4.5%, 5.5%] 区间;
  • 如超出范围,说明概率控制存在问题(可能是实现 bug、随机源问题、浮点误差等)。

3. 十连抽机制测试(是否概率提升/保底)

✅ 情况分析
  • 十连抽是否“每次独立抽取”?
  • 是否有“保底”机制(例如必出一个稀有)?
  • 是否概率随着次数改变(如前几次低,后面提升)?
✅ 测试策略
  1. 执行大量十连抽(每次模拟10次),统计每次稀有物品掉落数量;
  2. 与单抽结果对比:
    • 若每次十连抽 ≈ 单抽 * 10 → 说明为独立抽取;
    • 若十连抽中奖概率更高 → 说明有额外加成;
  1. 检查保底机制:
    • 若每次十连抽都至少出现1个稀有,可能存在保底;
    • 连续多次未出现则说明无保底。
✅ 验证结果

根据统计频率和结果判断设计逻辑是否符合预期,如非独立概率或存在隐藏机制,应在设计中明确标注。


4. 0级装备升到5级的期望次数(每次成功概率50%)

这是一个典型的期望值问题,升级失败时保持原等级(不降级,不碎)

✅ 定义

每升一级的成功概率是 50%(p = 0.5)

我们需要计算从 0 → 5 的总期望次数。

每升一级的期望次数是:

  • E = 1 / p = 1 / 0.5 = 2 次

那么总期望为:

  • 5 级 = 5 × 2 = 10 次

期望值 = 10 次尝试

5. 宝箱概率用例设计(碎片90%,完整宝石10%)

✅ 测试目标

验证碎片和完整宝石的掉率是否分别为 90%、10%

✅ 测试方法(频率统计法)
  • 执行大量开宝箱动作(建议 ≥ 10 万次);
  • 记录每次开出的类型:碎片 or 宝石;
  • 统计结果:
    • 碎片次数 / 总次数 ≈ 90%
    • 宝石次数 / 总次数 ≈ 10%
✅ 测试用例设计

用例编号

描述

操作

验证方式

TC01

宝箱正常开启

正常执行开宝箱

返回物品不为空

TC02

统计概率 - 碎片占比

开箱10万次,记录碎片数

碎片频率应≈90%

TC03

统计概率 - 宝石占比

同上

宝石频率应≈10%

TC04

多角色账号测试

不同账号执行同样操作

验证概率是否一致

TC05

开箱失败/异常处理

掉线、中断等异常操作

验证不会多开或丢数据

6. 开宝箱 → 发到邮箱 → 发到背包:可能的 Bug 或不合理点

✅ 这是一种常见的物品发放流程,但设计上有一些潜在风险:

流程阶段

潜在问题

建议方案

开宝箱

返回结果但未落地保存,可能丢失

抽奖结果必须服务器落库后再返回

发到邮箱

邮箱发放失败(满/延迟/未读)

邮箱上限提示,失败自动重发或补发

发到背包

背包满导致发放失败

背包满提示,物品自动转邮箱或队列

多端同步问题

一端背包刷新成功,另一端没更新

背包、邮箱状态应支持实时同步

安全性

邮箱或背包数据易被篡改

所有奖励必须由服务端控制和验证

✅ 更安全合理的流程应为:
  • 抽奖完成后 → 奖励写入数据库 → 同步到邮箱/背包;
  • 如果背包满 → 发邮箱;
  • 所有发放动作需写入日志,以便追查和防止作弊。

✅ 总结

  1. 抽奖系统需涵盖登录校验、次数限制、中奖验证等功能测试;
  2. 概率验证必须使用大样本统计,并设定容差范围;
  3. 十连抽需分析是否为独立抽取、是否有保底;
  4. 升级期望计算用概率期望公式求解(共期望 10 次);
  5. 宝箱概率测试用频率统计,覆盖所有掉落类型;
  6. 发放流程必须确保数据完整、安全,并做好异常处理机制。

如果需要我帮你补充每一项的自动化测试实现或代码脚本也可以告诉我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/906193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity editor文件数UI(支持勾选框)

unity editor文件数(支持勾选框) 使用的时候new一个box即可 using Sirenix.OdinInspector; using Sirenix.OdinInspector.Editor; using System; using System.Collections; using System.Collections.Generic; using UnityEngine;[Serializable] publ…

RabbitMQ通信模式(Simplest)Python示例

RabbitMQ通信模式-Python示例 0.RabbitMQ官网通信模式1.Simplest(简单)模式1.1 发送端1.2 接收端 0.RabbitMQ官网通信模式 1.Simplest(简单)模式 1.1 发送端 # -*- coding: utf-8 -*- """ Author: xxx date: 2025/5/19 11:30 Description: Simaple简单模…

隨筆20250519 Async+ThreadPoolTaskExecutor⾃定义线程池进阶实战

1.ThreadPoolTaskExecutor线程池 有哪⼏个重要参数, 什么时候会创建线程 1.核心綫程數 查看核心綫程數目是否已經滿,未滿 創建一條綫程 執行任務,已滿負責執行第二部 2.阻塞隊列 查看阻塞隊列是否已經滿,未滿將任務加入阻塞隊列&…

YOLO11解决方案之实例分割与跟踪探索

概述 Ultralytics提供了一系列的解决方案,利用YOLO11解决现实世界的问题,包括物体计数、模糊处理、热力图、安防系统、速度估计、物体追踪等多个方面的应用。 实例分割是一项计算机视觉任务,涉及在像素级别识别和勾勒图像中的单个对象。与只按类别对像素进行分类的语义分割…

VScode各文件转化为PDF的方法

文章目录 代码.py文件.ipynb文本和代码夹杂的文件方法 1:使用 VS Code 插件(推荐)步骤 1:安装必要插件步骤 2:安装 `nbconvert`步骤 3:间接导出(HTML → PDF)本文遇见了系列错误:解决方案:问题原因步骤 1:降级 Jinja2 至兼容版本步骤 2:确保 nbconvert 版本兼容替代…

现代计算机图形学Games101入门笔记(十五)

蒙特卡洛积分 为什么用蒙特卡洛积分,用来做什么?跟黎曼积分区别,黎曼积分是平均分成n等分,取每个小块中间的值取计算每个小块面积,再将n份集合加起来。蒙特卡洛积分就是随机取样,假设随机取样点xi,对应的f…

软件架构之-论高并发下的可用性技术

论高并发下的可用性技术 摘要正文摘要 ;2023年2月,本人所在集团公司承接了长三角地区某省渔船图纸电子化审查系统项目开发,该项目旨在为长三角地区渔船建造设计院、以及渔船审图机构提供一个便捷化的服务平台。在此项目中,我作为项目组成员参与了项目建设工作,并担任系统架…

Q-learning 算法学习

Q-learning是一种经典的无模型、基于价值的算法,它通过迭代更新状态-动作对的Q值,最终找到最优策略。 一 Q-learning的核心思想 1.1目标 学习一个状态-动作价值函数 ,表示在状态 s 下执行动作 a 并遵循最优策略后的最大累积奖励。 的核心…

鸿蒙生态崛起:开发者机遇与挑战并存

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《热点时事》 期待您的关注 目录 引言 一、何为鸿蒙生态? 二、在鸿蒙生态下开发时遇到的挑战 三、对于鸿蒙生态未…

TCP/IP-——C++编程详解

1. TCP/IP 编程基本概念 TCP(传输控制协议):面向连接、可靠的传输层协议,保证数据顺序和完整性。IP(网际协议):负责将数据包路由到目标地址。Socket(套接字)&#xff1a…

Python图像处理基础(三)

Python图像处理基础(三) 文章目录 Python图像处理基础(三)2、计算机色彩(Computer Color)2.5 色彩分辨率2.6 灰度颜色模型2.7 CMYK 颜色模型2.7.1 K 部分2.8 HSL/HSB 颜色模型2、计算机色彩(Computer Color) 2.5 色彩分辨率 人眼可以看到许多不同的颜色,但我们的感知…

Vue路由深度解析:Vue Router与导航守卫

Vue路由深度解析:Vue Router与导航守卫 一、Vue Router基础与安装配置 1. Vue Router核心概念 Vue Router是Vue.js官方的路由管理器,主要功能包括: 嵌套路由映射模块化的路由配置路由参数、查询、通配符细粒度的导航控制自动激活的CSS类链…

前后端分离微服务架构

前后端分离微服务架构 介绍: 前端通过Vue和ElementUI构建界面,使用axios调用后端API。Nginx作为反向代理,将请求路由到Zuul网关。Zuul进行权限验证(JWT)后,将请求分发到微服务。(身份验证,安全防护(sql注入,xxs跨网站…

iOS 工厂模式

iOS 工厂模式 文章目录 iOS 工厂模式前言工厂模式简单工厂案例场景分析苹果类优点缺点 小结 工厂模式客户端调用**优点****缺点** 抽象工厂模式三个模式对比 前言 笔者之前学习了有关于设计模式的六大原则,之前简单了解过这个工厂模式,今天主要是重新学习一下这个模式,正式系统…

【机器学习】工具入门:飞牛启动Dify Ollama Deepseek

很久没有更新文章了,最近正好需要研究一些机器学习的东西,打算研究一下 difyOllama 以下是基于FN 的dify本地化部署,当然这也可能是全网唯一的飞牛部署dify手册 部署 官方手册:https://docs.dify.ai/en/getting-started/install-self-hos…

安卓A15系统实现修改锁屏界面默认壁纸功能

最近遇到一个A15系统项目,客户要求修改锁屏界面的默认壁纸,客户提供了一张壁纸图片,但是从A15系统的源代码查看时才知道谷歌已经去掉了相关的代码,已经不支持了,A13和A14系统好像是支持的,A15系统的Wallpap…

从理论到实战:模糊逻辑算法的深度解析与应用实践

从理论到实战:模糊逻辑算法的深度解析与应用实践 一、模糊逻辑的核心概念与数学基础 模糊逻辑(Fuzzy Logic)是一种处理不确定性的数学工具,其核心思想是将传统布尔逻辑的“非黑即白”扩展为连续的隶属度函数。例如,在…

正向代理与反向代理区别及应用

正向代理和反向代理是两种常见的代理服务器类型,它们在网络架构中扮演不同角色,核心区别在于代理对象和使用场景。 1. 正向代理(Forward Proxy) 定义:正向代理是客户端(如浏览器)主动配置的代理…

OpenCV CUDA模块中逐元素操作------逻辑运算

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 比较、AND、OR、NOT等。这类操作可用于创建基于条件的掩码,这对于图像分割或特征选择非常有用。 主要函数 1. 按位与 (cv::cuda::b…

一台入网的电脑有6要素, 机器名,mac,ip,俺码,网关,dns,分别有什么作用

一台入网的电脑需要配置的 六大网络要素(机器名、MAC地址、IP地址、子网掩码、网关、DNS)各自承担不同的关键作用,共同确保设备能正确通信和访问网络资源。以下是它们的详细功能解析: 1. 机器名(主机名) 作…