[软工顶级理解组] 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本身的不稳定 ...
随机推荐
- docker快速创建轻量级的可移植的容器(一)
系列其他内容 docker快速创建轻量级的可移植的容器✓ docker&flask快速构建服务接口 docker&uwsgi高性能WSGI服务器生产部署必备 docker&gu ...
- 【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
问题描述 在APIM中配置对传入的Token进行预验证,确保传入后端被保护的API的Authorization信息正确有效,可以使用validate-jwt策略.validate-jwt 策略强制要求 ...
- Elasticsearch(ES)分词器的那些事儿
1. 概述 分词器是Elasticsearch中很重要的一个组件,用来将一段文本分析成一个一个的词,Elasticsearch再根据这些词去做倒排索引. 今天我们就来聊聊分词器的相关知识. 2. 内置 ...
- CodeForce-792C Divide by Three(数学)
Divide by Three CodeForces - 792C 有一个正整数 n 写在黑板上.它有不超过 105 位. 你需要通过删除一些位使得他变成一个美丽的数,并且需要删除尽量少的位数.删除的 ...
- Elaticsearch倒排索引
ES倒排索引基本原理 索引(index)可以分为正序索引(Forward Indexes)和倒排索引(Inverted Index)两种.在关系型数据库中使用索引可以避免数据检索走全表扫描,将检索的时 ...
- PHP中命名空间是怎样的存在?(二)
今天带来的依然是命名空间相关的内容,本身命名空间就是PHP中非常重要的一个特性.所以关于它的各种操作和使用还是非常复杂的,光使用方式就有很多种,我们一个一个的来看. 子命名空间 命名空间本身就像目录一 ...
- fibnacci数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列&qu ...
- kibana操作
一些KIBANA的操作,记录下,免下次重复写 #创建索引名为kb_question的索引,并添加mapping,即各字段属性 PUT kb_question { "mappings" ...
- js运行机制 值引用 值传递
1.js是单线程的 为什么是单线程的呢 因为js作为浏览器脚本语言,会有很多和用户的互动,以及操作dom,多个线程会出问题. 2.js有同步任务,异步任务(ajax,用户点击等,settimeou ...
- 『GoLang』错误处理
Go 没有像 Java 和 .NET 那样的 try/catch 异常机制:不能执行抛异常操作.但是有一套 defer-panic-and-recover 机制. Go 的设计者觉得 try/catc ...