【ExReader】个人技术文档
目录
-
场景
- 工作项序号 001
- 背景
- 典型用户:A君、B君
- 用户需求:软件功能说明书
- 场景
- A君打开ExReader,进入书架页,点击页面上的“+”,把鼠标放到上边会显示导入文章;导入文章后单击此文章进入阅读界面;单击左边菜单栏中单词本,选择考研词库,然后单击菜单栏选择阅读,单击阅读模式,软件会渲染考研词库的单词为淡红色。
- A单击显示单词表右侧会弹出单词表,单词表上会有当前页面所有考研词库的单词,用鼠标单击“√”会有表示掌握,当前掌握单词会被渲染成绿色,并且单词会被移到列表最下边,可以单击“×”表示不记得了把单词置为未掌握,重新渲染为淡红色。
- A只想看当前的未掌握的单词,单击单词列表中的下拉菜单选择已掌握、未掌握、显示所有中的已掌握选项,文章中只有未掌握会被渲染成红色。
- A读到“perks”但是不认识,把鼠标移到单词上边会显示出单词的意思,A右键单击这个单词弹出菜单保存到默认生词本,用户可以在菜单栏选择生词本去添加生词本,更改生词本名字,查看生词本单词。
- A在网上看到一篇文章,把文章复制并粘贴到阅读页,A单击阅读模式,渲染出考研词库的单词,单击保存会弹出对话框输入文件名,单击确认,则书架上会有这篇文章的历史记录。
- A读完了一篇文章,并且不再想看见它,在书架页面右键单击该文章选择删除。
-
用例
- 标题:渲染词库单词
- 角色:A
- 主要成功场景:
- 打开软件进入书架页面有“+”号
- 成功导入文章
- 阅读文章界面
- 成功选择词库
- 渲染出词库中的单词
- 标题:更改单词状态
- 角色:A
- 主要成功场景:
- 成功修改单词的状态
- 未掌握单词被渲染成绿色
- 标题:查看特定状态单词
- 角色:A
- 主要成功场景
- 成功切换显示单词
- 成功切换渲染单词
- 标题:保存单词
- 角色:A
- 主要成功场景
- 成功显示单词意思
- 成功保存到单词本
- 成功修改单词本名字
- 成功查看单词本词汇
- 标题:保存文章
- 角色:A
- 主要成功场景
- 成功保存文章
- 书架上显示文章
- 标题:删除文章
- 角色:A
- 主要成功场景
- 成功删除文章
- 标题:渲染词库单词
-
功能说明书
-
技术说明书
- 类【矩形框中】
- 算法改进:把数据库中的词典导入到EFcore迁移的数据库
- 导入前先检测数据库中是否存在单词,耗时2min。老师用性能探查器检测出DataContext.Word.Find()耗时严重
- 改进为把数据库中元素导入【Dictionary<key word>】来检查有没有重复,耗时变为18s。
- 改为只在软件第一次使用时导入相应考纲词汇到EFcore迁移的数据库,耗时减少到4s。
-
测试文档
-
测试类名 测试功能 时间 fileDatabaseManageTest 与文件数据库链接 2018年7月23 customDaiManageTest 管理词典表 2018年7月27 MigrateTest 测试EFcore数据库迁移 2018年7月25 PassageManageTest 测试书架信息的管理 2018年7月29 -
类:fileDatabaseManage 功能 测试预期结果 实际结果 openFileDatabaseTest() 链接数据库 不抛出异常 √ SearchVocabularyTest() 查单词意思 读出test的translation √ -
类:CustomDicManage 功能 测试预期结果 实际结果 ChangeDictionaryNameTest() 新建词典 读出修改后的词典名字 √ InsertAWordToCustomDictionaryTest() 插入一个单词到词典 插入成功返回1;已存在该单词返回0 √ DeleteDictionaryTest() 删除一个单词本和它的关联表 不抛出异常 √ DumpWordsFromFile
DataBaseToTheDictionaryTest()
把文件数据库中的单词注入EFcore迁移的数据库中的默认单词表 第一次注入成功返回1,第二次已注入返回0 √ DumpWordsFromWord
BookToCustomDictionaryTest()
把系统词库导入到用户生词本 导入成功,不抛出异常 √ ChangeTheStateOfAWordTest() 改变一个单词的状态位,已掌握/未掌握 读出修改后的状态位 √ -
类:Migrate 功能 预期结果 实际结果 MigrateTest() 测试数据库迁移成功 不抛出异常 √ CreateNewDictionaryAndDeleteAtLast() 测试新建一个新词典 不抛出异常,且读出这个词典 √ -
类:PassageManage 功能 预期结果 实际结果 GetPassageInfoList() 返回所有文章的信息 不抛出异常,能正确读出文章信息 InsertAPassageInfo() 成功插入一条文章的信息 不抛出异常,成功插入 DeleteAPassageInfo() 删除文章一条信息 不抛出异常,成功删除
-
-