Back to Gsy Github App Flutter

手工回归矩阵

docs/04-quality/smoke-matrix.md

8.0.03.2 KB
Original Source

手工回归矩阵

目的

仓库当前缺少自动化测试基线,因此需要一份最小可执行的手工回归矩阵。 它的目标不是覆盖全部功能,而是覆盖最容易因局部改动而回归的主链路。

使用方式

  • 改动前:确认本次变更影响哪些功能域
  • 改动后:至少执行对应功能域的基础用例
  • 改共享层时:除目标功能外,额外抽查一个高频功能

全局基础项

每次涉及共享层或根装配时,至少验证:

  1. 应用能正常启动
  2. 首页或欢迎页能进入
  3. 路由跳转正常
  4. 多语言和主题没有明显异常

登录

适用改动:

  • lib/page/login/
  • lib/redux/login_redux.dart
  • user_repository
  • OAuth 配置或导航相关改动

基础用例:

  1. 进入登录页
  2. 点击 OAuth 登录按钮
  3. 能正常打开登录 WebView
  4. 登录完成后能回到应用并进入首页
  5. 退出登录后能回到登录页

重点观察:

  • WebView 跳转是否正常
  • OAuth 回调后是否正确更新全局登录态

仓库详情

适用改动:

  • lib/page/repos/
  • repos_repository
  • issue_repository
  • 相关模型、网络层改动

基础用例:

  1. 从列表页进入仓库详情
  2. 信息页正常展示
  3. Readme 页能加载
  4. Issue 页能切换并加载
  5. 文件列表页能切换并加载
  6. 切换分支后,信息页、Readme、文件列表表现正常

重点观察:

  • 跨 tab 状态是否同步
  • 分支切换是否触发联动刷新

趋势页

适用改动:

  • lib/page/trend/
  • ReposRepository.getTrendRequest
  • 趋势筛选、滚动、刷新相关改动

基础用例:

  1. 进入趋势页
  2. 首次加载能显示列表或空态
  3. 切换时间筛选
  4. 切换语言筛选
  5. 下拉刷新
  6. 点击列表项进入仓库详情并返回

重点观察:

  • 首次加载与刷新是否重复触发
  • 筛选切换后列表是否正确刷新

通知页

适用改动:

  • lib/page/notify/
  • user_repository 通知相关接口
  • Signals 或分页刷新逻辑相关改动

基础用例:

  1. 进入通知页
  2. 默认列表正常加载
  3. 在 未读 / 参与 / 全部 之间切换
  4. 下拉刷新
  5. 上拉加载更多
  6. 将单条未读标记为已读
  7. 执行“全部标记为已读”
  8. 点击 Issue 类型通知跳转详情并返回

重点观察:

  • 切 tab 时列表是否正确刷新
  • 标记已读后列表是否正确更新
  • 返回后是否触发强制刷新

共享网络层

适用改动:

  • lib/common/net/
  • lib/common/repositories/
  • 认证、拦截器、公共响应解析

基础用例:

  1. 验证登录链路
  2. 验证趋势页加载
  3. 验证仓库详情加载
  4. 验证通知页加载

重点观察:

  • 是否出现全局 toast 异常
  • 是否出现统一鉴权失效
  • REST 与 GraphQL 路径是否都正常

共享状态或根装配

适用改动:

  • lib/app.dart
  • lib/provider/
  • lib/redux/

基础用例:

  1. 应用启动正常
  2. 首页进入正常
  3. 登录态切换正常
  4. 主题或语言切换正常
  5. 趋势页、通知页、仓库详情页各抽查一个

执行原则

  • 不要求每次全量回归
  • 但改共享链路时,不能只测当前页面
  • 如果某次改动跨越多个功能域,应把对应模块基础用例全部跑一遍