Compilify Alpha阶段测试报告

本文详细记录了Compilify编译课程平台的Alpha测试情况,包括前端和后端的bug列表、功能测试和压力测试结果。前端方面,访问资源的瓶颈在于带宽,后端API的压力测试显示服务器处理时间较短,能够应对并发请求。测试涵盖了用户管理、课程管理和作业管理等功能,同时提出了针对不同用户群体的优化需求。
摘要由CSDN通过智能技术生成

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:            9201

Document Path:          /assets/index-3a4db1b6.css
Document Length:        203617 bytes

Concurrency 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] received

Connection 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    6504

Percentage of the requests served within a certain time (ms)
  50%   5714
  66%   5967
  75%   6176
  80%   6217
  90%   6392
  95%   6447
  98%   6474
  99%   6503
 100%   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:            9200

Document Path:          /user/get_all_user?page_size=2000
Document Length:        245067 bytes

Concurrency 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] received

Connection 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    4037

Percentage of the requests served within a certain time (ms)
  50%   3298
  66%   3649
  75%   3818
  80%   3849
  90%   3949
  95%   3994
  98%   4003
  99%   4037
 100%   4037 (longest request)

单页 页面大小为10
Server Software:
Server Hostname:        0.0.0.0
Server Port:            9200

Document Path:          /user/get_all_user?page_size=50
Document Length:        6173 bytes

Concurrency 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] received

Connection 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     284

Percentage of the requests served within a certain time (ms)
  50%    163
  66%    179
  75%    180
  80%    181
  90%    190
  95%    190
  98%    200
  99%    284
 100%    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版本过低
软件对应功能管理编译课程平台
预期使用场景实现该用户需求的功能优化了编译平台页面,提高了编译版本

测试矩阵

OSBrowser登录公告查看课程作业小测提交评测竞速排序课程资料个人中心课程管理用户管理评测记录
macOS 13.3.1Chrome 112.0.5615.137passpasspasspasspasspasspasspasspasspasspass
macOS 13.3.1Safari 18615.1.26.11.23passpasspasspasspasspasspasspasspasspasspass
macOS 13.3.1Firefox 112.0.1passpasspasspasspasspasspasspasspasspasspass
macOS 13.3.1Edge 112.0.1722.58passpasspasspasspasspasspasspasspasspasspass
Windows 10 19044.2846Chrome 105.0.5195.127passpasspasspasspasspasspasspasspasspasspass
Windows 10 19044.2846Edge 112.0.1722.58passpasspasspasspasspasspasspasspasspasspass
  • macOS火狐浏览器下保存用户名密码到浏览器后,点击修改密码自动填充相应字段
  • macOS火狐浏览器、safari下登陆界面字体过小

出口条件

功能条件

完成原定Alpha阶段的指定需求:

学生用户需求:

  • 个人相关
    • 登录登出(注册方式见下方安装使用方法)
    • 修改邮箱密码(其他信息不提供自由编辑,需联系助教/管理员修改)
  • 公告相关
    • 查看课程公告
  • 资料相关
    • 查看下载课程资料
  • 作业相关
    • 查看作业介绍、测验、评测
    • 提交小测、查看小测答案
    • 提交评测、获取评测结果、下载提交、查看详情

在学生用户的基础上,对管理员用户进一步提供用于管理的基本功能:

  • 用户管理
    • 添加删除用户
    • 修改用户信息、重置用户密码为默认值
  • 课程管理
    • 添加修改删除课程
    • 添加删除课程开放用户
  • 公告管理
    • 修改删除课程公告
  • 资源管理
    • 添加更新删除资源
  • 作业管理
    • 添加删除作业、修改作业题面
    • 创建更新删除小测
    • 延长作业时间
    • 评测管理
      • 添加更新删除评测
      • 添加更新删除数据点
      • 上传测试点文件

测试条件

编写并通过全部单元测试,尽可能提高测试覆盖率。

进行简单的后端压力测试、评测机压力测试。压测情况下系统稳定不崩溃。

数据条件

创建编译技术测试课程。

创建课程所需的题目、评测用例、评测脚本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值