天天看点

【近取 Key】Beta - v2.0 测试报告

bug说明

修复方法

修复结果

用户修改头像后导航不同步更新

修改用户头像后刷新this.$store中的图像路径

成功

左侧侧边栏第一次无自适应,后续自适应排版

去除后续自适应,统一改为遮挡型导航

上传头像过程中退出,仅重回设置界面才会更新头像

添加全局storage存储头像路径

设置默认词图单词数量在进入页面时就显示警告

将规则检查变为懒检查,仅在提交时触发

编辑词图推出后最新修改时间未改变

重新回到我的词图界面后刷新更新时间

从社区fork词图后我的词图界面无显示

重新回到我的词图界面后清空缓存重新请求

我的词图中svg预览大小不一、存在白边

canvas截图时设定固定尺寸

教程进行到中途退出后回从头开始

新增用户教程学习状态机,记忆用户浏览进度

显示单词列表时缺失“熟识”状态单词的显示

补充缺失分支

测试时浮窗显示前于视觉中心移动导致浮窗位置不正确

浮窗显示设置睡眠时间,待以动结束后苏醒显示

截取svg缩略图时背景图片仅部分被包含

记忆背景图片坐标,在截图时设置

对不同分辨率的背景图片的普适性较差

修改为提供动态图床由用户选择的方式实现背景图转换,控制图片分辨率一致

测试时键盘监听不够敏感,出现光标切换异常等不顺滑清空

将监听方式由keyup改为keydown,并特判开头等特殊情况的光标位置

已完成加词的词图可以添加自定义单词

根据当前词图状态判断是否开启自定义选项

预览词图时单词列表无法获取api正常返回值

新增预览专用api,取消相关用户权限检查

词图排序修改后不及时改变,刷新后才能修改

在切换子页面时刷新缓存

自定义搜索加词时查询过慢,智能联想延迟较大

取消对单词含义的获取,仅获取单词本身

bug 概述

修复过程

计算形近词表时用时过长

添加哈希索引

在较短时间内计算出所需词表

计算形近词表时返回了一些并不形近的词

相同哈希值不足以判断,使用 difflib 进一步判断单词间的相似性

大部分单词较为相似

随机生成在过大压力下速度过慢

删除了冗余计算内容

所有生成模式都有了较高的生成速度

http 交互存在一定安全隐患

实现 https 协议的重定向,并申请相应 CA 证书

用户可更加安全地设置密码、访问数据

后端原静态资源需通过 Django 进行请求得到,效率较低,且在生产模式下无法正常运作

通过 nginx 实现动静资源分离

生产模式下高效正常运作

IP 地址采用点分十进制表示,不利于用户记忆

完成备案申请

可以通过域名 jqkey.xyz 进行访问。

用户信息

用户情况

姓名

田旭尧

身份

可怜高中生,高考近在眼前

使用动机

高考英语单词必须得全部背过呀

典型场景

每周末在家抽出 3~4h 专门背单词

用户偏好

使用整块的时间系统化背单词,且对每个单词的掌握程度要求高

用户痛点

碎片化的背单词法不适用于一直坐着学习的高考党;纸质书籍笨重,没有交互;天天看书看得好累,要是有更 fashion 的学习方式换换脑子就好了

预期使用场景

每天有固定的时间使用该软件来背单词,通过设置词图中单词的个数激励自己每天的背词数量,并且根据统计信息界面的艾宾浩斯曲线来进行复习。

实现该用户需求的功能

1. 可以设置每个词图的单词数量上限,帮助用户达到每天的学习目标(痛点 1) 2. 统计信息界面对遗忘程度进行展示,时刻关注还未掌握的单词,掌握学习进度(痛点 2) 3. 复习模式帮助用户针对词图单位进行复习,还可以进行拼写测试

田昶舜

某校非英语专业大二学生

英语不太好,想多背一些单词冲刺四六级,但是没有什么动力

典型场景1

在宿舍突然想背单词,打开 APP 使用一些背词功能

典型场景2

在食堂,饭太烫闲着无聊没事干,背几个单词

几乎不背单词,或偶尔零碎地背单词(非主要受众)

不知道怎么复习/背单词,想要短时高收入

偶尔在四六级之前较为系统地背一些单词

1. 可以自定义词图背景,挑一些喜欢的图片记忆单词,趣味性 2. 通过用户社区功能,查看他人优秀的词图和背景,激励自己;还可以点赞、fork(bai piao) 别人的优秀词图

田昶禹

某校考研党,英语单词量不高,需要大量提升

想要在半年里把考研单词记熟,每天抽出一定时间专门背单词

复习数一数二腻了,背背单词学学英语换换脑子

突然被某篇鸡汤激励到,立誓背完考研单词,然后背了五分钟

偶尔会专门背记单词,主要时间不会用太多,但会用系统化的时间专门记忆单词

单词量较大,碎片化背单词过于低效;且容易注意力不集中、记忆不长久

由于大学时间比较自由,因此需要依靠激励机制来鼓励自己每天进行背单词。获得激励之后,每天确定背词小目标并完成。

1. 日历图展示打卡情况,饼状图展示背词进度,状态统计展示背词曲线,激励用户每天进行单词学习(典型场景 2) 2. 我的词图界面可以预览每个词图的背诵进度条,激励用户消除红色、橙色的部分,让整个词图进度条都呈现美丽的绿色

田永晓

某校英语专业或出锅留学生

有大量背单词的需求,常啃红宝书等词书,普通的碎片化记忆模式 APP 不适合了

某一天要背好多单词,不想背着一大摞书去图书馆,硬啃,普通的背单词软件过于碎片化,满足不了需求

看了个英文电影,想把电影里整理出来的单词加入候选背单词列表中

系统化背单词,即专门抽出时间阅读书籍、影视并记忆有关单词

纸质书籍重且较不方便、没有交互;大量学习中产生的零散单词除了手写记录难以集中背诵,且无法自定义位置;希望能提供基于词根词缀、近反义词的推荐背诵词

对单词的专业性和难度有独特的要求,且由于背单词的重要性,需要使用特殊技巧来增强单词记忆。每天需要背单词的时间很长,觉得枯燥乏味难以集中精力。但是词图的多样化编辑功能可以让用户设计属于自己的词图,在背单词的过程中加入设计环节,帮助用户记忆的同时增加趣味性,让用户可以长时间背单词并减少疲劳感。

1. 提供随机生成、顺序生成、词根词缀、近反义词、形近词汇、同类词汇等多种生成推荐词表方式,供用户建立词根词缀的概念及联想记忆(痛点 3) 2. 画布的 zoom 功能、可拖拽功能提供极大的操作空间(痛点 1、2) 3. 支持 9 种词书的选择(痛点 1) 4. 工具栏可以设置每个单词的样式 5. 提供自定义加词功能,对于突然联想到的单词可以随时加入词图中

由于 Beta 阶段添加的 API 大部分为较小量级的 API,于是返回长度最长的 API 仍旧为查看统计信息 API。

Beta 阶段添加了对于形近词、同类词的支持,获得新词表的 API 使用复杂度略高于其他 API 的算法。故使用获得新词表的 API 进行测试,词图大小设置为 50。

另外,使用了静态资源分离和图床策略,对于相对而言大小较大的背景图片不再从服务器直接通过 API 获取,故在此不进行压力测试。

老用户的统计信息的数据量仍然很大,受服务器条件限制,成功率同 Alpha 阶段类似:

API

用户数

时间

业务数

成功率

传输效率

总数据传输

响应时间

实际最高并发连接数

最长传输时间

最短传输时间

查看统计信息

255

60s

89

26%

1.50trans/s

1.73M

16.33s

24.53

30.01s

0.82s

30s

92

100%

3.09trans/s

1.79M

15.85s

48.96

29.73s

0.00s

获得形近词表

892

14.91trans/s

0.05M

14.64s

218.21

28.42s

0.46s

获得同类词表

1155

19.36trans/s

0.07M

11.61s

224.79

25.11s

0.30s

获得形近词表的 API 对于哈希值计算开销较大,在添加哈希索引前最短传输时间达到了 3s 以上,添加哈希索引后仍旧有 0.46s 较高的延时。相较而言,获得同类词表查询次数就更少一些,效率也更高。

同时,对于其他情况进行压力测试,首先对随机生成进行测试,这里词图大小也是 50:

获得随机词表

86

1.44trans/s

0.09M

57.80

0.44s

仔细查看代码发现,是多种生成方式叠加的时候产生了计算冗余。去除计算冗余之后,进行压力测试:

获得顺序词表

1196

19.93trans/s

0.72M

11.18s

222.87

23.12s

1198

19.99trans/s

0.71M

223.37

25.28s

0.19s

获得近义词表

608

94%

10.17trans/s

0.35M

17.76s

180.60

30.00s

0.24s

获得词根词表

1177

19.67trans/s

0.74M

11.55s

227.12

24.52s

产生近义词表的生成方式对于数据量要求较大,故资源消耗较高;总体来看,对压力适应性较好。

后端进行了 API 的单元测试,覆盖率 70%。

没有达到较高覆盖率的原因有三:

使用双重校验,每一个 API 都使用解析 token 和解析用户两步进行,保证了用户隐私的安全性,但同时难以构造测试用例对于能够通过 token 解析但是通不过用户解析的场景,故每一个 API 都无法测试这一点;

部分 API 使用与其他 API 类似的结构,仅更改了部分影响内容(如修改字体、修改大小等),对于此类问题由于时间限制等原因没有进行完备的测试;

对于登陆和注销有关权限 API,进行了较为完备的场景测试,没有进行单元测试。

为了着重展示 Beta 阶段功能测试结构,将 Alpha 阶段各功能的回归测试结果汇总为 Alpha 阶段功能 一条展示。

浏览器

版本

Alpha阶段功能

我的词图

个人设置

分享社区

修改词图背景

自定义加词

测试模块

统计信息

Google Chrome

90.0.4430.93

正常

Microsoft Edge

90.0.818.56

360浏览器

13.0.2220.0

Firefox

88.0.1

Safari(平板)

604.1

QQ浏览器(平板)

11.4.8.4762

屏幕分辨率

基本功能

页面布局

操作流畅度

Chrome 90.0.4430.93

1920*1080

比较流畅

Edge 90.0.818.56

流畅

2560*1440

正常,侧边栏略窄

Firefox 88.0.1

Firefox 83.0

360安全浏览器 13.1.1302.0

要求

完成情况

完成度打分(满分10分)

整体 UI 美观

对包括字体在内的ui元素进行了进一步优化,对我的词图界面、词图添加了过渡动画

9

教程清晰

保留gif教程界面。另外添加基于状态机的引导性教程指引。

用户操作顺滑

对键盘的监听顺滑,用户对词图的编辑顺滑,过渡动画顺滑,添加缓存减少平均请求时间。但由于系统承载力原因,单张图片上传较慢,api获取词图背景较慢

8

词图功能完善

已完成对词图背景自定义、自定义加词等功能的完善,用户对词图的可编辑程度已基本达到最高等级

用户记忆状态展现详尽、可读性高

统计信息界面新增各词书背诵比例和整体单词状态的示意图,丰富用户可查看的信息

充分利用PC端的优势,和手机端相比有强大的不可替代性

词图可以通过zoom、拖拽等方式无限放大,充分利用大屏优势。复习测试部分充分利用pc端键盘优势,让用户可以用打字的方式巩固记忆。

进行部分要求审查

完善对用户名、密码、词图单词数量、词图名称等基本限制的前端审查,进行用户权限管理。

各屏幕分遍率、放大缩小、分屏的兼容

词图尺寸跟随屏幕和侧边栏尺寸进行自适应,导航栏根据屏幕自适应为底部导航栏。侧边栏不随设备分辨率而出现、消失。

7

数据库设计完备

能够支持前端询问,同时支持推荐算法、测试算法、用户使用信息记录的数据库设计

进行权限处理

用户登录获得密钥,进而才可使用各种功能,保证数据安全性

进行邮箱验证

用户需要通过邮箱验证才可使用软件,减少恶意用户

单词数据

770570 个单词,覆盖面较广;其中 20651 个单词具有中英文例句

词书数据

导入了四级、六级、专业四八级、考研、雅思、托福、GRE、MBA、红宝书等词书

近反义词等推荐算法

共有 5060 个单词可进行近反义词推荐;共有 9326 个单词可进行同词根词缀推荐;可以进行形近单词推荐;可以进行同类单词推荐;推荐算法自由选择

综上,基本完成 Beta 阶段的出口要求。