[软工顶级理解组] Beta阶段测试报告
在测试过程中发现了多少Bug?
测试阶段发现并已修复的bug:
尚且存在,但是难以解决或者不影响使用的bug:
- 计算重修课程的时候,如果重修课程的课程号和原课程号不同,则GPA计算会出现误差。但我们无法验证两门课是否存在重修关系。
- 发布课程评价时,可能会出现评价页面没有显示自己的评价,需要退出去重进才能显示的情况。
- DDL推送功能需要后台保持程序在线才能提醒,是因为我们使用的推送框架是收费才能离线提醒,而我们使用了免费版。
你是怎么进行场景测试(scenario testing)的?包括你预期不同的用户会怎样使用你的软件?他们有什么需求和目标?你的软件提供的功能怎么组合起来满足他们的需要?
在Alpha阶段已经提到的用户类型,此处不再提及。此处提及预期用户会如何使用我们的新功能。
北航普通学生
用户信息 用户情况 姓名 东方仗助 用户身份 很想了解课程评价,以及参与评价的同学 用户动机 希望能有一个有学校开设课程信息的软件,供大家分享不同课程的口碑 用户困难 目前市面上没有这种东西,只能靠大家在微信群口口相传 典型场景 通过航胥来查询课程评价 场景测试:东方仗助
- 需求分析:东方仗助要选课了,但它不知道这些选修课的口碑如何,必修课也不知道要选择哪个老师,很想了解他们的评价。
- 使用场景:东方仗助打开了航胥APP,在课程评价功能中找到了上过这门课的同学对其的评价,成功的获取到了自己想要的信息。
经常忘记DDL的冒失同学
用户信息 用户情况 姓名 广濑康一 用户身份 对日期和DDL不敏感的同学 用户动机 希望能有一款产品时刻查看、提醒自己作业DDL,且无需手动导入 用户困难 课程中心没有手机相关的适配,且电脑端访问课程中心比较麻烦 典型场景 通过手机端直接收到了作业DDL的截止信息,立马投入工作 场景测试:广濑康一
- 需求分析:广濑康一是一名经常忘记DDL的学生,在疫情期间,所有的作业都通过课程中心发布,他经常担心自己有没有漏交作业或者忘记作业。而课程中心外网访问非常慢,还要在许多课程中一一切换,他很不愿意每次都上课程中心。
- 使用场景:广濑康一打开了航胥APP,轻点两下,就看到了课程中心的所有DDL信息,而且,还和校历结合了起来,让他能够更加清晰的看到自己的DDL分布情况。
你是否有回归测试确保新功能的加入没有影响已有功能?请给出一到两个测试用例并解释。
典型的回归测试用例有如下几个例子:
- 加入了课程评价功能,会使用学生选课的课表信息。在加入这些功能之后,学生课表没有受到影响,且可以通过对应关系,直接从课表页面跳转到评价页面。
- 加入了DDL提醒功能和校历功能,会使用学生的DDL信息,加入之后,学生可以在校历页面看到自己的DDL,且原有功能不受影响。
给出你的测试矩阵(test matrix),也即在什么样的平台、硬件配置、浏览器类型……上对你的软件进行测试?
测试覆盖率
前端测试主要依赖邀请身边的同学进行测试来进行,后端使用了单元测试,总覆盖率达到了88%。
测试矩阵
我们使用了几台主流的安卓机型进行测试,测试矩阵如下。
测试机型 Android版本号 登录功能 Alpha版本各项功能 校历功能 空教室查询功能 课程评价搜索功能 课程评价功能 小米 Max 2 7.1.1 正常 正常 正常 正常 正常 正常 小米 8 8.1.0 正常 正常 正常 正常 正常 正常 红米 K20 Pro 10 正常 正常 正常 正常 正常 正常 OPPO R11 Plus 7.1.1 正常 正常 正常 正常 正常 正常 魅族 16th 8.1.0 正常 正常 正常 正常 正常 正常 华为 Honor 9 9 正常 正常 正常 正常 正常 正常 压力测试
在我们的服务器中,大多数操作为并行转串行操作,通过维护消息队列使得任务有序进行。这样虽然使得课表信息获取较慢,但是起到了维护服务器稳定的作用。
我们此处主要对前端同时登录的用户数进行了压力测试,结果如下:
同时登陆用户数 服务器状态 6 正常 10 偶尔出现连不上教务 15 稳定出现一两个连不上教务 此处出现的连不上教务的情况,我们判断可能是服务器的出口带宽已经到达限制,也有可能是给了教务服务器过大的压力,但考虑到总用户数只有百人级别,所以并没有很大的影响。这部分登录失败的同学会收到正常的错误提示,只需错开登录高峰期,即可成功登陆。
你的软件Beta版本的出口条件(exit criteria)是什么?也即在什么条件下,认定你的软件已经足够好,可以发布Beta版本?
兼容性:对于几乎所有Android机型和主流版本都能够实现兼容。
我们的产品目前已针对竖屏分辨率进行了适配,在竖屏机器上使用时不会产生显示问题。兼容性方面可以认为已经达到了出口标准。
易用性:按钮功能明确,功能入口醒目,弹窗提示易懂。
目前我们的功能比较简单,对每个功能也有较为清楚的文字说明。在出现可能让用户迷惑的现象时,我们也有响应的文字进行说明,没有误导性按钮和操作,可以认为达到了出口标准。
稳定性:所有功能都能正常运行,进行常规操作时几乎不出现运行时Bug。
在我们对机型的大量测试中,闪退和崩溃的问题没有出现,测试过程中出现的bug也一一修复。可以认为达到了出口标准。
及时性:后端能及时更新学生的信息变化,并反馈给前端。
学生的信息变化更新的及时性受制于服务器性能限制和教务平台的网络限制。我们没有办法做到非常及时,只能保证在一天之内能够更新所有同学的信息一次。这里可以认为达到了出口标准。
[软工顶级理解组] Beta阶段测试报告的更多相关文章
- [软工顶级理解组] Alpha阶段测试报告
[软工顶级理解组] Alpha阶段测试报告 在测试过程中发现了多少Bug? 测试阶段发现并已修复的bug: 尚且存在,但是难以解决或者不影响使用的bug: 计算重修课程的时候,如果重修课程的课程号和原 ...
- [软工顶级理解组] Beta阶段事后分析
目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 质量提高 会议截图 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰 ...
- [软工顶级理解组] Beta阶段项目展示
目录 团队成员 软件介绍 项目简介 预期典型用户 功能描述 预期目标用户数 用户反馈 团队管理 分工协作 项目管理 取舍平衡 代码管理 程序测试 代码规范 文档撰写 继续开发指导性 用户沟通 需求分析 ...
- [软工顶级理解组] Beta阶段团队贡献分评分
贡献分评分依据 下述表格适用于前端.后端.爬虫开发者的评分,在此基础上进行增减. 类别 程度 加减分 准时性 提前完成 +0 按时完成 +0 延后完成,迟交时间一天内或未延误进度 -2 延后完成,迟交 ...
- [软工顶级理解组] Alpha阶段项目展示
目录 团队成员 软件介绍 项目简介 预期典型用户 功能描述 预期目标用户数 用户反馈 团队管理 分工协作 项目管理 取舍平衡 代码管理 程序测试 代码规范 文档撰写 继续开发指导性 用户沟通 需求分析 ...
- [软工顶级理解组] Alpha阶段事后分析
目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 质量提高 会议截图 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰 ...
- [软工顶级理解组] Alpha阶段团队贡献分评分
评分总表 下述表格适用于前端.后端.爬虫开发者的评分,基础分数为50分,在此基础上进行增减. 类别 程度 加减分 准时性 提前完成 +0 按时完成 +0 延后完成,迟交时间一天内或未延误进度 -2 延 ...
- [敏捷软工团队博客]Beta阶段测试报告
项目 内容 2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 Beta阶段测试报告 我们在这个课程的目标是 在团队合作中锻炼自己 这个作业在哪个具体方面帮助我们实现目标 对Bet ...
- [软工顶级理解组] 团队规划和任务拆解(Beta)
目录 需求再分析 功能增减 管理改进 任务分解 人员管理 需求再分析 在Alpha阶段,我们的产品得到了用户的广泛好评,但是还是存在一些问题. 登录不稳定,登录速度慢等问题:这是北航VPN本身的不稳定 ...
随机推荐
- C# 爬虫框架实现 流程_爬虫结构/原理
目录链接:C# 爬虫框架实现 概述 首先需要讲的是,爬虫的原理.其实在我看来,爬虫只是用来解决以下四个问题的工具: 提取哪些网页 提取网页上的哪些内容 存储到哪里(推荐数据库/开源类/Console) ...
- 运输层协议:TCP和UDP
运输层简介 运输层的通信实体不再是主机,而是主机中的进程.运输层的通信是一台主机的进程和另一台主机的进程进行数据交换. 运输层作用 运输层向上层的应用层提供通信服务 运输层为进程提供端到端的通信 运输 ...
- 专项测试-App性能分析
专项测试 app性能 Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastRece ...
- SpringMVC-初见
目录 什么是SpringMVC? DispatcherServlet 第一个MVC程序 配置版 Maven可能存在资源过滤的问题 注解版 RestFul和控制器 实现Controller接口 使用注解 ...
- Catch That Cow----BFS
Catch That Cow Description 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上 ,农夫起始位于点 N(0<=N<=100000) ,牛位于点 K(0<= ...
- Rust之旅 02.通过例子学习自定义类型
本期文章接上期继续讲述Rust语言中的数据类型,Rust自定义数据类型主要是通过下面这两个关键字来创建: 结构体( struct ): 定义一个结构体(structure) 枚举( enum ): 定 ...
- PHP中环境变量的操作
在 PHP 中,我们可以通过 phpinfo() 查看到当前系统中的环境变量信息(Environment).在代码中,我们也可以通过两个函数,查看和修改相应的环境变量信息. getenv() 获取环境 ...
- Java面向对象系列(9)- 方法重写
为什么需要重写? 父类的功能,子类不一定需要,或者不一定满足 场景一 重写都是方法的重写,和属性无关 父类的引用指向了子类 用B类新建了A类的对象,把A赋值给了B,这时候B是A,A又继承了B类,向上转 ...
- Nginx系列(5)- nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
启动Windows版本的Nginx时候,cmd报错,报错信息为[emerg] 4276#4280: bind() to 0.0.0.0:80 failed(10013: An attempt was ...
- Shell系列(33) - 多分支if语句简介及计算器例子
多分支if条件语句 if [ 条件判断式1 ] then 当条件判断式1成立时,执行程序1 elif [ 条件判断式2 ] then 当条件判断式2成立时,执行程序2 ...省略更多条件... els ...