[软工顶级理解组] Alpha阶段测试报告
[软工顶级理解组] Alpha阶段测试报告
在测试过程中发现了多少Bug?
测试阶段发现并已修复的bug:
尚且存在,但是难以解决或者不影响使用的bug:
- 计算重修课程的时候,如果重修课程的课程号和原课程号不同,则GPA计算会出现问题。但我们无法验证两门课是否存在重修关系。
- 可能会出现“服务器错误”,99.99%是教务抽风。
- 登录账号后,用户会需要一段时间才能看到自己的数据。最快在1分钟左右可以看到,最慢可以很长时间。这主要是受到爬虫的速度限制。但是用户的数据一旦在后端数据库中有所缓存,之后的查询速度将非常快。
- 课程中心DDL的作业状态做不到实时更新,见谅。
你是怎么进行场景测试(scenario testing)的?包括你预期不同的用户会怎样使用你的软件?他们有什么需求和目标?你的软件提供的功能怎么组合起来满足他们的需要?
以下是针对《功能规格说明书》中提到的几类典型用户,所进行的针对性场景测试。
北航普通学生
用户信息 用户情况 姓名 吉良吉影 用户身份 北航一位普普通通的学生党 用户动机 希望能有一个美观、迅速且无需手动导入的软件来查询课表、空教室、成绩等信息 用户困难 教务系统需要电脑操作,且界面透露出过时的气息,手机端的北航小程序运行速度慢 典型场景 通过手机查询自己的课表等信息 用户比例 40% - 场景测试:吉良吉影
- 需求分析:吉良吉影是一名普通的学生党。这天晚上睡觉前,他对自己明天要上的课程记不太清了,想要查一查自己的课表,从而为明天的生活做好准备。
- 使用场景:吉良吉影打开了航胥APP,主页上赫然写着他的课表信息。他只花了1秒钟,就看完了自己明天要上的课程信息,心满意足的放下手机睡觉了。
经常忘记DDL的冒失同学
用户信息 用户情况 姓名 广濑康一 用户身份 经常忘记课程中心作业截止时间的同学 用户动机 希望能有一款产品时刻查看、提醒自己作业DDL,且无需手动导入 用户困难 课程中心没有手机相关的适配,且电脑端访问课程中心比较麻烦 典型场景 通过手机端直接收到了作业DDL的截止信息,立马投入工作 用户比例 40% - 场景测试:广濑康一
- 需求分析:广濑康一是一名经常忘记DDL的学生,在疫情期间,所有的作业都通过课程中心发布,他经常担心自己有没有漏交作业或者忘记作业。而课程中心外网访问非常慢,还要在许多课程中一一切换,他很不愿意每次都上课程中心。
- 使用场景:广濑康一打开了航胥APP,轻点两下,就看到了课程中心的所有DDL信息,且未完成的作业会优先显示在前,还写着“距离截止还有xx天”,非常贴心。
对定制化有要求的同学
用户信息 用户情况 姓名 岸边露伴 用户身份 对软件的自定义有一定偏好的同学 用户动机 希望教务软件能够按照自己的需求进行一定的定制 用户困难 课程中心没有手机相关的适配,且电脑端访问课程中心比较麻烦 典型场景 上课周将主界面设置为课表,考试周结束后将主界面自定义为成绩 用户比例 20% - 场景测试:岸边露伴
- 需求分析:岸边露伴对软件的自定义有所偏好。他希望软件了解自己,在想看课表的时候点进去就是课表,在想看成绩的时候点进去就是成绩,想看DDL的时候点进去就是DDL。
- 使用场景:岸边露伴使用了航胥APP个人中心的主页设置功能,想优先看什么,设置一下就好,非常称心如意,他很满足。
给出你的测试矩阵(test matrix),也即在什么样的平台、硬件配置、浏览器类型……上对你的软件进行测试?
我们使用了几台主流的安卓机型进行测试,测试矩阵如下。
测试机型 Android版本号 登录功能 个人中心功能 课程中心功能 空教室查询功能 成绩查询功能 课表查询功能 版本更新功能 小米 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 正常 正常 正常 正常 正常 正常 正常 同时,我们对程序的“登录”功能进行了压力测试,进行了定性的分析,结果如下:
同时登陆用户数 服务器状态 2 正常 4 较大延迟 6 连接不上服务器 压力测试的结果让我们感到非常难受,一时间也没有想到很好的解决方案。
在发布阶段即将到来时,有大佬为我们提供了简单的技术栈指引帮助,我们根据他的指导,更改了后端发送登录请求所使用的工具,由爬虫更改为直接向教务VPN发送登录的POST表单。此举大大提升了我们的运行速度,解放了后端服务器的内存。
此为之后的压力测试,因为要使用不同的账号进行登录,所以用户数并不算很大。实际使用中,因为所有用户只需要登录一次即可保存信息,所以也没有进行更大的测试的必要。
同时登陆用户数 服务器状态 6 正常 10 偶尔出现连不上教务 15 稳定出现一两个连不上教务 至于出现连不上教务的问题,我们判断可能是给了教务过大的压力。这部分连不上教务的同学,会有正常的错误信息返回,只需要再次登录,错开登录高峰,即可重新登入。
你的软件Alpha版本的出口条件(exit criteria)是什么?也即在什么条件下,认定你的软件已经足够好,可以发布Alpha版本?
兼容性:对于几乎所有Android机型和主流版本都能够实现兼容。
我们的产品目前已针对竖屏分辨率进行了适配,在竖屏机器上使用时不会产生显示问题。兼容性方面可以认为已经达到了出口标准。
易用性:按钮功能明确,功能入口醒目,弹窗提示易懂。
目前我们的功能比较简单,对每个功能也有较为清楚的文字说明。在出现可能让用户迷惑的现象时,我们也有响应的文字进行说明,没有误导性按钮和操作,可以认为达到了出口标准。
稳定性:所有功能都能正常运行,进行常规操作时几乎不出现运行时Bug。
在我们对机型的大量测试中,闪退和崩溃的问题没有出现,测试过程中出现的bug也一一修复。可以认为达到了出口标准。
及时性:后端能及时更新学生的信息变化,并反馈给前端。
学生的信息变化更新的及时性受制于服务器性能限制和教务平台的网络限制。我们没有办法做到非常及时,只能保证在一天之内能够更新所有同学的信息一次。这里可以认为勉强达到了出口标准,Beta阶段可能会有进一步考虑。
[软工顶级理解组] Alpha阶段测试报告的更多相关文章
- [软工顶级理解组] Alpha阶段事后分析
目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 质量提高 会议截图 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰 ...
- [软工顶级理解组] Alpha阶段项目展示
目录 团队成员 软件介绍 项目简介 预期典型用户 功能描述 预期目标用户数 用户反馈 团队管理 分工协作 项目管理 取舍平衡 代码管理 程序测试 代码规范 文档撰写 继续开发指导性 用户沟通 需求分析 ...
- [软工顶级理解组] Beta阶段测试报告
在测试过程中发现了多少Bug? 测试阶段发现并已修复的bug: 尚且存在,但是难以解决或者不影响使用的bug: 计算重修课程的时候,如果重修课程的课程号和原课程号不同,则GPA计算会出现误差.但我们无 ...
- [软工顶级理解组] Alpha阶段团队贡献分评分
评分总表 下述表格适用于前端.后端.爬虫开发者的评分,基础分数为50分,在此基础上进行增减. 类别 程度 加减分 准时性 提前完成 +0 按时完成 +0 延后完成,迟交时间一天内或未延误进度 -2 延 ...
- [软工顶级理解组] Beta阶段事后分析
目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 质量提高 会议截图 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰 ...
- [软工顶级理解组] Beta阶段项目展示
目录 团队成员 软件介绍 项目简介 预期典型用户 功能描述 预期目标用户数 用户反馈 团队管理 分工协作 项目管理 取舍平衡 代码管理 程序测试 代码规范 文档撰写 继续开发指导性 用户沟通 需求分析 ...
- [软工顶级理解组] Beta阶段团队贡献分评分
贡献分评分依据 下述表格适用于前端.后端.爬虫开发者的评分,在此基础上进行增减. 类别 程度 加减分 准时性 提前完成 +0 按时完成 +0 延后完成,迟交时间一天内或未延误进度 -2 延后完成,迟交 ...
- [软工顶级理解组] 团队任务拆解(Alpha)
一.任务概述 在alpha阶段,我们需要完成功能规格说明书中所提到的所有功能,在一个阶段的开发周期内,交付最小可行的可用版本. 二.任务分配及时长 分组&成员 具体任务 预计时长(小时) 前端 ...
- [软工顶级理解组] 团队规划和任务拆解(Beta)
目录 需求再分析 功能增减 管理改进 任务分解 人员管理 需求再分析 在Alpha阶段,我们的产品得到了用户的广泛好评,但是还是存在一些问题. 登录不稳定,登录速度慢等问题:这是北航VPN本身的不稳定 ...
随机推荐
- 使用shell脚本实现everthing的功能
我们知道,在 Windows 下,有一款非常实用的神器,叫作 Everything ,它可以在极短的时间里,搜索出来你所想要的文件/目录,如下图示: Linux 下也有一些类似于 everything ...
- C# Dapper基本三层架构使用 (三、DAL)
数据访问层(DAL),主要是存放对数据类的访问,即对数据库的添加.删除.修改.更新等基本操作 首先需要在UI层App.Config配置文件中增加连接字符串,如下所示 <connectionStr ...
- JS014. toFixed( )调试踩坑 - 浏览器思维 点常量 & 点运算符
Number.prototype.toFixed( ) 在观察toFixed()丢失精度问题,和对toFixed()方法重写的调试过程时,发现toFixed()对Number的识别有它自己的规则,并找 ...
- javascript对象——基本对象
1.array对象 2.Boolean包装类对象和Date对象 3.Math对象 1到100随机数 4.RegExp对象 4.1 正则规则 如: 4.2 两种创建正则对象方式 /正则表达式/ ...
- Java 常用 Collection 继承关系与接口实现
Java Collection List 接口 继承.接口实现关系: public interface List<E> extends Collection<E> 方法定义: ...
- Linux RHCE7.0 笔记(常见符号)
1.无交互式创建用户 echo "password" | passwd --stdin username 2.Linux重定向符号 > :表示将符号左侧的内容,以覆盖的方式输 ...
- php各个版本curl上传文件的兼容实现
// 以POST方式提交数据 public function post_data($url, $param, $is_file = false, $return_array = true) { ... ...
- go语言游戏服务端开发(三)——服务机制
五邑隐侠,本名关健昌,12年游戏生涯. 本教程以Go语言为例. P2P网络为服务进程间.服务进程与客户端间通信提供了便利,在这个基础上可以搭建服务. 在服务层,通信包可以通过定义协议号来确定该包怎 ...
- XSS注入
XSS 原理: 程序对输入和输出没有做合适的处理,导致"精心构造"的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害. 分类 : 危害:存储型 > 反射型 > ...
- canal源码之BooleanMutex(基于AQS中共享锁实现)
在看canal源码时发现一个有趣的锁实现--BooleanMutex 这个锁在canal里面多处用到,相当于一个开关,比如系统初始化/授权控制,没权限时阻塞等待,有权限时所有线程都可以快速通过 先看它 ...