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阶段测试报告相关推荐

  1. Compilify Beta阶段测试报告

    Compilify Beta阶段测试报告 本文为Compilify编译课程平台Alpha阶段测试报告. Bug列表 后端 bug现象 bug原因 作业顺序不齐 没有返回的保证作业顺序 管理员无法查看小 ...

  2. 【CodingNoBorder - 07】无际软工队 - 求职岛:ALPHA 阶段测试报告

    无际软工队 - 求职岛:ALPHA 阶段测试报告 项目 内容 这个作业属于哪个课程 2022年北航敏捷软件工程 这个作业的要求在哪里 团队项目-Alpha阶段测试报告 我们在这个课程的目标是 熟悉敏捷 ...

  3. Compilify Alpha阶段软件发布声明

    Compilify Alpha阶段软件发布声明 Compilify编译课程平台 发布啦!本平台是一款用户友好的.用户管理一体化的课程平台,现行发布版本提供了课程公告.课程作业.小测.提交评测. 竞速排 ...

  4. 【软工】Alpha阶段测试报告

    一.Bug报告 在alpha阶段中.我们发现并且修改了以下bug: 在网络未连接时以及在使用中途断开网络连接时,会crash. 对新添加的回复和评论不能做到及时更新. 返回键点击过快会出现warnin ...

  5. 希希敬敬对Alpha阶段测试报告

    已经完成的功能:1 GUI界面效果已经达到了设计要求,经过review代码完成度较好,GUI.PY代码可以使用,完成了"贴吧名字关键字与URL关联". 2 能够实现"贴吧 ...

  6. [Alpha阶段]项目展示博客

    目录 Alpha阶段项目展示 1.团队成员介绍 2.工程相关信息 (1)我们的用户 (2)产品表现 (3)团队分工 (4)项目管理 (5)测试 (6)文档 (7)用户调研 3.项目信息 (1)实际进展 ...

  7. Beta阶段测试报告

    iCourse课程平台beta阶段测试报告 本报告由"烫烫烫烫烫"团队撰写 测试环境及工具 此部分与alpha阶段一样 windows10/selenium/jmeter/badb ...

  8. 【CodingNoBorder - 09】无际软工队 - 求职岛:ALPHA 阶段项目展示

    无际软工队 - 求职岛:ALPHA 阶段项目展示 项目与团队亮点 成员与分工 基本原则:并力前行.共识优先 无际软工队由七名成员组成,大家性格各异.技能及对产品的理解亦各不相同. 团队成员一致同意:在 ...

  9. 团队项目第6周 - Alpha阶段项目复审 - 天冷记得穿秋裤队

    团队项目第六周 - Alpha阶段项目复审 - 天冷记得穿秋裤队 经小组讨论得出以下排名 小组 优点 缺点,bug报告 最终名次 冲鸭队 一款融合了2048和俄罗斯方块的小游戏,题材十分新颖,游戏充满 ...

最新文章

  1. 深度学习(3)基础3 -- 前向传播与反向传播
  2. 终于有篇看的懂的 B 树文章了!
  3. dart正则替换手机号中间四位为*
  4. REST与Apache Camel
  5. 汇编学习笔记(二):转移指令
  6. linux 命令之 ps
  7. centos7下搭建hadoop、hbase、hive、spark分布式系统架构
  8. WordPress百度熊掌号页面改造(纯代码实现)
  9. Maven-01-私服搭建及使用
  10. Google 出品的 Java 编码规范,强烈推荐,权威又科学!
  11. devc++编程 error: jump to case label错误笔记
  12. ELMo ,LM:一串词序列的概率分布probability distribution over sequences of words
  13. pnp型三极管 饱和 截至_截至2013年核心Java帖子
  14. pandas_计算夏普比率
  15. MySQL基础——DDL语句
  16. Cpp--string常用函数用法总结
  17. 笔记本禁用键盘和触摸板
  18. IDEA环境下yml文件不显示小绿叶(不被识别为配置文件)
  19. linux如何安装qq输入法
  20. 三个基本的布尔逻辑算符是_布尔逻辑运算符有几种,定义和功能分别是什么

热门文章

  1. 怎样做一个好的PPT演讲
  2. 古诗词成语故事权重站打造网站模板
  3. Vue的状态管理器:Vuex
  4. ENVI定义坐标系及坐标系转换
  5. 人生第一次之首都图书馆
  6. BUUCTF Misc wp大合集(3)
  7. Android 获取来电号码和去电号码
  8. 工作无聊没有意义,你该怎么办?
  9. avada主题符合SEO搜索吗
  10. Oracle 11g R2在Win7下完全卸载与重装