软件测试 | 斗地主功能测试实战--需求分析,终于知道你们的欢乐豆到底是怎么输光的了?

本文主要是介绍软件测试 | 斗地主功能测试实战--需求分析,终于知道你们的欢乐豆到底是怎么输光的了?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小编热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、学习方法、心得及踩过的一些坑,记录下来。也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己的方法,并应用到实际中。 

小编整理了一些零基础入门软件测试到精通全套自学资料,还有不少工具和视频的【网盘资源】,

文末有官方推荐微信、申请好友去领取全套软件测试学习资料吧!!! 
————————————————

目录

一、测试需求分析与展示

二、需求分析实战

三、模块拆解

金九银十大礼包来袭!

加入官方推荐微信群聊社区,了解更多软件测试资讯


一期一个知识点

5分钟解答你最关心的软件测试问题

简单明了,清晰易学的干货

你关心的一切软件测试问题,都在这里啦!

  • 笔者之所以选择斗地主,而不选择当下火爆游戏进行讲解的首要原因是斗地主更容易理解且逻辑性清晰、易学习,方便大家进行实操,希望读者能从中受益。
  • 本实战系列只会进行功能测试的相关讲解,在后续的文章中会逐渐介绍接口、自动化、专项测试等维度的内容,敬请期待~

一、测试需求分析与展示

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

二、需求分析实战

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

三、模块拆解

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

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

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

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

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

金九银十大礼包来袭!

接口、自动化、互联网大厂真题

简历模板......统统都有

加入官方推荐微信群聊社区,了解更多软件测试资讯

这篇关于软件测试 | 斗地主功能测试实战--需求分析,终于知道你们的欢乐豆到底是怎么输光的了?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/208796

相关文章

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1