Alpha阶段测试文档

文章详细描述了FicusMarkdown编辑器的测试计划,包括GUI功能测试、Markdown解析的单元测试、场景测试,以及不同用户场景的应用。测试涵盖了各种功能,如样式合并、榕树模式、文件操作、热更新、跨平台兼容性和特定扩展语法。此外,还提到了郭笑笑和沈强两位用户使用Ficus进行笔记管理和博客写作的场景。
摘要由CSDN通过智能技术生成

测试计划

  • GUI 功能测试(结果见测试 bug 列表)
  • 新增扩展语法单元测试
  • Markdown 解析测试
  • 场景测试

测试 Bug 列表

  • 滚轮,字体,树枝的颜色,sidebar 宽度相关样式没有正确合并。
  • 进入榕图模式后无法进入其他模式(点侧边栏没有效果)
  • 窗口缩小后再放大,榕图不会随之变化
  • 在有些模式下显示只有单文档才可用的功能按钮
  • 热更新在特权目录下 (如 C:\Program Files) 无法自动完成提权,导致更新失败
  • 进入榕树模式时,榕树显示位置不在页面中心
  • 执行撤回操作后,光标位置会回到文档起始位置
  • 执行撤回操作后,文档中的多个连续换行符丢失
  • 直接复制图片文件粘贴时,会将图片内容转为 base64 格式进行渲染,对于比较大的图片有可能会卡死软件。
  • 从系统托盘点击软件的关闭窗口按钮,会导致当前编辑的文件内容丢失

请添加图片描述

  • Markdown 内的网页超链接,点击后会打开一个没有关闭按键的网页窗口
  • 对齐问题

请添加图片描述

  • 代码高亮较少

请添加图片描述

  • 连续输入 —- 报错

请添加图片描述

  • 光标位置太靠下

请添加图片描述

  • 帮助菜单没有绑

请添加图片描述

  • 无法从打字机模式退出,模式提示不清晰

请添加图片描述

  • 文本区的宽度过窄

请添加图片描述

请添加图片描述

  • 被引用数目错误
  • 公式不支持 \begin{align} 这样的对齐
  • 如果在公式框里面打入 ,会变成两对 ,会变成两对 ,会变成两对,而 typora 则会给报错
  • 较大文件进入榕树模式时,加载较慢且没有提示

扩展语法测试

针对扩展语法,我们修改使用 go 语言编写的 lute 解析器,进行解析。对修改后的 lute,加入了一些扩展语法相关的单元测试保证扩展语法正确性。

我们的扩展语法形如 -[label](ficus link),前面是 ficus 链接的 tag,后面是 ficus 链接指向的文件位置,类似 Markdown 中图片的语法。

var markTests = []parseTest{
    {"f1", "-[1](./testmd.md)", "<p><a class='ficus-filelink' href=\"./testmd.md\">1</a></p>\n"},
    {"f2", "-[==foo==](bar)\n", "<p><a class='ficus-filelink' href=\"bar\"><mark>foo</mark></a></p>\n"},
    {"f3", "==-[*foo*==](bar)\n", "<p>==<a class='ficus-filelink' href=\"bar\"><em>foo</em>==</a></p>\n"},
    {"f4", "==-[*foo*](bar)==\n", "<p><mark><a class='ficus-filelink' href=\"bar\"><em>foo</em></a></mark></p>\n"},
    {"f5", "==*-[foo](bar)*==\n", "<p><mark><em><a class='ficus-filelink' href=\"bar\">foo</a></em></mark></p>\n"}
}

lute 与渲染器实现实时渲染,所见即所得是依赖一套 markdown->html,html->markdown 的互相转换机制。前端的修改直接作用在 html dom上,通过 lute 将修改后的 html 转回 markdown。因此对于拓展语法,也需要实现相应的转换。对这一部分也扩展了单元测试,这一部分基本上就是把之前的markdown2html的测试反过来

var vditorDOM2MdTests = []parseTest{
    {"f1", "<a class='ficus-filelink' href=\"./testmd.md\">1</a>", "-[1](./testmd.md)\n"},
    {"f2", "<a class='ficus-filelink' href=\"bar\"><mark>foo</mark></a>", "-[==foo==](bar)\n"},
    {"f3", "<p>==<a class='ficus-filelink' href=\"bar\"><em>foo</em>==</a></p>", "==-[*foo*==](bar)\n"},
    {"f4", "<mark><a class='ficus-filelink' href=\"bar\"><em>foo</em></a></mark>", "==-[*foo*](bar)==\n"},
    {"f5", "<mark><em><a class='ficus-filelink' href=\"bar\">foo</a></em></mark>", "==*-[foo](bar)*==\n"}
}

Markdown 解析单元测试

由于 Ficus 需要结构化的管理 Markdown 文本,因此需要支持对 Markdown 文本的层次化解析,并支持我们的扩展语法如须等。由我们完成 Markdown 解析部分的同学,编写了相关的解析测试。

测试结果及覆盖率如图

请添加图片描述

请添加图片描述

场景测试

预期用户

笔记场景

姓名沈强
年龄17
职业高中学生
专业高中生物竞赛生
工作生活整理生物笔记备考竞赛
需求生物知识过于庞大,盘根错节,难以整理
姓名郭笑笑
年龄25
职业自由职业
专业计算机
工作生活在博客上发表自己的知识博客
需求博客内容的呈现形式需要反复地斟酌润色

测试场景描述

沈强

沈强是一位热爱生物竞赛的高中生,他发现自己的笔记零散且不易管理。于是他开始使用 Ficus,一款功能强大的 Markdown 文本编辑器,来整理他的生物竞赛笔记。

沈强打开 Ficus 软件,进入主界面,他看到左侧是文件浏览器,文件大纲浏览器,右侧是一个文本的实时所见即所得编辑区域。他打开了他存放所有笔记的文件夹,并在 Ficus 里面创建了一个名为 “生物竞赛笔记” 的文件,然后开始输入他的笔记。

沈强像使用其他 Markdown 笔记软件一样,熟练的输入了一系列笔记正文内容,沈强使用 Markdown 中的标题功能,将它的文档组织成一个清晰的树状结构。

当沈强写完一段笔记后,他切换到了 Ficus 的榕树模式,这个模式下, 格式化的展示了沈强编辑的文档。

沈强可以以一个树状的视图查看他完成的笔记。沈强发现,树的结构和他期望有一些差异,某个二级结构应该成为一个一级的结构,沈强随后熟练的用鼠标拖拽二级结构到一级根下,这个修改立即同步到了文档中,完成了对文档的同步修改。榕树模式下展现的文档更有层次化,沈强使用榕树导出图片的功能导出了一份 png

沈强回到所见即所得的编辑模式下, 在界面左侧选择进入了大纲视图,沈强想针对之前完成的某一节进行一些修改,沈强在左侧大纲视图中,选中了相应的一节,编辑器文本框跳到了沈强期望的节处,沈强完成了修改,Ficus 自动保存了编辑后的文件,沈强使用 pdf 导出功能,导出了完成的笔记文档打印。

郭笑笑

郭笑笑是一位大学计算机本科生,她热爱博客写作,并且喜欢使用 Markdown 编辑器来书写博客。计算机专业的博客常需要输入一些数学公式。她使用 Ficus 这款内置 katex 的 Markdown 文本编辑器完成她的博客编写。

郭笑笑打开 Ficus 软件,进入主界面,她从左侧的文件浏览器打开了她存放博客文档的文件夹,并新建了一篇博客,开始了文档编辑。郭笑笑需要插入数学公式时,她借助了 Ficus 内置的 katex 支持,实现了公式编辑的所见即所得。当郭笑笑编辑完她的博客后,她使用 Ficus 的导出功能,将博客导出为 PDF 格式的文档,方便她进行分享。

编辑完成这篇博客后,郭笑笑通过侧边栏打开了榕图模式,这里展示了她当前打开的博客文件夹中所有的文件,以及层次关系,互相引用关系。

由于 Ficus 使用标准的 Markdown语法,她的博客也可以很容易的被上传到一些静态的博客网站上。

测试矩阵

平台信息构建基本MD编辑-富文本模式基本MD编辑-源码模式大纲视图文件操作(正常)文件操作(非法)文件刷新本地ficus链网页超链接引用计数字数统计场景测试-沈强场景测试-郭笑笑热更新
Windows NT 10.0.22621.1555; x64
Linux 5.15.90.1-microsoft-standard-WSL2; ubuntu 22.04.2 LTS; x86_64
Windows NT 10.0.22621.1555; x64
Linux 5.15.90.1-microsoft-standard-WSL2; ubuntu 20.04 LTS; x86_64
Windows NT 10.0.19043.1381; x64
Windows NT 10.0.19044.1704; x64
Linux 5.15.108-1-manjaro; manjaro; x86_64
Linux 5.15.102-1-manjaro; manjaro; x86_64
Windows NT 10.0.22621.1546; x64
Macintosh OS X 10.14.6; Apple Silicon; arm64

出口条件

功能条件

完成基本文档编辑,文件基本操作,对 Markdown 基本语法支持无问题,支持榕树模式、榕图模式显示、大纲视图、引用计数,支持 PDF 导出等常用文本编辑器功能,支持热更新。在主流操作系统平台(windows,linux)上运行没有问题。

测试条件

编写并通过全部 Markdown 相关的单元测试,可以通过场景测试中的场景验证,通过矩阵测试,保证各平台用户的数据安全,保证软件有热更新功能,可以快速更新修正bug。

姓名郭笑笑
年龄25
职业自由职业
专业计算机
工作生活在博客上发表自己的知识博客
需求博客内容的呈现形式需要反复地斟酌润色
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值