当前位置: 首页 > news >正文

基于-轻量级文档搜索系统的测试报告

文章目录

    • 一、项目背景
    • 二、项目功能
    • 三、测试计划
      • (一)测试用例设计
      • (二)测试用例实现
        • 1.功能测试
        • 2.界面测试
        • 3.兼容性测试
        • 4.易用性测试
        • 5.安全性测试

一、项目背景

1.基于轻量级文档检索系统采用C++技术栈来实现,同时使用了本地文件系统来存储相关的索引数据,同时将其部署到云服务器上。前端主要有一个页面构成:搜索页,该页面包含搜索框、结果列表与摘要展示区,以上模拟实现了一个最简单的垂直搜索引擎系统。其结合后端实现了以下的主要功能:对技术官网文档的全文爬取与解析、正排与倒排索引的构建、关键词的分词与检索、搜索结果的相关性排序(基于权重公式标题词频*10 + 正文词频)以及提供HTTP搜索接口等功能。

2.但是该项目没有设计图形化的索引构建与监控功能,只能通过命令行指令启动索引构建过程;并且搜索结果的相关性衡量策略较为简单,仅依赖于词频统计,并未引入更复杂的算法(如TF-IDF或BM25);而索引数据存储在内存中,并未实现持久化,服务重启后需要重新构建索引。

3.该轻量级文档检索系统可以实现对官方技术文档的快速站内检索,用户输入关键词后,相关的文档标题、内容摘要以及官方链接都可以被详细地查看并点击访问。


二、项目功能

该轻量级搜索引擎主要实现了以下几个功能:索引构建、关键字搜索、搜索结果高亮与摘要生成以及Web服务等功能。

索引构建功能:原始技术官网的HTML文档已经提前下载并存储在指定目录,没有实现实时爬虫抓取功能,即:数据源是静态的、预先准备好的。项目启动时首先会运行索引构建模块,对HTML文件进行去标签、解析、分词,并建立正排索引和倒排索引。构建成功后,搜索引擎即可对外提供检索服务。

搜索页面:用户可以在前端搜索页的输入框中输入任意关键字,其界面包含搜索框、搜索结果统计和结果列表。在结果列表中可以看到匹配文档的标题、内容摘要以及对应的官方URL链接。点击标题或URL即可跳转到Boost官网对应的文档页面。

搜索结果:在搜索页面输入关键字并点击“搜索”按钮后,页面会异步向后端发送请求,并动态加载返回的搜索结果。此时就可以看到所有匹配文档的概要信息,并按相关性(权重)从高到低排序。每个结果项都清晰展示了文档的标题、包含关键字的摘要片段和可直接访问的链接。

搜索流程:在搜索框输入关键字后,后端服务会执行一套完整的检索流程:首先对查询词进行分词,然后在倒排索引中查找每个分词对应的文档ID列表,接着进行权重计算与合并,最后根据合并后的权重对文档进行排序,并将排名前N的结果包装成JSON格式返回给前端渲染。

三、测试计划

(一)测试用例设计

在这里插入图片描述

(二)测试用例实现

1.功能测试
1)特殊字符处理1.1输入无效字符是否提示(✔)![请添加图片描述](https://i-blog.csdnimg.cn/direct/c5c37de1e4824d4c9442704b1b75c8a4.png)

请添加图片描述

1.2输入有效字符是否正确(✔)
请添加图片描述
2)基本搜索功能
2.1加入特殊字符后(✔)
在这里插入图片描述
2.2加入空格后(✔)
请添加图片描述
3)历史记录
3.1历史记录是否有效(✔)
请添加图片描述
3.2历史记录是否可以清除(✔)
请添加图片描述

2.界面测试

1.1原版搜索框界面
在这里插入图片描述
1.2优化后搜索框界面(✔)
请添加图片描述
1.3原版搜索结果界面
请添加图片描述

1.4优化后搜索结果界面(✔)请添加图片描述

3.兼容性测试

1)Edge浏览器(✔)
在这里插入图片描述
2)google浏览器(✔)
在这里插入图片描述

4.易用性测试

1.1搜索结果清晰
在这里插入图片描述
1.2操作性
输入需要查询的英文内容,点击相应标题,直接跳转到boost官方相关文档处,简单高效。

5.安全性测试

过滤敏感词
在这里插入图片描述

http://www.xdnf.cn/news/1441711.html

相关文章:

  • 【GM3568JHF】FPGA+ARM异构开发板 使用指南:WIFI
  • SQLite3 操作指南:SQL 语句与 ORM 方法对比解析​
  • 存算一体:重构AI计算的革命性技术(1)
  • K8s Pod CrashLoopBackOff:从镜像构建到探针配置的排查过程
  • react-android-0.80.2-debug.aar下载很慢
  • GitHub 宕机自救指南技术文章大纲
  • Flutter Android真机器调式,虚拟机调试以及在Vscode中开发Flutter应用
  • 充电座结构设计点-经验总结
  • 10.2 工程学中的矩阵(2)
  • Android/Java 异常捕获
  • 电子病历空缺句的语言学特征描述与自动分类探析(以GPT-5为例)(中)
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘isort’问题
  • MCP模型库哪个好?2025年收录12万+服务的AI智能体工具集成平台推荐
  • AI创业公司:来牟科技-智能割草机器人
  • 如何高效记单词之:抓住首字母——以find、fund、fond、font为例
  • 股指期货放开后,市场会发生什么变化?
  • 数据结构:顺序栈与链栈的原理、实现及应用
  • 解析SWOT分析和PV/UV这两个在产品与运营领域至关重要的知识点。
  • 前端性能优化:请求和响应优化(HTTP缓存与CDN缓存)
  • Redis初阶学习
  • 宋红康 JVM 笔记 Day12|执行引擎
  • 《SVA断言系统学习之路》【03】关于布尔表达式
  • 番茄生吃熟吃大PK!VC vs 番茄红素,谁更胜一筹?医生不说的秘密!
  • 【算法--链表】142.环形链表中Ⅱ--通俗讲解如何找链表中环的起点
  • Keras/TensorFlow 中 `fit()` 方法参数详细说明
  • 编程基础-eclipse创建第一个程序
  • 存算一体:重构AI计算的革命性技术(3)
  • 浅谈人工智能之阿里云搭建coze平台
  • 【大前端】React 父子组件通信、子父通信、以及兄弟(同级)组件通信
  • 【轨物方案】创新驱动、精准运维:轨物科技场站光伏组件缺陷现场检测解决方案深度解析