目录
测试计划、过程和结果
后端测试——单元测试与覆盖率
如下图:我们对所有接口设计了单元测试,共62个测试,结果:全部通过。代码覆盖率90%:
后端测试——压力测试
展示部分数据
我们对各个请求接口(包括之前所有接口和gamma版本新增接口)都进行了压力测试,并发量设置为500,总请求量设置为700。
对服务器平均请求等待时间,用户平均请求等待时间,吞吐率等指标进行了检验,得到了如下的结果。
以下展示的接口同上一阶段展示的接口,原因是这些接口的数据量是所有接口中最大的几个,对服务器压力相对较大,故测试重点在它们上。并且有的接口在这个阶段修改过,仍有重新测试的价值。同时,项目结束之际,做回归测试也是很有必要的。各接口和上一阶段性能相近。
社团接口
Document Length: | 2470 bytes |
Concurrency Level: | 500 |
Time taken for tests: | 24.620 seconds |
Complete requests: | 700 |
Failed requests: | 0 |
Total transferred: | 1482000 bytes |
HTML transferred: | 623200 bytes |
Requests per second: | 20.66 |
活动接口
Document Length: | 2100 bytes |
Concurrency Level: | 500 |
Time taken for tests: | 18.637 seconds |
Complete requests: | 700 |
Failed requests: | 0 |
Total transferred: | 1264600 bytes |
HTML transferred: | 60600 bytes |
Requests per second: | 27.32 |
新闻接口
Document Length: | 7210 bytes |
Concurrency Level: | 500 |
Time taken for tests: | 36.245 seconds |
Complete requests: | 700 |
Total transferred: | 5278950 bytes |
HTML transferred: | 4610756 bytes |
Requests per second: | 13.7 |
平均数据
总请求量 | 700 |
吞吐率 | 50个请求/s |
用户平均请求等待时间 | 0.13s |
服务器平均请求等待时间 | 0.10s |
同gamma阶段相比,部分接口数据量增大,对应的用户等待时间略微提高,但平均响应相比beta阶段变化不大(上个阶段0.1s)。
前端测试——小程序v3.0
- 前端进行了完整的回归测试,检查前两个阶段实现的所有功能。
新功能
- 新加我的申请页面
- 各个tab均加载正常
新加意见反馈页面
- 可正常加载、提交
新加海报生成分享功能
- 能正确加载画出海报
- 可以保存到相册
- 扫码后可以跳转到活动详情页面
新加关注活动消息推送功能
- 关注提示语修改
- 按照时间条件可以收到通知
- 说明:上面的展览开始并不是bug,是一个模板消息。我们一共6次申请、修改了自己的活动定制模板,但是微信官方审核未通过,原因为暂不支持此类场景下的模板消息,易被滥用,经过了解似乎近期审核很严格。无奈才采用上面的模板。
各页面均可正常打开,跳转,回退
授权登录与权限检查
- 当且仅当用户同意授权登录我们的小程序时,才能使用我们的小程序,且在第二次登录时能直接进入主页。测试通过。
- 一共4种用户,权限列表如下:
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的性能测试非常类似,性能的常用指标也大致相同。包括页面的白屏时间,首屏时间,资源占用,页面渲染时间,帧率等等。
- 只需要小程序开发版中打开性能窗口即可看到各页面的性能数据,下表为一次测试时所有页面的性能数据:
授权登录 | 0 | 220 | 1100 | 32 | 96 | 0 |
新闻 | 0 | 249 | 250 | 32 | 110 | 688B |
活动 | 0 | 383 | 236 | 32 | 107 | 688B |
活动详情 | 0 | 490 | 296 | 32 | 150 | 688B |
写短评 | 0 | 495 | 256 | 32 | 74 | 688B |
社团 | 0 | 486 | 254 | 32 | 110 | 688B |
某类别社团 | 0 | 493 | 126 | 32 | 47 | 688B |
某社团信息页 | 0 | 502 | 615 | 32 | 348 | 688B |
新闻详情 | 0 | 594 | 116 | 32 | 45 | 688B |
我的 | 0 | 598 | 271 | 32 | 60 | 688B |
关注的活动 | 0 | 600 | 180 | 32 | 61 | 688B |
关注的社团 | 0 | 554 | 115 | 32 | 41 | 688B |
所在的社团 | 0 | 618 | 155 | 32 | 53 | 688B |
学生认证 | 0 | 557 | 121 | 32 | 89 | 688B |
社长认证 | 0 | 572 | 260 | 32 | 147 | 688B |
管理社员 | 0 | 569 | 166 | 32 | 84 | 688B |
管理管理员 | 0 | 562 | 234 | 32 | 110 | 688B |
我的申请 | 0 | 540 | 260 | 32 | 688B | |
意见反馈 | 0 | 460 | 140 | 32 | 688B | |
关于我们 | 0 | 541 | 170 | 32 | 75 | 688B |
扫一扫 | 0 | 524 | 127 | 32 | 47 | 688B |
- 下图为一个示例截图:
前端测试——网页端
这一版网页端没有新加功能,仍按上阶段进行简单测试。
功能测试表格
- 社团信息的修改
- 新闻的录入和修改
- 活动的录入和修改
功能测试表格
社团信息的修改 | 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。有gamma阶段的bug,也有beta阶段未发现的bug。
bug具体记录如下:
(1)后端:
人文学院学生无法学生认证 | 后端学院名称表中人文学院名字打错 | 是 |
有时图片获取时间很长 | 图床逻辑Bug | 是 |
生成海报返回的二维码不能正常解析 | 二维码编码方式与json冲突 | 是 |
活动时间更新后不重新推送消息 | 定时任务逻辑写错 | 是 |
社团录入新闻后不显示 | 后端未同步公众号绑定信息 | 是 |
新闻页面轮播图排序异常 | 排序时并不是按热度排的而是按id排 | 是 |
(2)前端--小程序:
新闻页面有时不能正常加载 | onLoad异步调用 | 是 |
海报图片保存延时很久 | 本地图片无法以网络图片相似的方式处理 | 是 |
我的申请页面社团信息缺省时未隐藏 | 判断条件异常 | 是 |
社团详情页面出现null值显示 | 判断条件异常 | 是 |
用户信息政治面貌修改后不保存 | 接口调用写错 | 是 |
社团标签如果不填满三个会有空白标签 | 空值条件写错 | 是 |
海报生成在模拟器上能加载图片在真机上不能加载 | 微信小程序基础库api变动 | 是 |
个人信息修改查看他人信息时也支持 | 页面参数传递解析错误 | 是 |
通过用户id搜索管理员时,点击搜索出来的用户能跳转用户信息 | bindtap忘了去掉 | 是 |
点击底部tabbar的第三个图标切换到社团页时,在极少数情况下会只显示搜索框。 | 页面加载异步问题 | 是 |
(3)前端--网页端:
- 未新增功能,无。
场景测试
你是怎么进行场景测试(scenario testing)的?包括你预期不同的用户会怎样使用你的软件?他们有什么需求和目标?你的软件提供的功能怎么组合起来满足他们的需要?(仅描述新功能即可)
- 萌新:
姓名 | 萌新M |
用户身份 | 某学院大一新生 |
用户情况 | 刚入学,对于各个社团的情况不大了解。通过beta版小程序的使用初步了解社团,申请加入社团后不知道申请进度以及缺少明确提示而不知所措。 |
用户需求 | 知道申请进度以及当前阶段应该做什么。 |
用户痛点 | 对社团的了解度还不够,而且加入社团的步骤比较麻烦,需要一定提示,否则晕头转向。 |
软件对应功能 | 1.在通过北航学生认证后,用户能在社团讨论区中看到常见问题的回答,以及提出自己的问题,从而增加了用户对社团的了解。 2.学生认证系统,使用户能一次填写自己的信息,多次使用,加入多个社团时不用重复填写个人信息,能直接一键填写入社理由后申请入社。 |
预期使用场景 | 用户申请社团时提供额外的流程指引。 |
- 社管S:
姓名 | 社管S |
用户身份 | 某社团管理人员 |
用户情况 | 社团管理人员 |
用户需求 | 希望在小程序上发布活动后更多人能看到 |
用户痛点 | 小程序缺乏推广活动的途径 |
软件对应功能 | 提供海报生成功能,对活动生成海报,让用户可以在朋友圈、群里转发扩大活动认知程度,并可以通过扫描海报二维码方便地跳转到小程序活动详情页。 |
预期使用场景 | 社团管理员发布一个活动后自己生成海报,发到社团群里和朋友圈里,感兴趣的人开始滚雪球转发,活动迅速扩散被很多人知道。 |
- 社团活跃用户
姓名 | 社团活跃用户N |
用户身份 | 某学生,积极参与社团活动 |
用户情况 | 加入或关注某些社团,希望参与活动,却常常因为缺乏提醒错过活动时间 |
用户需求 | 对自己关注的活动在活动开始前收到提醒 |
用户痛点 | 收到活动的提醒并包含必要活动信息 |
软件对应功能 | 活动关注后24h前发送微信推送提醒用户活动即将开始 |
预期使用场景 | 用户在小程序上看到自己喜欢的活动后点击关注,活动开始前收到提醒,第二天记得参与活动,满载而归。 |
回归测试
你是否有回归测试确保新功能的加入没有影响已有功能?请给出一到两个测试用例并解释。
是的。下面给出两个测试用例:
- 活动详情页面我们加入了分享和关注推送功能,这对之前的点赞活动、写评论、点赞评论、跳转推送的新功能、跳转社团、展开和收起活动介绍的功能没有任何影响。
- 个人信息支持修改,这对个人信息查看无影响,在查看他人信息时不提供此功能。
测试矩阵
- 小程序:
Android 9 | 7.0.3 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 一般 | 正常 | 正常 | 正常 | 较慢 |
IOS 12.2 | 7.0.3 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 较慢 | 正常 | 正常 | 正常 | 较慢 |
1Android 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美观:内容较多的页面中,能美观地进行布局,提升用户体验。
- 功能正确性:各功能正确,页面跳转正确。