概率分布在测试中的应用_第1页
概率分布在测试中的应用_第2页
概率分布在测试中的应用_第3页
概率分布在测试中的应用_第4页
概率分布在测试中的应用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在QA的日常测试中,有时会遇到概率事件,比如某卡片的抽中概率,某类宝物的掉落概率都需要被测试,但是具体要怎样测试?测试多少次?出现什么结果表示测试通过?我一直没有找到一个明确的答案,带着这个疑问,我进行了一些资料搜索和思考,下面把我的经验分享给大家。

,

,

,

二项分布

,

二项分布在游戏中使用的很多,比如抽卡系统,一般策划会设定抽到xx卡的概率是多少,这个进行n次抽卡,抽到几张xx卡的概率分布函数就是二项分布。根据定义可知,在二项分布中,n次试验中正好得到k次成功的概率由概率质量函数给出:

"那么怎么测试这张卡被抽中的概率呢?这里看一个例子,下图分别是概率为0.1的事件在10,100,500和1000次的事件中的出现次数的概率分布。"

可以看到随着试验次数的增多,中间的峰越窄,事件发生的次数越向真实概率集中,可以预见的,我们测试抽卡次数越多,所得到xx卡的数量就越接近于它的本身概率。

,

那么在测试中,如何判断所得的结果是正确的呢?这里需要用到统计学中假设检验的方法。

,

通俗的说,假设检验大致可以理解为:小概率事件不会发生,如果发生了小概率事件,那就否定之前的假设。

,

关于统计学还有两点额外信息,

第一:小概率可以取5%或者1%,5%在统计学中被认为是显著的,1%在统计学中被认为是非常显著的。

第二:假设检验只能证伪,而不能证明假设。

,

把以上的想法应用到概率测试中,我有如下思路:

和上图展示的一样,每个概率分布的主体都应该相互隔开,可以采取5%或者1%的显著性水平,5%就是左右两边各有2.5%的概率越过精度间隔,1%就是0.5%的概率越过,相邻两个概率分布的间隔就是测试的精度。

,

举个例子,比如一个事件A,结果B发生的概率是0.5,我进行了500次事件A的测试,发现B一共发生了235次,我对概率测试的精度要求是0.1。这些数据说明了什么呢?

,

首先,理论上概率是0.5,精度要求是0.1,那么0.45-0.55的实际测试概率都是可以接受的,一共进行了500次测试,对应到B发生的次数就是500*0.45-500*0.55,也就是225次到275次之间,而实际B发生了235次,在这个区间内。

,

其次,在0.1的精度下,也就是225次和275次时,我们来看概率是0.4或者0.6的可能性有多大:

,

">x<-pbinom(225,500,0.4)"

>print(x)

[1]0.9897285

,

">x<-pbinom(275,500,0.6)"

>print(x)

[1]0.01300643

可以看到,假设事件B发生的概率是0.4,那么实际测试时,B的次数有98.97%的概率小于等于225次,我们实际得到的是235次,在统计学的假设检验中,此为小概率事件,就证否了之前的假设:事件B实际发生的概率是0.4。以此类推,我们可以证否所有事件B发生概率小于0.4的假设。

,

,

同理,假设事件B发生的概率是0.6,那么它有1.3%的可能在实际测试时B发生的次数小于等于275,而我们现在得到的数据是235,这同样证否了所有事件B发生概率大于等于0.6的假设。

"由于我们设定的精度为0.1(表示实际概率可以取值为0.1,0.2,0.3…0.9,1),所以得出结论:事件B发生的概率是0.5,符合理论,测试通过!"

,

以上就是我关于概率测试的经验,由于在实际测试中,概率的数值和精度的需求不定,而二项分布在不同概率和不同测试次数下曲线都不一样,我这里有一些快捷的窍门可以提供给大家:

1.

在显著性水平为5%的情况下,精度为0.1的概率事件测试400次,而精度为0.01的概率事件测试40000次

2.

在显著性水平为1%的情况下,精度为0.1的概率事件测试700次,而精度为0.01的概率事件测试70000次

,

最后,附上一些不同测试次数和精度下的概率分布图,帮助大家直观的了解二项分布:

"精度0.1下100,500和1000次试验二项分布概率分布图"

"精度0.01下5000,10000和50000次试验二项分布概率分布图

"

泊松分布

泊松分布对应的是二项分布的极端情况,当二项式分布的次数n很大,而发生的概率p很小时,就可以使用泊松分布代替二项式分布,具体来说,它的成立需要满足三个条件

事件是小概率事件

事件是独立的,不会互相影响

事件发生的概率是稳定的

,

先来看一个例子:

已知某家小杂货店,平均每周售出2个水果罐头。请问该店水果罐头的最佳库存量是多少?

假定不存在季节因素,可以近似认为,这个问题满足以下三个条件:

(1)每个顾客购买水果罐头是小概率事件(顾客的数量很多)。

(2)购买水果罐头的顾客是独立的,不会互相影响。

(3)顾客购买水果罐头的概率是稳定的。

,

"在统计学上,只要某类事件满足上面三个条件,它就服从""泊松分布""。"

,

泊松分布的公式如下:

各个参数的含义:

P:每周销售k个罐头的概率。

X:水果罐头的销售变量。

k:X的取值(0,1,2,3...)。

λ:每周水果罐头的平均销售量,是一个常数,本题为2。

根据公式,计算得到每周销量分布:

从上表可见,如果存货4个罐头,95%的概率不会缺货(平均每19周发生一次);如果存货5个罐头,98%的概率不会缺货(平均59周发生一次)。

,

对应到游戏测试中,有什么应用呢?

,

已知某珍惜道具,平均每周掉出2个,请问该在每周掉出多少个时设置报警?看到这里,是不是立马就得出了答案?因为游戏中,玩家的行为是未知的,就算知道了道具掉落的概率,也很难在实际中计算玩家得到道具的概率,这个时候,只使用平均每周掉出2个这一项数据,就可以根据泊松分布计算出概率分布,从而确定掉落大于多少时是小概率事件。

,

,

再举个例子,在项目进入开发后期后,已知在游戏测试中,平均每周会有两次crash,那么,当本周crash次数达到多少时,应该引起QA对本周周版本质量的重视呢?

,

泊松分布在游戏开发中的应用还可以有很多,我在这里抛砖引玉,相信大家只要理解了它的概念,就能轻易的找到它的应用场景。

指数分布

指数分布在游戏中也会有存在,来看一个网上的例子:

在某游戏抽卡系统中,策划填了设置紫卡被抽中的概率是5%,策划说,设置5%是为了给玩家抽卡20次就抽中一次的体验。但是游戏上线后,许多玩家在抽卡时抱怨脸黑,很难抽到紫卡,而又有一部分玩家反应运气好能连着抽到紫卡,和策划20次中一次的预期不符。项目组第一反应是游戏中出现了bug,但是一直排查不到,这时,程序灵机一动,写了一个模拟抽卡的程序,并画出了图,也就是下图,下图为概率5%,模拟50000次随机得到的结果:

,

上图中红色的是分布图,X轴是出现次数,Y轴是抽中紫卡间隔。而绿色的图是概率分布图,X轴是间隔数,Y轴是概率。

按策划的想法,5%概率应该等同于20次出现一次,那上图很明显并不满足20次出现一次出现规则,实际间隔从近到远呈下坡形状分布,就是说相邻的概率最大,间隔最大超过160,这与玩家所吐槽的抽卡体验是一致的。但50000次随机总共出现了2508次,从统计的意义上来说又是符合5%概率的。

,

所以这个问题,究其原因就是所谓的概率是统计意义上的还是分布意义上的问题。这里,就需要介绍另一个分布:指数分布。

,

指数分布是固定概率事件的出现间隔的概率分布,应用到抽卡中,就是两次抽中xx卡之间间隔抽卡次数的分布。它的公式网

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论