目录
测试计划、过程和结果
后端测试——单元测试与覆盖率
如下图:我们对所有接口设计了单元测试,共62个测试,结果:全部通过。代码覆盖率:
- models:94%
- controllers:91%
后端测试——压力测试
展示部分数据
我们对各个请求接口进行了压力测试,并发量设置为500,总请求量设置为700。
对服务器平均请求等待时间,用户平均请求等待时间,吞吐率等指标进行了检验,得到了如下的结果。
社团接口
Document Path: | /clubs/1/information |
---|---|
Document Length: | 562 bytes |
Concurrency Level: | 500 |
Time taken for tests: | 12.593 seconds |
Complete requests: | 700 |
Failed requests: | 0 |
Total transferred: | 861000 bytes |
HTML transferred: | 393400 bytes |
Requests per second: | 55.59 |
活动接口
Document Path: | /activities/list/hot |
---|---|
Document Length: | 1010 bytes |
Concurrency Level: | 500 |
Time taken for tests: | 9.028 seconds |
Complete requests: | 700 |
Failed requests: | 0 |
Total transferred: | 1174600 bytes |
HTML transferred: | 707000 bytes |
Requests per second: | 77.54 |
Transfer rate: | 127.06 kb/s received |
新闻接口
Document Path: | /articles/latest_news_list?page=1&per_page_num=100 |
---|---|
Document Length: | 8710 bytes |
Concurrency Level: | 500 |
Time taken for tests: | 41.167 seconds |
Complete requests: | 700 |
Total transferred: | 6356795 bytes |
HTML transferred: | 5900856 bytes |
Requests per second: | 17.00 |
Transfer rate: | 150.80 kb/s received |
平均数据
并发用户数 | 500 |
---|---|
总请求量 | 700 |
吞吐率 | 50个请求/s |
用户平均请求等待时间 | 0.1s |
服务器平均请求等待时间 | 0.07s |
相比alpha版的用户平均等待时间为3s,并发量为300,beta版的并发量为500,用户平均等待时间为0.1s,性能提高了很多。
前端测试——小程序v2.0
授权登录与权限检查
- 当且仅当用户同意授权登录我们的小程序时,才能使用我们的小程序,且在第二次登录时能直接进入主页。测试通过。
- 一共4种用户,权限列表如下:
1.在社团/活动的讨论区进行发言和点赞 | 2.申请入社 | 3.申请认证为社长 | 4.审核或拒绝入社申请 | 5.在所在社团的讨论区进行删除、置顶 | 6.网页端录入和导出数据 | 7.小程序端增删社团管理员 强制删除社员 |
|
---|---|---|---|---|---|---|---|
a.游客 | |||||||
b.北航学生 | √ | √ | √ | ||||
c.某社团的管理员 | √ | √ | √ | √ | √ | √ | |
d.某社团的社长 | √ | √ | √ | √ | √ | √ | √ |
- 权限检查时,包括两个方面:
- 高级权限是否具有高级和低级权限的功能。
- 低级权限是否不具有高级权限的功能,并且有一些地方需要显示提示信息或跳转到相应页面。
- 按照上述表格有顺序地进行权限测试,测试通过。
新功能的测试
对三个方面进行了测试:
- 在权限都正确的前提下,进行页面内部功能测试,按照下表中的功能树进行检查。
- 页面之间互相影响的测试点,包括:
- 多个页面有活动的点赞、关注信息,是否一致。
- 多个页面有社团的关注、入社状态信息,是否一致。
- 社团的讨论区和讨论详情页的一致性。
- 页面跳转和页面栈。
下面描述的是新功能的验收标准:
页面 | 功能描述 | 验收标准 |
---|---|---|
新闻页 | 筛选出"我加入的"社团的新闻 | 能筛选出"我加入的"社团的新闻,若无则显示提示语,若有则按时间由近到远显示新闻。 |
活动列表页 | 排序方式选择 | 1.按时间由近到远排序,不过滤过期活动。 2.按热度(点赞量)由大到小排序,不过滤过期活动。 |
下拉刷新功能 | 每次刷新会多展示4条活动,刷新到末尾会弹窗提示。 | |
搜索功能 | 1.搜索的范围是所有的活动。 2.会根据关键字在所有活动的 活动标题、社团名、社团类别中进行搜索。 |
|
活动详情页 | 展示活动介绍文章和回顾文章 | 展示活动介绍文章和回顾文章,点击跳转新闻详情页 |
关注和取消关注 | 1.弹窗让用户确认自己的操作。 2.图标颜色、字的内容、人数变化正确。 |
|
点赞和取消点赞 | 1.弹窗提示操作成功 2.图标颜色、字的内容、人数变化正确。 |
|
评论的展示、刷新、发布、点赞 | 1.按时间由近到远排序评论。 2.每次刷新多请求10条评论。 3.只有通过北航学生认证后,才能发布评论,发布后,用户头像、昵称、评论内容和时间应显示正确。 4.对评论进行点赞/取消点赞后,图标颜色、人数变化正确 |
|
社团信息页 | 展示社团标签、图集、介绍推文 | 1.正确展示社团标签 2.正确展示社团图集 3.正确跳转社团介绍推文 |
关注和取消关注 | 1.弹窗让用户确认自己的操作。 2.图标颜色、字的内容、人数变化正确。 |
|
入社状态 | 1.若尚未入社,显示"申请入社",点击后检查是否为北航学生,是则可输入入社理由,提交入社申请,否则跳转学生认证页。 2.若已提交入社申请但尚未审核通过,则显示"审核中"。 3.若已经入社,则显示"已入社"。 |
|
评论区 | 1.内容为空时显示提示语。 2.内容非空时,按置顶和更新的顺序显示帖子简要内容,被置顶的帖子具有置顶标记。 3.能在字数限制内提出问题,提问前需要检查是否为北航学生。 4.社长或管理员可以长按进行置顶、取消置顶、删除。 |
|
讨论详情 | 1.无人回答时显示提示语。 2.有人回答时,按置顶和更新的顺序显示答帖的内容。 3.社长或管理员发出的答帖、被置顶的答帖都有相应标记。 4.社长或管理员可以长按进行置顶、取消置顶、删除。 5.左右滑动查看上下一个帖子的详情。 |
|
某类别社团页 | 社团按星级降序排序 | 1.该类别的社团按星级降序排序。 |
我所在的社团 | 分三部分显示 | 1.分三部分:我加入的、正在审核中的、被拒绝审核的。 2.跳转社团详情页。 |
学生认证页 | 进行统一身份认证 | 1.输入北航统一身份认证的账号和密码,以及一些其它补充信息:选择性别、政治面貌,填写手机号 2.所填内容会返回给后端判断,账号密码正确时提示认证成功,并返回到上一页面,同时该用户不再会看到学生认证的入口。 3.账号密码错误时提示认证失败。 |
社长认证页 | 进行社长认证 | 1.选择社团类别、社团名称,并填写社联分发的验证码,返回给后端检查是否正确,若正确则通过认证,否则提示失败。 2.认证成功后会返回到"我的"页面,并能看到管理社员和增删管理员页面。 3.当社团的一个新社长认证成功后,旧社长会自动解绑,并降级为管理员。 |
管理社员页面 | 正在申请入社的社员和已入社的社员分别列表显示 | 1.社员以学号+姓名+头像的方式列表显示,点击可正确跳转至相应的社员详情页。 2.对于入社申请,可以通过申请、拒绝申请,操作结果在管理员和对端用户都有相应变化。 3.对于已经入社的社员,社长可以进行删除操作。 |
增删管理员页面 | 增删管理员 | 1.可以通过用户id搜索用户,如果该用户已经是北航学生,那么就添加为管理员,否则不能添加为管理员。 2.可以删除管理员。 3.点击查看管理员的详情页。 |
扫一扫页面 | 能成功扫码 | 1.能调出摄像头,扫描网页端后能正确登录。 |
关于我们 | 转账二维码正确 | 能够保存转账二维码并进行转账。 |
兼容性测试
- 手机操作系统:对Android手机和IOS手机都进行了测试。
- 微信版本:对微信版本7.0/6.6/6.5进行了测试。
性能测试
- 性能测试不是测试小程序的重点,优先级较低。小程序的性能和WEB的性能测试非常类似,性能的常用指标也大致相同。包括页面的白屏时间,首屏时间,资源占用,页面渲染时间,帧率等等。
- 只需要小程序开发版中打开性能窗口即可看到各页面的性能数据,下表为一次测试时所有页面的性能数据:
页面 | CPU(%) | 内存(m) | 页面切换耗时(ms) | 启动耗时(ms) | 初次渲染耗时(ms) | 数据缓存(KB) |
---|---|---|---|---|---|---|
授权登录 | 0 | 225 | 1208 | 1449 | 84 | 0 |
新闻 | 0 | 249 | 274 | 1449 | 110 | 0.7 |
活动 | 0 | 383 | 236 | 1449 | 107 | 0.7 |
活动详情 | 0 | 490 | 296 | 1449 | 150 | 0.7 |
写短评 | 0 | 495 | 256 | 1449 | 74 | 0.7 |
社团 | 0 | 486 | 254 | 1449 | 110 | 0.7 |
某类别社团 | 0 | 493 | 126 | 1449 | 47 | 0.7 |
某社团信息页 | 0 | 502 | 615 | 1449 | 348 | 0.7 |
新闻详情 | 0 | 594 | 116 | 1449 | 45 | 0.7 |
我的 | 0 | 598 | 271 | 1449 | 60 | 0.7 |
关注的活动 | 0 | 600 | 180 | 1449 | 61 | 0.7 |
关注的社团 | 0 | 554 | 115 | 1449 | 41 | 0.7 |
所在的社团 | 0 | 618 | 155 | 1449 | 53 | 0.7 |
学生认证 | 0 | 557 | 121 | 1449 | 89 | 0.7 |
社长认证 | 0 | 572 | 260 | 1449 | 147 | 0.7 |
管理社员 | 0 | 569 | 166 | 1449 | 84 | 0.7 |
管理管理员 | 0 | 562 | 234 | 1449 | 110 | 0.7 |
关于我们 | 0 | 541 | 170 | 1449 | 75 | 0.7 |
扫一扫 | 0 | 524 | 127 | 1449 | 47 | 0.7 |
- 下图为一个示例截图:
前端测试——网页端v1.0
目前是第一版,功能较为简单,具有以下功能:
- 社团信息的修改
- 新闻的录入和修改
- 活动的录入和修改
功能测试表格
功能 | 验收标准 |
---|---|
社团信息的修改 | 1.不能修改:社团名称、类别、星级 2.能够修改:logo,英文名,简介,微信公众号,QQ群,社团介绍推文链接。 3.能够删除和增加社团标签:0-3个,每个标签字数限制在1-4个字之间。 4.能够上传社团图集,效果是完全覆盖,而非追加。 5.小程序端正确地进行相应的变化。 |
录入新闻 | 1.能够录入新闻标题、链接、上传图片,且这三项都必须录入。 2.小程序端正确地进行相应的变化。 |
修改新闻 | 1.能够修改链接和图片,不能修改新闻标题。 2.小程序端正确地进行相应的变化。 |
录入活动 | 1.能够录入活动名称、地点、描述、开始时间、结束时间、活动介绍推文标题和链接、活动回顾推文标题和链接、活动大致规模、是否需要报名、其它共同举办的社团。 2.活动名称、地点、描述、开始时间,此四项为必填项。 3.能够上传横版和竖版海报。 4.小程序端正确地进行相应的变化。 |
修改活动 | 1.除了活动名称之外的信息都可修改。 2.小程序端正确地进行相应的变化。 |
功能测试通过。
兼容性测试
目前我们支持的浏览器有:
- chrome,谷歌浏览器
- microsoft edge,wins自带的浏览器
回答课程组问题
测试中发现的bug
在测试过程中发现了多少Bug?有哪些是Beta阶段的新Bug?有哪些是Alpha阶段没有发现的Bug?
答:在全面测试时发现了19个bug。都是beta阶段的新bug,没有Alpha阶段没发现的Bug。
bug具体记录如下:
(1)后端:
bug现象 | bug原因 | 是否解决 |
---|---|---|
学生认证后,返回的user的学院信息错误 | 手抖,查表时索引项没选对 | 是 |
社团A删除社员B之后,B在社团A的页面仍然显示为”已加入“ | 写接口的时候太粗心 | 是 |
社团讨论区返回的时间格式有点问题 | 忘了调用时间格式转换函数 | 是 |
在加入一个end_time为空的活动后,返回活动的相关接口出现了错误 | 后端人员的时间格式转换函数没有判断为空的情况 | 是 |
(2)前端--小程序:
bug现象 | bug原因 | 是否解决 |
---|---|---|
二维码图片无法在模拟器能显示,在真机不能显示 | 路径写错 | 是 |
社长认证的Logo图片处,若Logo为png图片,则不好看 | 没有设置background-color为白色 | 是 |
讨论区详情页面内容较多,加载很慢,而且没有“加载中”的相关提示,用户体验不好 | 没有设置在加载完成前一直show loading | 是 |
用户提交空的活动评论时,弹窗显示了提交成功 | 没有检查提交的评论是否为空 | 是 |
活动的点赞和取消点赞操作影响活动排序后,没有立即更新 | 忘了写这个 | 是 |
学生认证页在ios端显示有问题 | z-index在ios端和android端有一些区别,需要避开 | 是 |
学生认证页的输入卡片能够拖动 | 样式不对,应设置position为fixed | 是 |
关注的社团页面的搜索栏并没有实际的搜索功能 | 忘了开发相应的接口(其实这个需求不大,我们选择直接删去) | 是 |
社团名字很长时,星星位置有点问题 | 样式没调好 | 否 |
活动介绍少于等于3行时,也显示了 展开 和 收起 | 固定组件不好调整 | 否 |
点击底部tabbar的第三个图标切换到社团页时,在极少数情况下会只显示搜索框 | 不好复现,未找到bug原因 | 否 |
活动列表页在少数情况下,刷新功能有问题。 | reset异步执行的问题。 | 是 |
通过用户id搜索管理员时,点击搜索出来的用户所跳转的页面显示有误。 | 测试人员没有发现这个隐藏功能,开发人员没有善始善终。已知bug原因。 | 是 |
(3)前端--网页端:
bug现象 | bug原因 | 是否解决 |
---|---|---|
社团图集没有上限 | 后端忘了做数量检查 | 是 |
活动图片的上传有点问题 | 后端粗心 | 是 |
场景测试
你是怎么进行场景测试(scenario testing)的?包括你预期不同的用户会怎样使用你的软件?他们有什么需求和目标?你的软件提供的功能怎么组合起来满足他们的需要?(仅描述新功能即可)
- 萌新:
用户信息 | 用户情况 |
---|---|
姓名 | 萌新M |
用户身份 | 某学院大一新生 |
用户情况 | 刚入学,对于各个社团的情况不大了解 |
用户需求 | 希望能方便地查看各个社团的介绍和活动,同时有让自己加入感兴趣的社团的渠道。 |
用户痛点 | 对社团的了解度还不够,而且加入社团的步骤比较麻烦,一般需要在百团大战外场中,先跟社团成员问东问西,确定想加入后再填写基本信息问卷,然后支付社费,接着加一位社团管理员为好友,这样才能被拉进群,但是外场人好多真的好挤。 |
软件对应功能 | 1.在通过北航学生认证后,用户能在社团讨论区中看到常见问题的回答,以及提出自己的问题,从而增加了用户对社团的了解。 2.学生认证系统,使用户能一次填写自己的信息,多次使用,加入多个社团时不用重复填写个人信息,能直接一键填写入社理由后申请入社。 |
预期使用场景 | 百团大战马上要来了,萌新M打开了“北航社团帮”小程序,浏览了自己感兴趣的社团类别(比如体育类),觉得A社团不错,浏览A的讨论区,随后又在上面提了一些问题,最后决定要加入A社团了,于是他点击申请加入按钮,并通过讨论区知道了交付社费的渠道,他把社费转过去并备注了学号姓名,不一会儿,他便通过了入社申请,并加入了社群。十分方便。 |
- 社管S:
用户信息 | 用户情况 |
---|---|
姓名 | 社管S |
用户身份 | A社的社团管理员,比如社长、部长等 |
用户情况 | 1.对内,需要向社员发布社内活动消息、统计活动报名人员、通知活动变更情况、统计社员基本信息; 2.对外,需要向大家宣传A社,及A社的公开活动,积极拉人进社,完成信息收集、社费收取等入社步骤; 3.对上,需要向社联报备活动、申请场地、上交社员信息、上交星级评定材料。 |
用户需求 | 1.希望能方便地管理社员、发布活动、通知、投票等; 2.希望能有好的渠道宣传本社情况,非社员能更方便地入社,也减少社团繁琐的工作; 3.希望能向社联方便地申请场地、报备活动,社联也能保存好各种信息,每年星级评定的材料不用交太多,这样也更公平… |
用户痛点 | 百团大战时,前来报名入社的人很多,但是由于报名步骤比较繁杂,导致现场比较混乱;而且百团大战之后,基本就没有什么人会加入社团了,社团缺乏一个好地平台展示自己;宣传公开活动时,大多只能通过公众号文章和朋友圈的形式进行宣传,宣传效果不佳。 |
软件对应功能 | 1.网页端提供修改社团信息、录入社团活动、录入新闻的功能,能帮助社团展示自己的基本情况. 2.社团有讨论区功能,社长和社团管理员能通过该功能让学生自己该社团的更加详细的信息。 3.社长和社团管理员能够在管理社员页面,通过或拒绝入社申请,查看本社团社员情况。 4.社长能增删管理员。 5.社长和社团管理员能在网页端导出社员名单,方便交付给社联。 |
预期使用场景 | 社团A每次发布推送时都在我们项目的网页端进行录入;社团A要举办一个公开活动,社管S于是通过“北航社团”网页端录入了该活动的基本信息,一键发布活动;百团大战不再人满为患,学生们通过手机即可在线入社,社团管理员也可以方便地在线办公,包括管理社员、收取社费、拉人进群等,十分方便。 |
回归测试
你是否有回归测试确保新功能的加入没有影响已有功能?请给出一到两个测试用例并解释。
是的。下面给出两个测试用例:
- 活动详情页面我们加入了点赞活动、写评论、点赞评论、跳转推送的新功能,对于之前的关注功能、跳转社团、展开和收起活动介绍的功能没有任何影响。
- beta阶段我们在授权微信登录时获取了用户的头像url并存入后端,这对之前的授权登录功能没有影响。
测试矩阵
- 小程序:
OS | 微信版本 | 登录 | 新闻 | 新闻详情 | 活动 | 活动详情 | 社团 | 某类别社团 | 社团信息 | 我的 | 关注的社团 | 关注的活动 | 加入的社团 | 学生认证 | 社长认证 | 管理社员 | 增删管理员 | 页面跳转 | 图片加载 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Android 9 | 7.0.3 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 一般 |
IOS 12.2 | 7.0.3 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 较慢 |
Android 8 | 7.0.3 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 较慢 |
IOS 12.1 | 7.0.3 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 一般 |
Android 9 | 7.0.4 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 较慢 |
IOS 12.2 | 7.0.4 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 一般 |
- 网页端:(测试矩阵还不够充分)
浏览器 | 版本 | 社团信息修改 | 活动录入和修改 | 新闻录入和修改 | 页面跳转 |
---|---|---|---|---|---|
Chrome | 72.0.3626.109 | 正常 | 正常 | 正常 | 正常 |
Chrome | 74.0.3729.169 | 正常 | 正常 | 正常 | 正常 |
Microsoft Edge | 42.17134.1.0 | 正常 | 正常 | 正常 | 正常 |
出口条件
- 兼容性:
- 小程序:对Android和IOS操作系统、不同版本的微信都兼容。
- 网页端:对主流浏览器Chrome和Microsoft Edge兼容。
- 易用性:底部导航易用,功能入口明显,交互结果的弹窗提示等。
- UI美观:内容较多的页面中,能美观地进行布局,提升用户体验。
- 功能正确性:各功能正确,页面跳转正确。