[Gamma阶段]测试报告
[Gamma阶段]测试报告
测试方法及过程
在正式发布前,为检验后端各接口功能的正确性,后端服务器对压力的耐受程度,以及前端各页面、功能的运行情况,我们对我们的服务器及小程序进行了多种测试。除去随开发进行的基本正确性测试外,针对上述三种情形,我们分别进行了单元测试、压力测试以及功能测试。
单元测试
单元测试的主要目的,是测试后端所有接口的工作是否正常。其内容主要包含两方面:
- 接口在正常情况下是否能发挥预期功能
- 接口在异常情况下是否能返回预期错误信息
Gamma阶段的所有单元测试与Alpha、Beta阶段相同,在pycharm下使用Coverage工具进行测试。经过修改后已经通过了所有单元测试。
在Gamma阶段,我们依旧针对每一个接口都设计了相应的单元测试。现在,三个阶段单元测试的总数高达203个。
在运行完所有单元测试后,单元测试的代码覆盖率高达96%,切实确保了所有接口的正确性。
单元测试中发现的bug如下:
后端单元测试Bug汇总
接口 | 现象 | 原因 | 是否解决 |
---|---|---|---|
/mcm/invite/<int:user_id>/ |
调用接口时返回错误码500 | 数据库操作时搜索的键名错误 | 是 |
/mcm/invitations/send/ |
后端返回的邀请信息全是自己的信息,实际上应为被邀请者的信息 | 对数据库搜索到的数据进行的索引错误 | 是 |
/mcm/accept/<int:invitation_id>/ |
同意后未加入队伍 | 更新数据库是未进行保存 | 是 |
/mcm/quit/ |
用户退出队伍后未成为单人队伍的队长 | 未更新用户身份字段 | 是 |
/mcm/accept/<int:invitation_id>/ |
邀请同意后被邀请者仍能在邀请列表里看见 | 未对被邀请者可见的邀请信息进行过滤 | 是 |
/mcm/invite/<int:user_id>/ |
能够邀请队友 | 发出邀请是应过滤现有队友 | 是 |
/my/profile/modify/ |
无法修改个人资料 | account超出最大长度限制 | 是 |
/mcm/search/user/ |
返回的user_id不正确 | 返回的user_id为整数,应改为string类型 | 是 |
/mcm/match/ |
返回的推荐用户中包含自己 | 没有设置相关的查询过滤条件 | 是 |
/mcm/search/user/ |
无法获取name参数 | name参数在url中,不能从body中获取 | 是 |
/mcm/match/ |
获取推荐用户时没有正确过滤已发送邀请的用户 | 设置的相关查询过滤条件不正确 | 是 |
/mcm/quit/ |
用户作为队员退出某一队伍单独一人时未自动成为队长 | 缺少对数据表中相关字段的设置 | 是 |
/mcm/invite/<int:user_id>/ |
调用接口时返回错误码500 | 数据库操作时搜索的键名错误 | 是 |
/mcm/invitations/send/ |
后端返回的邀请信息全是自己的信息,实际上应为被邀请者的信息 | 对数据库搜索到的数据进行的索引错误 | 是 |
/mcm/accept/<int:invitation_id>/ |
同意后未加入队伍 | 更新数据库是未进行保存 | 是 |
/mcm/quit/ |
用户退出队伍后未成为单人队伍的队长 | 未更新用户身份字段 | 是 |
/mcm/accept/<int:invitation_id>/ |
邀请同意后被邀请者仍能在邀请列表里看见 | 未对被邀请者可见的邀请信息进行过滤 | 是 |
/mcm/invite/<int:user_id>/ |
能够邀请队友 | 发出邀请是应过滤现有队友 | 是 |
表中详细列出的BUG的现象及具体原因,目前后端发现的所有BUG均已解决。
压力测试
进行的压力测试与Beta阶段使用相同工具。基本参数如下:
- 并发用户数:500
- 总请求数 :5135
进行压力测试后的结果如下:
- 测试结果:
总请求数量为5135个的情况下,失败请求数为2,表现良好。
平均响应时间为0.905s,吞吐率为51.2req/s。
Gamma阶段压力测试的表现相比Beta阶段,有较大提升。
Beta阶段压力测试详情请见这里
前端功能测试
对于前端的功能测试,仍采用与Alpha阶段相同的方式,即在不同的机型、不同的操作系统下,对每个页面的每个功能进行一一测试,以检测其功能的正确性。前端功能测试的测试矩阵如下:
测试矩阵 | 功能测试 | 页面显示 | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
测试机型 | 测试环境 | 登录 | 搜索 | 查看分类标签 | 首页智能推荐 | 修改个人信息 | 修改简历 | 查看招募 | 发布招募 | 查看我的发布 | 采纳申请 | 申请招募 | 查看我的申请 | 填写美赛个人信息 | 填写美赛问卷 | 换一批推荐 | 退出队伍 | 邀请推荐队友 | 查看已发邀请 | 查看收到邀请 | 接受和拒绝邀请 | 搜索用户 | 页面排版 |
Redmi K20 Pro | Android 9.0 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 显示的人错误(偶尔) | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 |
Mi6 | Android 9.0 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 显示的人错误(偶尔) | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 |
Honor Play | Android 9.0 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 显示的人错误(偶尔) | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 |
IQOO | Android 9.0 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 显示的人错误(偶尔) | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 |
iphone7 | IOS | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无法查看个人简历 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 |
iphone8 | IOS | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无法查看申请者 | 无法查看申请者 | 无问题 | 无法查看个人简历 | 无问题 | 无问题 | 无问题 | 退出队伍有时显示其他人 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 | 无问题 |
场景测试
- 典型用户:冰哥
- 用户需求
冰哥是计算机系的大三学生。由于系里实践与展示课程的要求,冰哥想要参加美国大学生数学建模比赛,但苦于无法找到合适的队友 - 场景描述1
- 冰哥打开微信,进入小小易校园小程序,并通过微信登录
- 进入首页,点击底部导航栏中的“美赛”模块,进入美赛首页
- 填写美赛相关的基本信息并完成美赛信息收集问卷,冰哥便看到了系统自动匹配的队友。
- 在换了几批匹配队友并查看了其信息后,冰哥找到了合适的队友并发送了邀请,等待回答
- 场景描述2
- 冰哥打开微信,进入小小易校园小程序,并通过微信登录
- 进入首页,点击底部导航栏中的“美赛”模块,进入美赛首页
- 填写美赛相关的基本信息并完成美赛信息收集问卷后,冰哥因为有急事退出了小程序
- 再次登录小程序,进入美赛页面,冰哥收到了来自多个匹配队友的邀请。
- 冰哥查看邀请者的信息,选择最合适的队友,接受了邀请,完成了组队
回归测试
从后端的接口测试部分可以看见,在进行Gamma阶段的单元测试时,我们同时运行了前两个阶段已完成的单元测试,并对测试失败的接口进行了修正,最后顺利通过了Alpha、Beta阶段的所有单元测试,保证了前两个版本功能的正确性。
出口条件
Gamma阶段的出口条件概括为:完成一个界面美观的数学建模比赛组队模块。
数学建模模块的具体功能如下:
- 填写、修改数学建模相关信息功能
- 用户填写问卷后,根据用户填写的答案自动打分,并匹配相应队友
- 通过搜索对特定用户发出组队邀请
- 通过首页推荐模块对匹配的队友候选发出邀请
- 管理自己发出、收到的所有邀请
- 用户不满意当前队伍时,可以自行退出当前队伍
- 当A用户向B用户发出了邀请,且B用户还未答复,或B用户与A用户处于同一队伍时,不再向A用户推荐B用户
[Gamma阶段]测试报告的更多相关文章
- Gamma阶段测试报告
测试计划 Gamma阶段依然以场景测试为主.我们归纳了三条场景主线: 一.典型用户:查看 访问排名页面 / 搜索课程 查看课程页面 查看教师页面 为他人评论点赞或点踩 二.典型用户:评论 登录网站 搜 ...
- [Gamma]阶段测试报告
后端测试 我们进行了覆盖性测试,覆盖率达到77%. Beta阶段发现的Bug 项目显示的图片错误 无法使用搜索框 发布实验室项目的按钮点击无法跳转 连续点击发帖按钮可能发出多个相同的帖子 不需要点击我 ...
- [Gamma阶段]事后分析博客
目录 Gamma阶段事后分析博客 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 讨论照片 Gamma阶段事后分析博客 作业要求:Gamma阶段事后分析 设想和 ...
- Gamma阶段事后分析
设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件要解决的是安卓游戏的自动化异常检测问题,定义的足够清楚,对于典型用户的描述和典型场景的描述也足 ...
- [Alpha阶段]测试报告
[Alpha]阶段测试报告 在测试过程中发现的BUG 在最后的测试阶段中,我们不可避免的遇到了各种各样的BUG.虽然大多数都不是严重的BUG,但是这些细枝末节的问题的堆积,依然会很大程度上降低用户 ...
- [Gamma阶段]展示博客
水哥牛X团队[Gamma阶段]展示博客 微信小程序搜索"小小易校园"即可体验 项目愿景 想参加竞赛,锻炼自己,却找不到合适的队友 想进行实习,体验工作,每天不得不翻遍吐槽版的几百条 ...
- 秘制牛肉Gamma阶段项目展示
秘制牛肉Gamma阶段项目展示 1.团队成员和个人博客 · 左顺:在项目中主要负责后端开发.个人博客 · 袁勤:精通网页项目开发,前端后端都很强,在完成自己后端任务后也会积极帮助其他人的任务.个人博客 ...
- Alpha阶段测试报告(示例)
http://www.cnblogs.com/Flamenco/p/7834393.html Alpha阶段测试报告
- Gamma阶段测试计划
前言 点击这一链接访问公课网(笨拙软件工程组). 一.Alpha阶段场景测试 1.1 鹿丸:无欲无求大三学生 保研无望 不在乎给分 只想选择干货多的课程 充实自己 需求和目标:了解各专业课程的授课内容 ...
随机推荐
- Redis(九)高可用专栏之Sentinel模式
本文讲述Redis高可用方案中的哨兵模式--Sentinel,RedisClient中的Jedis如何使用以及使用原理. Redis主从复制 Redis Sentinel模式 Jedis中的Senti ...
- PHP 垃圾回收机制详解
前言:之前对PHP的GC只是了解了个大概,这次详细了解下PHP的垃圾回收机制(GC). 介于网上大部分都是PHP5.X的GC,虽然 php5 到 php7 GC部分做出的改动较小,但我觉得还是一起写下 ...
- 2019-11-29-dotnet-通过-WMI-获取指定进程的输入命令行
原文:2019-11-29-dotnet-通过-WMI-获取指定进程的输入命令行 title author date CreateTime categories dotnet 通过 WMI 获取指定进 ...
- .NET Standard和.NET Core是什么关系(转载)
.NET Standard vs .NET Core 问: I have read about the difference between .NET Standard and .NET Core, ...
- ASP.Net Core中设置JSON中DateTime类型的格式化(解决时间返回T格式)
最近项目有个新同事,每个API接口里返回的时间格式中都带T如:[2019-06-06T10:59:51.1860128+08:00],其实这个主要是ASP.Net Core自带时间格式列化时间格式设置 ...
- WPF样式与触发器(3)
WPF中的各类控件元素, 都可以自由的设置其样式. 诸如: 字体(FontFamily) 字体大小(FontSize) 背景颜色(Background) 字体颜色(Foreground) 边距(Mar ...
- VirtualBox安装Ubutu出错
今天打算装个虚拟机玩玩,这次没有选择VM.感觉那东西各种破解有点麻烦而且体积也不小呀,所以,这次我选择了稍微点的的VirtualBox. 一路安装虚拟机没有问题,安装完后新建虚拟机都正常,可在启动虚拟 ...
- Flask路由系统
Flask路由系统 我们之前了解了路由系统是由带参数的装饰器完成的. 路由本质:装饰器和闭包实现的. 设置路由的两种方式 第一种: @app.route('/index') def index(): ...
- 前端常见的HTML+CSS面试题(附答案)
HTML 1. <image>标签上title属性与alt属性的区别是什么? alt属性是为了给那些不能看到你文档中图像的浏览者提供文字说明的.且长度必须少于100个英文字符或者用户必须保 ...
- vue-router 在新窗口打开页面的功能
项目中,需要点击链接后再新窗口打开页面,大家知道vue是单页面应用开发框架,那么也不是不可以实现这个功能 很简单,详情看下面 1.<router-link>标签实现新窗口打开 <ro ...