⬜⬜⬜ ???????????????????????? (*^▽^*)欢迎光临 ????????????????????????⬜⬜⬜
✏️write in front✏️
????个人主页:陈丹宇jmu
????欢迎各位→点赞???? + 收藏⭐️ + 留言????
????联系作者????by QQ:813942269????
????致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事顺意????️????
✉️少年不惧岁月长,彼方尚有荣光在 ????
⬜⬜⬜ ---????????????????????前言????????????????????---⬜⬜⬜
本次的内容是对于先前设计的AI智能五子棋游戏的程序软件测试说明,也是我第一次尝试对软件测试写的一次测试报告,万事开头难,我把我进行软件测试的过程发布在本节内容,大家一起学起来啦,恳请路过的大佬可以在评论中不吝赐教,谢谢啦。
????本篇主要内容
游戏软件测试情况
- 测试数据说明
- 白盒测试学习
- 黑盒测试学习
- 测试用例Debug分析
- 测试结果总结
????笔记目录
????一. 游戏软件测试情况
⏳1.1. 测试数据说明
实验环境说明:
硬件配置:CPU 2.70GHz , 内存 16GB
操作系统:Windows 11 64位操作系统
Python版本:Python 3.6.8
常见的软件测试阶段的工作主要分为单元测试、集成测试、确认测试和系统测试四个步骤。测试方法有黑盒测试和白盒测试两种方法:黑盒测试(已经知道产品应该具有的功能,可以通过测试来检验是否每个功能都正常);白盒测试(如果知道产品内部工作过程,可以通过测试来检验内部动作是否按照说明书的规定正常进行)。
本游戏测试的主要方法包括黑盒测试和白盒测试,通过个人游玩,观察游戏在运行过程中,所需要实现的功能有没有实现,以及在测试过程中有没有发现新的问题记录在案。然后根据测试后所产生的一系列的问题,对游戏的组织进行改进,然后再进行测试,就这样重复的进行这样的工作,直到游戏的运行与预想时的状况基本一致时,才算通过测试。
⏳1.2.白盒测试
白盒测试通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正,这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
用软件白盒测试产生的测试用例能够:
1) 保证一个模块中的所有独立路径至少被使用一次;
2) 对所有逻辑值均需测试true和false;
3) 在上下边界及可操作范围内运行所有循环;
4) 检查内部数据结构以确保其有效性。
⏳1.3.黑盒测试
软件黑盒测试也是软件测试的主要方法之一,也可以称为功能测试、数据驱动测试或基于规格说明的测试。测试者不了解程序的内部情况,只知道程序的输入、输出和系统的功能,这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。
软件黑盒测试法注重于测试软件的功能需求,主要试图发现下列几类错误:
1) 功能不正确或遗漏;
2) 界面错误;
3) 数据库访问错误;
4) 性能错误;
5) 初始化和终止错误等。
测试方法可以分为以下几种:等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。从理论上讲,软件黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。软件黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将 测试行为具体量化的方法之一。
⏳1.4.测试用例Debug分析
下面列出13个测试用例结果达到了预想的目标。
表1.4 测试用例
用例 |
操作 |
预期结果 |
实际结果 |
用例1 |
是否能在不同版本的Python中运行 |
游戏能够在设计该游戏版本及以上运行 |
成功 |
用例2 |
运行时能否正常显示主界面 |
运行时能正常显示主界面 |
成功 |
用例3 |
鼠标单击棋盘,是否会有棋子落于该位置 |
棋子落于鼠标点击位置 |
成功 |
用例4 |
用户落子之后电脑在棋盘不满的情况下可以落子 |
电脑可以正常落子 |
成功 |
用例5 |
当人下子出现“活三”、“冲四”,电脑是否会下子堵截 |
电脑会下子堵截 |
成功 |
用例6 |
多次游戏测试:在人(黑棋)没有出现“活三”、“冲四”的情况下,电脑(白棋)落子是否存在规律 |
黑棋没有出现“活三”、 “冲四”的情况下,电脑 (白棋)随机落子,不存 在规律 |
成功 |
用例7 |
进行对战时,按照规则下棋能否正常输赢 |
可以正常输赢 |
成功 |
用例8 |
判断在横线上5子能否获得胜利 |
可以 |
成功 |
用例9 |
判断在竖线上5子能否获得成功 |
可以 |
成功 |
用例10 |
判断在斜线上5子能否获得成功 |
可以 |
成功 |
用例11 |
棋盘满时能否成功出现平局字样 |
可以 |
成功 |
用例12 |
落过棋子的地方是否可以重复落子 |
不可以 |
成功 |
用例13 |
一方获胜时,能否出现用户获胜或者电脑获胜 |
正常显示 |
成功 |
⏳1.5.测试结果分析
代码的game部分实现了主要算法,通过记录所有相同颜色棋子的位置来判断是否赢了。每次用户落子后ai都会判断用户落子位置,然后进行落子,如果出现“活三”“冲四”,就会落子进行阻挡。虽然可以正常进行用户与人机下棋,但在时间运行上开销较大,判断的过程会有多次if条件判断,时间复杂度较高,导致多轮落子后,ai判断落子位置时间增加以及判断输赢时间增加。
????????????我是陈丹宇jum,我也在一直努力提升自己,欢迎大家给我留言,批评指正。