前言

笔者之所以选择斗地主,而不选择当下火爆游戏进行讲解的首要原因是斗地主更容易理解且逻辑性清晰、易学习,方便大家进行实操,希望读者能从中受益。

本实战系列只会进行功能测试的相关讲解,在后续的文章中会逐渐介绍接口、自动化、专项测试等维度的内容,敬请期待~

1、测试需求分析与展示

再进入正式的需求分析前,大家必须要了解的就是为何要做需求分析,面对一个逻辑性较强或较大的系统、模块时,需求分析能够帮助我们快速理解策划“想要的”、需求要“做什么”、“怎么做”,更重要的是需求分析是为了给测试用例的设计做铺垫,而用例设计是否优秀的一部分则来源于对需求理解是否足够透彻。

2、需求分析实战

整体的斗地主内容较多,故此只演示部分,部分需求展示如下所示:

分析第一段话的第一句:第一轮先叫地主的玩家由系统随机选定。后续轮如果同一桌没换人则由获胜玩家(先出完牌的玩家)先叫地主,如果换人则继续随机。

如果仅仅是根据需求进行思考分析,那么无法想出异常点,由需求只能够得出:

实际上,分配地主这个事件本身就是一个随机事件,随机事件就会涉及到概率,那么由此可以新增一条:

只有第一轮的地主是随机指派的,那么会涉及到一个“正反”,即:第一轮和非第一轮:

有人中途退出重新进入新的玩家,就又会走第一轮的随机逻辑,故此也需要清除:

很明显,需求中所提及的“退出”这个概念不明确,断线重连、较长时间的断网恢复后是否也算退出,杀进程恢复,切后台等等是否会计算在“退出”这个范围内

分析第二句需求:如果有玩家在叫地主前选择"明牌",则第一个选择"明牌"的玩家优先获得叫地主权,因此由需求得出:

明牌是一个操作行为,玩家需要手动进行点击选择明牌后,玩家才会明牌,这意味着在地主由系统分配或确定一个地主前,玩家可以随时进行明牌,如果两个玩家在同一时间进行明牌,地主的权利应该会给谁?(真实的情况肯定会有时间差异,由服务端进行计算先后顺序,可能会有微秒的计算差异 ,如果真的出现时间完全一致的情况下,则随机给予一名玩家):

在真实的工作经历中往往边界值更容易出现问题,第一次叫地主的流程顺利,不代表第二次仍然处于逻辑正确的情况(写代码的人懂的都懂),故此我们仍需要对流程进行“边界值”测试

那么现在,让我们来分析第三段需求:如果有玩家在叫地主前选择"明牌",且三名玩家都不选择"叫地主",则系统选择第一个,"明牌"的玩家为地主。无人明牌且无人叫地主则第一位叫地主的玩家为地主。

如需求所示,顾名思义,有玩家明牌的情况且三位玩家均不进行地主争夺,默认地主牌权交给明牌玩家,那么由需求可得:

为了验证代码中的逻辑是否真的是选择了第一个明牌的玩家,在测试过程中需要有两名或三名玩家均进行明牌,来确认代码逻辑是否正确,是否选择的是第一个明牌的玩家:

无任何玩家叫地主、明牌时,第一位拥有叫地主权利的玩家默认为地主,由需求可得:

需求,毕竟也只是需求,会存在遗漏,那么需要根据自己对叫地主的理解,进行用例设计的补充,这往往是最困难的,更依赖测试人员的思维以及对游戏的熟悉程度(知道为啥之前讲解熟悉游戏能够更好的保证测试质量了吧),根据对斗地主的基础认知,大致可以补充以下内容:

上述列举的是测试点,测试用例的设计会在后续的用例设计文章中进行设计,三句需求写出12个测试点,还补充了一些遗漏的需求,这是最后分析对应的需求所得出的结果

3、模块拆解

需求分析完成后的步骤就是对游戏整体进行拆解,拆解游戏整体划分出子模块的分支测试点可以帮助测试人员更好的理解需求,梳理需求,为后续的测试用例设计进行铺垫,大致可以拆解成以下标签(以下的展示非测试用例,只是子模块分支下的拆解分支点):

下述所展示的拆解模块为大部分拆解点,因游戏设计不同,故此拆解模块会存在差异,大多数内容是当下斗地主通用的逻辑和测试点,根据需求划分出拆解点后,在对应的模块划分这里就已经做好了充分的准备

上述所介绍的是斗地主游戏全局的拆解点,如果只针对需求中所提及的叫地主的三点那么它的拆解位置大致是:

游戏中某一个划分子模块的内容按照上述的划分即可,用例设计的结构后续也会按照该结构进行设计~

好啦~以上就是本次文章分享的全部内容啦,你学会了吗?欢迎留言讨论。希望能给大家带来帮助哦!


学习资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

斗地主 功能测试实战--需求分析,欢乐豆到底怎么输光的相关推荐

  1. 斗地主输光豆子,一怒之下我……

    今天我在斗地主输光了豆子,愤愤不平地打开b站,打算怒学一下如何打牌,无意中看到这样一个视频: 进入github,里面的步骤很详细!我来记录一下我的安装过程吧! https://github.com/t ...

  2. 【概率论】对弈输光模型,ruin model

    一个很有意思的问题: 设甲有资金元,乙有元,,两人对弈,每局甲以概率赢1元,以概率,输1元.规定不欠不借,对弈到甲乙中有一人输光才结束.求甲输光的概率. 解 一般的,我们将甲在有资金的时候最终输光的概 ...

  3. 程序员的财务自由之路(三)- 赌徒输光定理

    文章目录 一.前言 二.双色球 1.规则 2.单式中奖概率统计 3.至少中一次高额奖金的概率 4.结论 三.赌徒输光定理 1.举例 2.解释 3.状态转移图 4.递推公式 5.通项公式 6.久赌必输 ...

  4. 赌徒输光 酒鬼回家 长期双方竞赛问题

    前言:仅个人小记. 一. 问题原型 赌徒手里有 x 元,每一局输的概率恒定为 p ,请问赌徒最终输光的概率? 酒鬼徘徊(在坐标轴上左右移动)回家,目前酒鬼在坐标轴上 x 处,家在原点 0 处,请问酒鬼 ...

  5. 斗地主案例的需求分析

    案例介绍 按照斗地主的规则,完成洗牌发牌的动作.具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 案例分析 准备牌: 牌可以设计为一个ArrayLis ...

  6. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_03 斗地主案例(单列)_1_斗地主案例的需求分析...

    洗牌用到集合工具类.Collections里面有个shuffle的方法 完整的需求分析 转载于:https://www.cnblogs.com/wangjunwei/p/11232480.html

  7. 输光200亿,利润暴跌77%!史上最“作死”老字号,还想靠天价翻身?

    作者:张一驰,本文经授权转载自公众号金错刀(ID:ijincuodao) 文/金错刀频道  张一弛 网红店们没想到,当自己还在绞尽脑汁贴标签时,第一批百年老字号已经开始"作死"了. ...

  8. 白乔原创:实战软件DIY

    如果你想与我交流,请点击如下链接加我为好友:http://student.csdn.net/invite.php?u=113292&c=8913f87cffe7d533 ----------- ...

  9. 2018年新春报喜!热烈祝贺王家林大咖大数据经典传奇著作《SPARK大数据商业实战三部曲》 畅销书籍 清华大学出版社发行上市!

    2018年新春报喜!热烈祝贺王家林大咖大数据经典传奇著作<SPARK大数据商业实战三部曲>畅销书籍 清华大学出版社发行上市! 本书基于Spark 2.2.0新版本,以Spark商业案例实战 ...

最新文章

  1. 依赖注入@Autowired@Primary@Quelifier使用
  2. 条形图与直方图的区别
  3. 我们在开源项目中是怎样埋彩蛋的
  4. mysql 快速生成百万条测试数据
  5. 【NOIP 模拟赛】钟 模拟+链表
  6. 省呱呱典型用户和用户场景
  7. python 模糊匹配文件名 glob_Python: glob匹配文件
  8. 使用wowza和xuggler将RTMP转换为RTSP
  9. php默认日志位置,Laravel 修改默认日志文件名称和位置的例子
  10. 组织管理插件-代码自动补全-语法检查等特性-SpaceVim v1.5.0
  11. 给JDK设置tmp目录的办法
  12. C语言经典编程100题
  13. Web安全—常见加密编码方式详解(持续更新)
  14. java计算机毕业设计html5健身房信息管理系统源码+数据库+系统+lw文档
  15. IO流原理及流的分类
  16. EventSource+eggjs
  17. 【LNK2019】 无法解析的外部符号 __iob
  18. Mybatis Smart Code Help插件使用介绍
  19. 边学边敲边记之爬虫系列(八):Scrapy系统爬取伯乐在线
  20. pta 循环单链表的删除(java)

热门文章

  1. 1.6 Mac安装Python开发环境
  2. 资深大牛告诉你什么是架构师
  3. java多线程累加计数
  4. 区块链技术如何为人工智能(AI)开辟新的道路?
  5. ubuntu 配置拼音输入法步骤
  6. vue3+howler.js实现音频播放,兼容大多数音频格式
  7. 百度变更使命后首个政府AI合作落地:在李彦宏老家
  8. wps文本中表格表头重复_WPS表格如何在每页都设置相同表头,原来是这样的
  9. Oracle 全文索引
  10. php文件包含读源码,CTF PHP文件包含--session