冰鉴InsightNews——测试随笔

冰鉴InsightNews 2025-11-04 09:30:17
项目内容
这个作业属于哪个课程202501福大-软件工程实践-W班
这个作业要求在哪里团队作业——站立式会议+α冲刺
这个作业的目标测试随笔
其他参考文献《构建之法》

目录

  • 一、引言
  • 1. 目的
  • 2. 项目概述
  • 二、测试范围与方法
  • 1. 测试范围
  • 2. 测试方法
  • 三、测试环境
  • 四、测试执行与结果
  • 4.1 移动端功能测试
  • 测试点 1: 移动端登录/注册验证码功能测试
  • 测试点 2: 移动端详情页(detail_topic)功能测试
  • 测试点 3: 移动端个人资料(edit_profile)功能测试
  • 测试点 4: 移动端收藏与搜索(collection)界面测试
  • 4.2 后端服务测试
  • 测试点 5: 核心服务启动测试
  • 测试点 6: 用户(User)模块API集成测试
  • 测试点 7: AI服务模块功能测试
  • 五、测试结论
  • 六、风险与建议
  • a. 风险:
  • b. 建议:

一、引言

1. 目的

本报告旨在记录对冰鉴InsightNews在冲刺阶段核心功能的测试执行过程、结果和分析。本次测试重点关注移动端(Android)和后端服务的稳定性与功能正确性,为系统质量评估和后续迭代提供依据。

2. 项目概述

本项目是一个包含Web管理后台、移动端(Android)应用和后端(Java Spring Boot)服务的综合新闻资讯平台。移动端允许用户通过手机验证码登录/注册,进行新闻检测,浏览新闻话题,编辑个人资料及管理收藏。后端服务提供完整的API支持,并集成了AI能力。

二、测试范围与方法

1. 测试范围

包含:

  • 移动端: 登录/注册、详情页UI与交互、个人资料编辑与校验、收藏与搜索功能。
  • 后端服务:
    • Spring Boot应用上下文加载。
    • 用户(User)模块核心API(注册、登录、信息获取、更新、注销等)的功能与逻辑。
    • 公共模块API(如短信验证码、文件上传)的功能。
    • AI服务模块(基于Langchain4jQwen3-VL)的文本处理能力。

不包含:

  • 除用户流程外的安全性渗透测试。
  • 高并发下的后端性能压力测试。
  • 数据库完整性与一致性专项测试。

2. 测试方法

  • 单元测试 (Unit Test):
    • (Android) 使用 JUnit 对数据验证逻辑进行测试。
  • 集成测试 (Integration Test):
    • (后端) 使用 Spring Boot Test 配合 TestRestTemplate 对运行中的服务进行API级别的端到端调用,验证接口的请求-响应流程、业务逻辑和数据正确性。
    • (Android) 在真实设备上运行应用,通过 Logcat 监控网络请求的原始响应,验证前后端数据交互。
  • UI自动化测试:
    • (Android) 使用 Espressoedit_profile 等界面的交互流程进行自动化测试。
  • 手动测试 (Manual Test):
    • (Android) 手动执行完整用户路径,验证不同场景下的功能表现。

三、测试环境

类型配置
后端服务环境操作系统: Linux
服务框架: Java, Spring Boot
测试框架: JUnit 5, Spring Boot Test, TestRestTemplate
内容解析环境工具: Selenium WebDriver
浏览器: Headless Chrome (ChromeDriver)
AI服务依赖框架: Langchain4j
模型: Qwen3-VL
移动端环境操作系统: Android 12
开发/调试: Android Studio, Logcat
测试框架: Espresso, JUnit
网络环境局域网 (LAN) / Wi-Fi

四、测试执行与结果

4.1 移动端功能测试

测试点 1: 移动端登录/注册验证码功能测试

  • a. 测试用例 ID: TC_FUNC_001
  • b. 测试标题: 验证登录/注册验证码的获取、验证及调试后门功能。
  • c. 测试目标: 确保用户能通过验证码正常登录,并验证调试模式的有效性。
  • d. 前置条件:
    • 移动端应用已编译并安装在真实设备/模拟器上。
    • 后端短信和验证接口可用。
  • e. 测试步骤:
    1. (手动) 输入格式正确的手机号,点击“获取验证码”按钮。
    2. (集成) 观察 Logcat,确认 sendVerificationCode 请求发出,并收到 code: 200 的响应。
    3. (手动) 输入收到的真实验证码,点击“注册/登录”按钮。
    4. (手动) 重复步骤1,在步骤3中输入调试验证码“041122”,点击“注册/登录”。
  • f. 预期结果:
    • Logcat 按预期打印网络请求日志。
    • 输入真实验证码后,登录成功,跳转到 MainActivity
    • 输入调试验证码“041122”后,登录成功,跳转到 MainActivity
  • g. 实际结果:
    • 全部通过。 Logcat 对于排查“服务器响应格式错误”至关重要。调试后门的添加极大地提高了测试效率,避免了等待真实短信。

测试点 2: 移动端详情页(detail_topic)功能测试

  • a. 测试用例 ID: TC_UI_002
  • b. 测试标题: 验证新闻详情页(detail_topic)的加载、评论、点赞和收藏交互。
  • c. 测试目标: 确保详情页所有UI交互功能符合预期。
  • d. 前置条件:
    • 用户已登录。
    • 数据库中存在可供查看的新闻/话题。
  • e. 测试步骤:
    1. (自动化/手动) 用户进入 detail_topic 页面。
    2. 点击评论按钮,输入内容并提交。
    3. 点击点赞按钮,并尝试连续快速点击。
    4. 点击收藏按钮。
    5. 点击新闻(若有链接)跳转到详细分析页。
  • f. 预期结果:
    • 页面正常加载,新闻内容完整显示。
    • 评论区弹出,提交后评论显示在列表,输入框清空。
    • 点赞数+1,状态更新;连续点击无异常,计数正确。
    • 收藏按键正常跳转,并添加到话题收藏。
    • 成功跳转到新闻详细分析页。
  • g. 实际结果:
    • 全部通过。 所有UI交互均符合预期。

测试点 3: 移动端个人资料(edit_profile)功能测试

  • a. 测试用例 ID: TC_UI_003
  • b. 测试标题: 验证个人资料编辑(edit_profile)页面的保存、格式校验及头像更新。
  • c. 测试目标: 确保用户信息可正确更新,且无效输入被有效阻止。
  • d. 前置条件:
    • 用户已登录。
  • e. 测试步骤:
    1. 进入 edit_profile 页面。
    2. 正常编辑用户名,点击保存。
    3. 尝试输入特殊字符、超长文本、空字符串作为用户名,点击保存。
    4. 分别尝试从相册选择、拍照设置头像。
    5. 编辑个性签名,观察实时计数器。
    6. 输入超过20字的签名,观察提示并尝试保存。
  • f. 预期结果:
    • 页面加载正常,正常编辑用户名成功,返回后显示新用户名。
    • 无效用户名均提示格式错误,禁止保存。
    • 头像更新成功,显示新头像。
    • 签名计数器实时显示 "已输入X/20字"。
    • 签名超出20字,计数器变红,提示"签名不能超过20个字",禁止保存;范围内保存成功。
  • g. 实际结果:
    • 全部通过。 所有校验逻辑和UI反馈均符合预期。

测试点 4: 移动端收藏与搜索(collection)界面测试

  • a. 测试用例 ID: TC_UI_004
  • b. 测试标题: 验证 new/topic collection 页面的收藏、取消收藏及搜索功能。
  • c. 测试目标: 确保收藏和搜索功能逻辑正确。
  • d. 前置条件:
    • 用户已登录。
  • e. 测试步骤:
    1. 进入 new/topic collection 页面。
    2. 点击某条目上的收藏按钮(假设从其他页面添加)。
    3. 在收藏界面,点击取消收藏。
    4. 在搜索框输入已知的正确关键词。
    5. 在搜索框输入无结果的错误关键词。
  • f. 预期结果:
    • 页面正常加载,列表完整显示。
    • 收藏/取消收藏操作成功,列表实时更新。
    • 相关新闻/话题弹出。
    • 显示“没有找到包括xx的新闻/话题”。
  • g. 实际结果:
    • **全部通过。

4.2 后端服务测试

测试点 5: 核心服务启动测试

  • a. 测试用例 ID: TC_BACKEND_001
  • b. 测试标题: 验证Spring Boot应用上下文加载。
  • c. 测试目标: 确保所有Bean配置正确,应用能够无错误地成功启动。
  • d. 测试方法: 运行InsightNewsApplicationTests中的contextLoads()测试方法。
  • e. 预期结果: 测试通过,应用上下文成功加载,无任何Bean初始化或依赖注入失败的异常。
  • f. 实际结果: 通过。 核心服务完整性得到保证,为其他所有测试奠定了基础。

测试点 6: 用户(User)模块API集成测试

  • a. 测试用例 ID: TC_BACKEND_002
  • b. 测试标题: 验证用户管理及公共模块核心API功能。
  • c. 测试目标: 确保用户生命周期(注册、登录、信息管理、注销)及相关功能(文件上传、反馈)的API接口工作正常。
  • d. 测试方法: 使用TestRestTemplate向本地运行的(localhost:8087)服务发送HTTP请求,覆盖UserTest.java中的所有测试用例。
  • e. 测试结果汇总:
接口端点HTTP方法功能描述测试状态
/common/codePOST发送手机验证码通过
/common/uploadPOST上传文件(头像)通过
/user/registerPOST用户注册通过
/user/loginPOST用户登录并获取Token通过
/user/infoGET获取当前用户信息(需Token)通过
/user/updatePUT更新用户信息(需Token)通过
/user/logoutPOST用户登出(需Token)通过
/user/deleteDELETE注销用户账号(需Token)通过
/user/feedbackPOST提交用户反馈(需Token)通过
  • f. 实际结果: 全部通过。 用户模块所有核心API均按预期工作,认证(JwtUtil)、请求处理和响应逻辑正确无误。

测试点 7: AI服务模块功能测试

  • a. 测试用例 ID: TC_BACKEND_003
  • b. 测试标题: 验证AI模型文本生成能力。
  • c. 测试目标: 确保后端服务能成功调用外部AI模型(Qwen3-VL)并处理其返回结果。
  • d. 测试方法: 运行AITest.java中的testTextAI()方法,调用ChatLanguageModel为一段预设文本生成标题。
  • e. 预期结果: 程序成功连接AI服务,并打印出由AI模型生成的标题字符串。
  • f. 实际结果: 通过。 AI服务集成成功,Langchain4j框架工作正常,能够按预期完成文本生成任务。

五、测试结论

本次测试对Web与移动端的核心功能进行了全面验证,结果如下:

  • 功能完整性: 移动端的核心业务流程(登录、浏览、编辑、收藏)与后端API(用户管理、公共服务)已完全打通,功能稳定,通过了所有测试用例。
  • 后端服务可靠性: 后端服务(Spring Boot)本身稳定,核心模块如用户管理、AI集成均已通过自动化测试验证,功能正确,逻辑清晰。
  • 自动化测试覆盖: 后端已建立起有效的集成测试(TestRestTemplate)和功能模块测试(Selenium)流程,为服务的持续集成和质量保障提供了有力支持。

总体结论: 本次冲刺阶段的Web与移动端核心功能已达到预期质量目标。系统功能稳定,前后端交互流畅,自动化测试流程有效,项目已具备发布基础。

六、风险与建议

a. 风险:

  • 调试后门风险: 移动端中的调试验证码(“041122”)和后端测试代码中的硬编码手机号/Token生成逻辑,若未在生产环境中移除,将带来严重安全隐患。
  • 外部依赖风险:
    • 内容解析: 第三方网站前端结构若发生变更,将导致解析脚本失效,影响核心内容获取功能。
    • AI服务: AI模型(Qwen3-VL)的API可用性、响应延迟或费用将直接影响依赖该功能的用户体验。

b. 建议:

  • 构建流程优化: 在CI/CD流程中增加自动化检查,确保在打包生产环境APK和JAR包时,自动移除所有调试后门代码、测试密钥和硬编码的用户信息。
  • 增强外部服务监控与适配:
    • 内容解析: 建立定期巡检机制,监控目标网站的结构变化。考虑引入更具鲁棒性的解析方案或备用数据源。
    • AI服务: 添加对AI服务接口的健康检查和熔断机制,在服务不可用时降级。
  • 引入契约测试: 在前后端之间引入契约测试(如 PactSpring Cloud Contract),当API提供方(后端)的响应格式发生变更时,能自动触发测试失败,实现快速告警和问题定位。
...全文
30 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

112

社区成员

发帖
与我相关
我的任务
社区描述
202501福大-软件工程实践-W班
软件工程团队开发结对编程 高校 福建省·福州市
社区管理员
  • 202501福大-软件工程实践-W班
  • 离离原上羊羊吃大草
  • MiraiZz2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧