Compilify Alpha阶段测试报告
Compilify Alpha阶段测试报告
本文为Compilify编译课程平台Alpha阶段测试报告。
Bug列表
后端
bug现象 | bug原因 |
---|---|
作业顺序不齐 | 没有返回的保证作业顺序 |
管理员无法查看小测正确答案 | 后端没有设置 |
管理员无法查看用户教师 | 后端没有返回 |
前端
bug现象 | bug原因 |
---|---|
错误地修改用户信息后前端没有报错 | 前端直接刷新而非再次获取数据 |
下载图片和txt资源直接显示 | 前端获得url直接下载 |
添加用户部分user_name为空提示user_name过长 | rules的逻辑错误 |
带有分页的表格在分页大小处点击ALL后无法获取到所有信息 | ALL在该组件中代表0,所以发送给后端时认为传输了无效的值,于是被替换为默认值 |
管理员部分按钮被公告等内容挡住 | 组件的层次问题 |
md编辑器的语法提示弹窗会出现在编辑器下层 | 组件的层次问题 |
在日期选择的弹窗中,不可以通过点击最上方的年份数字对年份进行更改 | 该组件自身存在bug |
其中后三行的bug未修复。
前端测试
前端功能测试
前端功能测试采用手动点击前端页面方式进行测试,测试结果见前端 bug 列表
前端压力测试
使用 apache bench 模拟 200 路并发获取前端较大资源,结果如下:Benchmarking 10.212.30.38 (be patient)
Benchmarking 10.212.30.38 (be patient)Server Software:
Server Hostname: 10.212.30.38
Server Port: 9201Document Path: /assets/index-3a4db1b6.css
Document Length: 203617 bytesConcurrency Level: 200
Time taken for tests: 6.521 seconds
Complete requests: 200
Failed requests: 0
Total transferred: 40775000 bytes
HTML transferred: 40723400 bytes
Requests per second: 30.67 [#/sec] (mean)
Time per request: 6520.841 [ms] (mean)
//用户平均请求等待时间
Time per request: 32.604 [ms] (mean, across all concurrent requests)
//服务器平均处理时间,
Transfer rate: 6106.47 [Kbytes/sec] receivedConnection Times (ms)min mean[+/-sd] median max
Connect: 6 18 1.4 18 20
Processing: 1032 5269 1091.3 5697 6487
Waiting: 9 563 537.8 576 2717
Total: 1049 5287 1092.0 5714 6504Percentage of the requests served within a certain time (ms)50% 571466% 596775% 617680% 621790% 639295% 644798% 647499% 6503100% 6504 (longest request)
根据测试报告可以看出,前端访问资源的瓶颈在于带宽速度,服务处理的时间很短
前端压测的url有
http://10.212.30.38:9201/assets/index-2b6ab67a.js
http://10.212.30.38:9201/assets/Home-8fb1e6d5.js
http://10.212.30.38:9201/assets/menu-62e33bbf.js
http://10.212.30.38:9201/assets/api-121a8453.js
http://10.212.30.38:9201/assets/index-3a4db1b6.css
http://10.212.30.38:9201/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ-4a4dbc62.woff2#
后端测试
后端API单元测试
目前完成了用户、课程管理、作业管理的单元测试。覆盖率无法进一步提升是由于对数据库异常进行了一定的检测,部分无法覆盖。
- 用户单元测试,行覆盖率84.1%
- 对于
AdminAddUser
API,进行了功能测试400、401、403、500的错误处理测试 - 对于
AdminDeleteUser
API,进行了功能测试400、401、403、404的错误处理测试 - 对于
AdminResetUserPassword
API,进行了功能测试400、401、403、404的错误处理测试 - 对于
AdminChangeUserInfo
API,进行了功能测试400、401、403、404的错误处理测试 - 对于
ChangePassword
API,进行了功能测试400、401的错误处理测试 - 对于
ChangeEmail
API,进行了功能测试400、401的错误处理测试 - 对于
ChangeCourse
API,进行了功能测试400、401、403的错误处理测试 - 对于
Login
API,进行了功能测试400、401、404的错误处理测试 - 对于
Logout
API,进行了功能测试401的错误处理测试 - 对于
ChangePhoto
API,进行了功能测试400、401的错误处理测试 - 对于
GetUserInfo
API,进行了功能测试401的错误处理测试 - 对于
AdminGetAllUser
API,进行了功能测试400、401、403的错误处理测试
- 对于
- 课程管理单元测试,行覆盖率92.5%
- 对于
AdminAddCourse
API,进行了功能测试400、401、403、409的错误处理测试 - 对于
tAdminAddCourseUser
API,进行了功能测试400、401、403、500的错误处理测试 - 对于
AdminDeleteCourseUser
API,进行了功能测试400、401、403、409的错误处理测试 - 对于
AdminChangeCourseInfo
API,进行了功能测试400、401、403、404的错误处理测试 - 对于
AdminDeleteCourse
API,进行了功能测试400、401、403、404的错误处理测试
- 对于
- 作业管理单元测试,行覆盖率77.5%
- 对于
AdminCreateContent
API,进行了功能测试400、401、403、404的错误处理测试 - 对于
AdminUpdateContent
API,进行了功能测试400、401、403的错误处理测试 - 对于
AdminDelContent
API,进行了功能测试400、401、403、404的错误处理测试 - 对于
AdminCreateQuiz
API,进行了功能测试400、401、403、404的错误处理测试 - 对于
AdminUpdateQuiz
API,进行了功能测试400、401、403、404的错误处理测试 - 对于
AdminDelQuiz
API,进行了功能测试400、401、403、404的错误处理测试 - 对于
PostQuiz
API,进行了功能测试401、404、409的错误处理测试 - 对于
ExtendedTime
API,进行了功能测试400、401、403、404的错误处理测试
- 对于
上图中file、forum、push、resource文件均非Alpha阶段文件,judge单元测试尚未完善。
后端API压力测试
使用 apache bench对涉及信息量最多的评测记录API(获取所有用户信息)进行测试,结果如下
全部
Server Software:
Server Hostname: 10.212.30.38
Server Port: 9200Document Path: /user/get_all_user?page_size=2000
Document Length: 245067 bytesConcurrency Level: 100
Time taken for tests: 4.077 seconds
Complete requests: 100
Failed requests: 0
Total transferred: 24522200 bytes
HTML transferred: 24506700 bytes
Requests per second: 24.53 [#/sec] (mean)
Time per request: 4076.778 [ms] (mean)
Time per request: 40.768 [ms] (mean, across all concurrent requests)
Transfer rate: 5874.11 [Kbytes/sec] receivedConnection Times (ms)min mean[+/-sd] median max
Connect: 6 12 1.9 11 17
Processing: 68 2952 1035.0 3288 4025
Waiting: 31 612 221.6 611 1483
Total: 74 2964 1035.2 3298 4037Percentage of the requests served within a certain time (ms)50% 329866% 364975% 381880% 384990% 394995% 399498% 400399% 4037100% 4037 (longest request)单页 页面大小为10
Server Software:
Server Hostname: 0.0.0.0
Server Port: 9200Document Path: /user/get_all_user?page_size=50
Document Length: 6173 bytesConcurrency Level: 100
Time taken for tests: 0.328 seconds
Complete requests: 100
Failed requests: 0
Total transferred: 632800 bytes
HTML transferred: 617300 bytes
Requests per second: 305.18 [#/sec] (mean)
Time per request: 327.677 [ms] (mean)
Time per request: 3.277 [ms] (mean, across all concurrent requests)
Transfer rate: 1885.91 [Kbytes/sec] receivedConnection Times (ms)min mean[+/-sd] median max
Connect: 0 4 0.8 4 4
Processing: 45 162 25.0 159 280
Waiting: 43 161 25.1 159 280
Total: 45 165 25.2 163 284Percentage of the requests served within a certain time (ms)50% 16366% 17975% 18080% 18190% 19095% 19098% 20099% 284100% 284 (longest request)
对于全部数据发现服务器平均处理时间为40.768ms,对单页数据的处理时间为3.277ms,能够保证助教和教师的查看
使用asyncio 和 aiohttp对后端使用次数多的API进行并发访问访问,其中登录2000路并发,管理员获取用户所有信息和用户查看历史提交200路并发
test_url: /user/get_all_user, number: 200, cost_time: 0.4110887050628662s
test_url: /user/get_all_user, number: 200, cost_time: 1.0943667888641357s
test_url: /user/get_all_user, number: 200, cost_time: 0.13801002502441406s
test_url: /user/get_all_user, number: 200, cost_time: 0.15606403350830078s
test_url: /user/get_all_user, number: 200, cost_time: 0.3288722038269043s
test_url: /user/login, number: 2000, cost_time: 3.7957608699798584s
test_url: /user/login, number: 2000, cost_time: 3.6607179641723633s
test_url: /user/login, number: 2000, cost_time: 3.694988965988159s
test_url: /user/login, number: 2000, cost_time: 3.7916181087493896s
test_url: /user/login, number: 2000, cost_time: 3.504262924194336s
test_url: /judge/history, number: 200, cost_time: 1.3025119304656982s
test_url: /judge/history, number: 200, cost_time: 1.1705520153045654s
test_url: /judge/history, number: 200, cost_time: 1.320146083831787s
test_url: /judge/history, number: 200, cost_time: 1.6104991436004639s
test_url: /judge/history, number: 200, cost_time: 1.5889379978179932s
时间如上所示,能够满足多位用户同时登录、访问资源的需求
评测端压力测试
场景测试
用户信息 | 用户情况 |
---|---|
姓名 | 刘狗 |
用户身份 | 计算机学院大三学生 |
用户情况 | 学习编译知识或者预习编译比赛 |
用户痛点 | 1.原版编译平台UI设计不合理 2.想要查看自己的历史测评信息 3.下载资源部分更便捷 |
软件对应功能 | 学习编译相关知识 |
预期使用场景实现该用户需求的功能 | 1.UI设计会更加简洁和美观 2.可以轻松查看历史测评信息 3.下载课程资源更便捷 |
用户信息 | 用户情况 |
---|---|
姓名 | 王跌 |
用户身份 | 计算机学院学生 |
用户情况 | 编译课程平台助 |
用户痛点 | 原版平台操作不舒服,缺乏便捷操作 |
软件对应功能 | 管理编译课程平台 |
预期使用场景实现该用户需求的功能 | 对用户管理更便捷,支持批量修改 |
用户信息 | 用户情况 |
---|---|
姓名 | rjd0 |
用户身份 | 计算机学院教授 |
用户情况 | 编译课程讲师 |
用户痛点 | 原版平台设计不好,llvm版本过低 |
软件对应功能 | 管理编译课程平台 |
预期使用场景实现该用户需求的功能 | 优化了编译平台页面,提高了编译版本 |
测试矩阵
OS | Browser | 登录 | 公告查看 | 课程作业 | 小测 | 提交评测 | 竞速排序 | 课程资料 | 个人中心 | 课程管理 | 用户管理 | 评测记录 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
macOS 13.3.1 | Chrome 112.0.5615.137 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
macOS 13.3.1 | Safari 18615.1.26.11.23 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
macOS 13.3.1 | Firefox 112.0.1 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
macOS 13.3.1 | Edge 112.0.1722.58 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
Windows 10 19044.2846 | Chrome 105.0.5195.127 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
Windows 10 19044.2846 | Edge 112.0.1722.58 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
- macOS火狐浏览器下保存用户名密码到浏览器后,点击修改密码自动填充相应字段
- macOS火狐浏览器、safari下登陆界面字体过小
出口条件
功能条件
完成原定Alpha阶段的指定需求:
学生用户需求:
- 个人相关
- 登录登出(注册方式见下方安装使用方法)
- 修改邮箱密码(其他信息不提供自由编辑,需联系助教/管理员修改)
- 公告相关
- 查看课程公告
- 资料相关
- 查看下载课程资料
- 作业相关
- 查看作业介绍、测验、评测
- 提交小测、查看小测答案
- 提交评测、获取评测结果、下载提交、查看详情
在学生用户的基础上,对管理员用户进一步提供用于管理的基本功能:
- 用户管理
- 添加删除用户
- 修改用户信息、重置用户密码为默认值
- 课程管理
- 添加修改删除课程
- 添加删除课程开放用户
- 公告管理
- 修改删除课程公告
- 资源管理
- 添加更新删除资源
- 作业管理
- 添加删除作业、修改作业题面
- 创建更新删除小测
- 延长作业时间
- 评测管理
- 添加更新删除评测
- 添加更新删除数据点
- 上传测试点文件
测试条件
编写并通过全部单元测试,尽可能提高测试覆盖率。
进行简单的后端压力测试、评测机压力测试。压测情况下系统稳定不崩溃。
数据条件
创建编译技术测试课程。
创建课程所需的题目、评测用例、评测脚本。
Compilify Alpha阶段测试报告相关推荐
- Compilify Beta阶段测试报告
Compilify Beta阶段测试报告 本文为Compilify编译课程平台Alpha阶段测试报告. Bug列表 后端 bug现象 bug原因 作业顺序不齐 没有返回的保证作业顺序 管理员无法查看小 ...
- 【CodingNoBorder - 07】无际软工队 - 求职岛:ALPHA 阶段测试报告
无际软工队 - 求职岛:ALPHA 阶段测试报告 项目 内容 这个作业属于哪个课程 2022年北航敏捷软件工程 这个作业的要求在哪里 团队项目-Alpha阶段测试报告 我们在这个课程的目标是 熟悉敏捷 ...
- Compilify Alpha阶段软件发布声明
Compilify Alpha阶段软件发布声明 Compilify编译课程平台 发布啦!本平台是一款用户友好的.用户管理一体化的课程平台,现行发布版本提供了课程公告.课程作业.小测.提交评测. 竞速排 ...
- 【软工】Alpha阶段测试报告
一.Bug报告 在alpha阶段中.我们发现并且修改了以下bug: 在网络未连接时以及在使用中途断开网络连接时,会crash. 对新添加的回复和评论不能做到及时更新. 返回键点击过快会出现warnin ...
- 希希敬敬对Alpha阶段测试报告
已经完成的功能:1 GUI界面效果已经达到了设计要求,经过review代码完成度较好,GUI.PY代码可以使用,完成了"贴吧名字关键字与URL关联". 2 能够实现"贴吧 ...
- [Alpha阶段]项目展示博客
目录 Alpha阶段项目展示 1.团队成员介绍 2.工程相关信息 (1)我们的用户 (2)产品表现 (3)团队分工 (4)项目管理 (5)测试 (6)文档 (7)用户调研 3.项目信息 (1)实际进展 ...
- Beta阶段测试报告
iCourse课程平台beta阶段测试报告 本报告由"烫烫烫烫烫"团队撰写 测试环境及工具 此部分与alpha阶段一样 windows10/selenium/jmeter/badb ...
- 【CodingNoBorder - 09】无际软工队 - 求职岛:ALPHA 阶段项目展示
无际软工队 - 求职岛:ALPHA 阶段项目展示 项目与团队亮点 成员与分工 基本原则:并力前行.共识优先 无际软工队由七名成员组成,大家性格各异.技能及对产品的理解亦各不相同. 团队成员一致同意:在 ...
- 团队项目第6周 - Alpha阶段项目复审 - 天冷记得穿秋裤队
团队项目第六周 - Alpha阶段项目复审 - 天冷记得穿秋裤队 经小组讨论得出以下排名 小组 优点 缺点,bug报告 最终名次 冲鸭队 一款融合了2048和俄罗斯方块的小游戏,题材十分新颖,游戏充满 ...
最新文章
- 深度学习(3)基础3 -- 前向传播与反向传播
- 终于有篇看的懂的 B 树文章了!
- dart正则替换手机号中间四位为*
- REST与Apache Camel
- 汇编学习笔记(二):转移指令
- linux 命令之 ps
- centos7下搭建hadoop、hbase、hive、spark分布式系统架构
- WordPress百度熊掌号页面改造(纯代码实现)
- Maven-01-私服搭建及使用
- Google 出品的 Java 编码规范,强烈推荐,权威又科学!
- devc++编程 error: jump to case label错误笔记
- ELMo ,LM:一串词序列的概率分布probability distribution over sequences of words
- pnp型三极管 饱和 截至_截至2013年核心Java帖子
- pandas_计算夏普比率
- MySQL基础——DDL语句
- Cpp--string常用函数用法总结
- 笔记本禁用键盘和触摸板
- IDEA环境下yml文件不显示小绿叶(不被识别为配置文件)
- linux如何安装qq输入法
- 三个基本的布尔逻辑算符是_布尔逻辑运算符有几种,定义和功能分别是什么