51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2782|回复: 3
打印 上一主题 下一主题

关于概率的测试

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-7-8 09:51:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于概率的测试一直是个难点,一下是我转载的一个概率测试感想,和大家分享

【从黑盒到灰盒】如何测试概率?
完全黑盒测试时,想要验证一个概率实现的正确性,简直是恐怖级的低效,乃至无助。
刚做游戏测试时,我是这样测试的:执行批量行为,然后统计某行为结果占总行为结果的比例来与设计对照。

如设定某怪物掉落某道具,要么掉落,要么不掉落,一旦掉落只掉落一个;掉落的概率是a%。那就是杀死该怪物n个,并捡拾掉落品。根据a的值来确定n的大小,a越大,n越小。
一段时间以后,我就懂得向程序提出指令支持,如召唤指定的怪物指定的数量,如角色无敌状态等等,以缩短杀怪时间。

灰盒化之后,就简便多了。有2个方法:

一是修改配置,即修改a值,为临界值,为较大值。因为a越大,则n越小,测试耗时也就越小。
修改配置也是有2个方向的,这与程序实现有关。一是写死在代码里,一是读表逻辑。不同的程序实现在具体执行上就有不同的处理方式。

二是确认实现方式。在有的项目中,大部分概率是获取概率值(如程序计算或读表逻辑)a,然后“roll”一个值b,如果b落到区间[0,a]则返回 true(掉落),如果b落到区间(b,100]则返回false(不掉落)。由于这个“roll”是已经验证过的函数功能,则我只需验证在做 b<=a的判断时,a值是否获取正确即可。所获取的a值需要程序输出log显示。

至于概率的程序实现有多少方式,有哪些方式,这是我需要进一步了解的。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-2-20 15:42:47 | 只看该作者
LZ辛苦了,不过还是写的太粗略
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2012-2-22 20:45:31 | 只看该作者
mock出来,调用接口,进行大批量测试吧。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2012-3-8 12:06:47 | 只看该作者
一般搞这种测试用接口+自动化测试会好很多!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-6 23:23 , Processed in 0.067081 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表