测试计划

Gamma阶段依然以场景测试为主。我们归纳了三条场景主线:

一、典型用户:查看

  • 访问排名页面 / 搜索课程
  • 查看课程页面
  • 查看教师页面
  • 为他人评论点赞或点踩

二、典型用户:评论

  • 登录网站
  • 搜索课程
  • 查看课程页面
  • 撰写点评

三、管理员

  • 登录网站
  • 查看所有评论
  • 查看用户页面
  • 删除用户评论

其它(详见后文)

针对找回密码这一功能设计了场景测试。

针对已有功能进行回归测试。

设计了多机型测试环节,针对PC端和移动端主流浏览器和设备进行适配测试。

测试过程

  • 自动化测试与手工测试的结合。由于本阶段的前端界面针对用户体验作了较多的优化,我们安排测试人员重写了一部分自动化测试代码(主要是URL访问部分的)。自动化测试主要针对已有功能,而手工测试主要针对本阶段新增的功能(找回密码、管理员用户等)。
  • 人员分工的调整。原有的测试人员之一汪慕澜同学在Gamma阶段专心实现网站在国外服务器上的部署和https协议上,不再负责测试工作。本阶段的测试工作由李青阳同学一人负责。
  • 重视用户体验。我们通过以下两个手段进行用户体验调查:一是专门邀请几名同学使用我们的网站并通过Github Issue提供反馈意见,二是邀请没有计算机专业背景的家长体验我们的网站并给出意见和建议。
  • 多机型测试。在稳定阶段我们进行了多机型测试,但尚未针对移动端的适配做进一步的优化。

测试结果(一些影响用户体验的地方,功能性Bug在问题1中回答)

以下部分由测试人员发现:

  • 提交评论后的Alert、个人信息页面的部分内容由英文更改为中文
  • 主页的放大镜图标不是按钮,带有迷惑性
  • 排名页面没有显示四项具体指标的分数
  • 将主页下面“关于我们”更换为“用户反馈”

以下部分由网站用户反馈得到:

  • 移动端存在一部分显示问题,例如排名页面的表头被压缩得很厉害,且无法通过横屏解决
  • 课程页面部分文字没有加粗或高亮,用户难以分辨表头与表格内容
  • 希望增加课表定制功能

回答问题

1. 在测试过程中发现了多少Bug?有哪些是Gamma阶段的新Bug?有哪些是前两个阶段没有发现的Bug?

  • 搜索结果数目为10的整数倍时,搜索结果的分页机制会产生一个多余的页。【已修复】
  • 主页前端显示修改后,“选择专业”多选框不起作用。【已修复】(Gamma阶段新引入的)
  • 处于未登录状态下仍然可以“赞/踩”(前两个阶段没有发现)
  • “赞/踩”操作无法撤销(前两个阶段没有发现)
  • 如果用户选择进行匿名评论,那么这一条评论不会出现在Ta的个人信息页面中(前两个阶段没有发现)
  • 如果在个人信息页面进行注销操作,那么注销后仍然会停留在个人信息页面
  • 修改个人信息时,在不选择学校的情况下仍然能选择学院(前两个阶段没有发现)

2. 你是怎么进行场景测试(scenario testing)的?包括你预期不同的用户会怎样使用你的软件?他们有什么需求和目标?你的软件提供的功能怎么组合起来满足他们的需要?(仅描述新功能即可)

2.1 洗月:一个健忘的女生,总是记不住自己各个网站的密码。

需求和目标:在忘记密码的情况下,找回自己公课网账号的密码

测试场景:

  • 此处省略洗月注册公课网账号的部分
  • 几个月后,洗月想登录公课网点评一下这学期的课程,却怎么也想不起来密码了。
  • 在连续尝试了好几个密码失败后,她点击了登录按钮旁边的“忘记密码”。
  • 她在新出现的输入框中填写了自己的电子邮箱,点击“重置密码”。
  • 几秒钟后,她的邮箱收到了公课网发送的电子邮件,里面包含了用于重置密码的链接。
  • 洗月打开链接,按照说明填写了新的密码。之后她利用新的密码登录了公课网。

2.2 公正:网站的管理员,反感部分用户给出的不合理评价

需求和目标:删除用户的不合理评价(哪些评价属于不合理评价由管理员自行评判)

测试场景:

  • 公正登录了自己的管理员账号,进入了管理员专属的“所有评论列表”页面。
  • 他从上到下浏览今天提交到公客网上的评论。
  • 他生气地发现用户“木叶丸”针对某课程的评价只有4个字“鸡你太美”。
  • 他点击了列表中的“删除”按钮,成功删除了木叶丸的评论。
  • 第二天,木叶丸登录自己的公客网账号时,发现自己的“信箱”收到了一封邮件。
  • 他点击导航栏上面的相应按钮,进入了个人信箱页面。
  • 个人信箱里有一条未读消息,通知木叶丸:他的评论“鸡你太美”已经被管理员删除。

3. 你是否有回归测试确保新功能的加入没有影响已有功能?请给出一到两个测试用例并解释。

测试用例1:

    def test_rank_changemode(self):
append = "rank/"
self.driver.get(self.host + append)
time.sleep(3)
ein = self.driver.find_elements_by_id('radio')
self.assertEqual(len(ein), 2)
ein[1].click()
time.sleep(3) table = self.driver.find_element_by_id("top_teachers")
tbody = table.find_element_by_tag_name('tbody')
terms = tbody.find_elements_by_tag_name('tr')
print(len(terms))
tds = terms[1].find_elements_by_tag_name('td')
print("teacher mode, goto teacher page")
tds[0].find_element_by_tag_name('a').click()
time.sleep(6)

解释:该用例旨在测试排名页面的“模式切换”组件。在Gamma阶段我们优化了排名页面,显示了更多表项。这一功能的加入没有影响已有的模式切换功能。

测试用例2:

    def test_searchCourse_home(self):
# if raise exception, try adjusting the zoom level
self.driver.get(self.host)
time.sleep(3)
e20 = self.driver.find_element_by_id("buttonSelectDepartment")
e20.click()
e21 = self.driver.find_element_by_id("departmentList")
e21s = e21.find_elements_by_tag_name('a')
print(len(e21s))
index = 1 # school of math and systematic science
e21s[index].click()
time.sleep(3)
e31 = self.driver.find_element_by_id("searchboxCourse")
e31.send_keys('\n') # you can modify the keywords
time.sleep(6)

解释:该用例旨在测试首页的搜索功能。在Gamma阶段我们改变了首页的前端,这一变更没有影响旧有的搜索模式。

以下为上述两个测试用例通过测试的截图:

4. 给出你的测试矩阵(test matrix),也即在什么样的平台、硬件配置、浏览器类型……上对你的软件进行测试?

设备 浏览器 操作系统 手机型号
PC端 Internet Explorer Windows 10
Microsoft Edge Windows 10
百度浏览器 Windows 10
Chrome Windows 10
Safari macOS
移动端 华为浏览器 Honor 10
小米浏览器 Redmi Note 4X
QQ浏览器 Honor 10, Redmi Note 4X
猎豹浏览器 Redmi Note 4X
Chrome iPhone 6S
Safari iPhone 6S
平板电脑 华为浏览器 华为平板电脑
Chrome 华为平板电脑

测试结果:

  • PC端在IE浏览器和百度浏览器上存在适配问题。IE浏览器上无法查看已有的用户评论。百度浏览器上的用户评论位置偏上,偏离了前端的矩形边框。
  • 移动端的适配总体上可以接受。普遍存在的问题是排名页和搜索结果页的表格过于拥挤,用户无法看清。

5. 你的软件Gamma版本的出口条件(exit criteria)是什么?也即在什么条件下,认定你的软件已经足够好,可以发布Gamma版本?

一、用户的登录、注册、找回密码

用户登录:

  • 输入正确的用户名、密码、验证码(不区分大小写),能够登录。
  • 上述3项有任何一项错误,不允许登录。
  • 用户可以点击“看不清,换一张”来更换验证码。

用户注册:

  • 填写合法的邮箱、用户名、密码,正确的验证码(不区分大小写),系统会向该邮箱发送验证邮件。
  • 点击邮件中的链接,则成功注册。
  • 邮箱、用户名、密码的形式不合法,则不允许注册并在对应的位置给出提示。
  • 验证码填写不正确,不允许注册。
  • “密码”和“确认密码”不一致,不允许注册。
  • 用户可以点击“看不清,换一张”来更换验证码。

找回密码:

  • 填写正确的邮箱、验证码,系统会向该邮箱发送邮件。
  • 点击邮件中的链接,能够进入重置密码页面。
  • 填写两次新的密码并保存,密码被用户重置。
  • 两次密码不一致,不允许重置密码。

二、搜索课程功能

首页的搜索功能如下:

编号 “选择专业”多选框 输入框 搜索结果
1 不填 不填 返回数据库中的所有课程
2 xxx学院 不填 返回xxx学院的所有课程
3 不填 String1 返回课程名中含有String1的所有课程
4 xxx学院 String1 返回xxx学院,课程名含有String1的所有课程

搜索结果页仅有一个输入框,返回课程名中包含关键字(可不填)的所有课程。

三、排名页面

  • 支持按课程排名和按老师排名两种模式,用户可自由切换。
  • 两种模式均按照“综合评分”由高到低,由上到下进行排列。
  • 两种模式均需显示四项具体指标的分数和评论次数。
  • 该页面可通过点击导航栏上的“Rank”按钮访问。

四、课程页面与教师页面

课程页面:

  • 正确显示了该课程的名称和基本信息。
  • 正确显示了该课程当前四项指标各自的平均分。
  • 以表格的形式显示由其它老师教授的该课程、该老师教授的其它课程。
  • 显示所有针对该课程的用户评论。
  • 该页面可通过排名页面、搜索结果页面、课程页面,点击课程名称来访问。
  • 在登录时,可以点击按钮进入撰写评论页面。

教师页面:

  • 显示了该教师的姓名、头像(可能为默认头像)、个人主页链接(可能缺失)、所教授的课程。
  • 点击个人主页链接,能够跳转到正确的教师个人主页。
  • 该页面可通过排名页面、搜索结果页面、课程页面,点击教师的姓名来访问。

五、用户评论

  • 必须在登录状态下才能进入该页面。
  • 正确填写了四项具体指标的分数、填写了文字评论后,评论可以被成功提交。
  • 缺任何一项的分数,或文字评论不填,不允许提交评论并进行提示。
  • 文字评论支持插入emoji。
  • 可以对其它用户的评论进行点赞或点踩。

六、修改个人信息与注销

这两个功能位于登录后的导航栏右侧。

  • 点击“注销”则退出登录。
  • 在个人信息页面,支持修改头像、学校、学院。
  • 在个人信息页面,能够查看该用户近期的评论。

七、网站安全性

  • 基于https协议访问。
  • 能防范用户直接向网站post数据。
  • 对评论文字进行适当转义,防范用户在评论中插入音视频。
  • 通过邮箱验证与验证码机制防范恶意注册。

八、管理员

  • 拥有普通用户的所有功能。
  • 能够浏览所有的评论,默认顺序为时间的逆序。
  • 能够删除用户的评论。
  • 如果用户A的评论被删除了,那么A的“信箱”将会收到一条提醒消息。

Gamma阶段测试报告的更多相关文章

  1. [Gamma阶段]测试报告

    [Gamma阶段]测试报告 博客目录 测试方法及过程 在正式发布前,为检验后端各接口功能的正确性,后端服务器对压力的耐受程度,以及前端各页面.功能的运行情况,我们对我们的服务器及小程序进行了多种测试. ...

  2. [Gamma]阶段测试报告

    后端测试 我们进行了覆盖性测试,覆盖率达到77%. Beta阶段发现的Bug 项目显示的图片错误 无法使用搜索框 发布实验室项目的按钮点击无法跳转 连续点击发帖按钮可能发出多个相同的帖子 不需要点击我 ...

  3. [Gamma阶段]事后分析博客

    目录 Gamma阶段事后分析博客 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 讨论照片 Gamma阶段事后分析博客 作业要求:Gamma阶段事后分析 设想和 ...

  4. Gamma阶段事后分析

    设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件要解决的是安卓游戏的自动化异常检测问题,定义的足够清楚,对于典型用户的描述和典型场景的描述也足 ...

  5. [Alpha阶段]测试报告

    [Alpha]阶段测试报告 在测试过程中发现的BUG ​ 在最后的测试阶段中,我们不可避免的遇到了各种各样的BUG.虽然大多数都不是严重的BUG,但是这些细枝末节的问题的堆积,依然会很大程度上降低用户 ...

  6. [Gamma阶段]展示博客

    水哥牛X团队[Gamma阶段]展示博客 微信小程序搜索"小小易校园"即可体验 项目愿景 想参加竞赛,锻炼自己,却找不到合适的队友 想进行实习,体验工作,每天不得不翻遍吐槽版的几百条 ...

  7. 秘制牛肉Gamma阶段项目展示

    秘制牛肉Gamma阶段项目展示 1.团队成员和个人博客 · 左顺:在项目中主要负责后端开发.个人博客 · 袁勤:精通网页项目开发,前端后端都很强,在完成自己后端任务后也会积极帮助其他人的任务.个人博客 ...

  8. Alpha阶段测试报告(示例)

    http://www.cnblogs.com/Flamenco/p/7834393.html Alpha阶段测试报告

  9. Gamma阶段测试计划

    前言 点击这一链接访问公课网(笨拙软件工程组). 一.Alpha阶段场景测试 1.1 鹿丸:无欲无求大三学生 保研无望 不在乎给分 只想选择干货多的课程 充实自己 需求和目标:了解各专业课程的授课内容 ...

随机推荐

  1. Git 核心概念

    原文链接 Git的核心概念 聪聪的个人网站 本文不是Git使用教学篇,而是偏向理论方面,旨在更加深刻的理解Git,这样才能更好的使用它,让工具成为我们得力的助手. 版本控制系统 Git 是目前世界上最 ...

  2. mysql时间戳转日期

    -- 日期字符串转时间戳,10位,数据库存储的是13位 select UNIX_TIMESTAMP('2019-09-01 00:00:00'); -- 时间戳转日期 ,'%Y-%m-%d %H:%i ...

  3. 深入V8引擎-默认Platform之mac篇(1)

    又到了常规的堆砌代码凑文章字数环节,很多API我就直接贴官方的英文释义,个人翻译其实有时候并不是很准确,搞错了甚至会误导,还是尽量自己去理解. 首先看看入口方法. std::unique_ptr< ...

  4. 一段不错的代码JS的顶部轮播广告

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. Python学习笔记之使用 python -m SimpleHTTPServer 快速搭建http服务

    0x00 概述 搭建FTP,或者是搭建网络文件系统,这些方法都能够实现Linux的目录共享.但是FTP和网络文件系统的功能都过于强大,因此它们都有一些不够方便的地方.比如你想快速共享Linux系统的某 ...

  6. WebUploader 上传文件 错误总结

    近日做文件上传,粗心的问题和技术不精的问题导致了很多的bug,大部分时间都是在找自己写出来的bug,近日总结一下使用 WebUploader 开启分片上传的使用方法以及注意事项 1.上传过程中,后续上 ...

  7. C#配置文件configSections详解

    一.问题需求: 在项目中经常遇到需要写配置文件地方,目的就是不想在程序中关于一些信息写死,发布的时候只需要修改一下配置文件就可以,不需要每次都修改程序,如项目名称.数据库连接字符串.IP端口之类 的: ...

  8. 我是如何一步步编码完成万仓网ERP系统的(二)前端框架

    https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...

  9. (fiddler+loadrunner) fiddler抓包后转化为loadrunner脚本

    众所周知,LR的各种浏览器不能正常弹出,以及脚本中的手工转译一直是困扰着广大性能测试工程师的一大问题. 我在做一个HTTP接口性能测试时,需要上报大量的json数据,这时使用LR进行脚本编写后然后自己 ...

  10. day 48

    目录 js BOM(浏览器对象模型) window对象 window子对象 弹出框 计时事件 DOM(文档对象模型) 查找标签 节点操作 事件 常用事件 绑定方式 jQuery jQuery介绍 jQ ...