安卓不同类型自动化测试介绍

单元测试(Unit Test)

需访问业务类、ViewModel、Repository 等源码。

  • 针对与 Android 框架无关的业务逻辑(如 ViewModel、Repository、DAO 等)。
  • 使用 JUnit、Mockito/Mockk、Robolectric 等工具。
  • 场景包括数据处理、业务分支、边界条件验证。
UI 行为测试(UI Behavior Test)

基于 ComposeTestRule 或 Espresso,都需要工程源码。

  • 适用于 Compose UI 或传统 View 布局。
  • 使用 ComposeTestRule、Espresso 进行组件/交互测试。
  • 场景包括按钮点击、UI 状态切换、回退操作验证。
数据库测试

针对 Room/SQLite 数据层单元测试,须直接访问存储层代码。

  • 针对 Room、SQLite 等持久化方案进行插入/查询/删除等功能验证。
  • 多用内存数据库模拟业务流程,确保数据一致性。
屏幕截图测试(Screenshot Test)

某些方案可黑盒抓取界面截图,无需源码。例如 Dropshots 在 instrumented 环境可作用于已装 app。

绝大部分需源码支持,才能对控件或页面生成快照。

  • 用于检测 UI 多主题、不同分辨率、字体缩放等情况下的渲染一致性。
  • 支持组件级、页面级截图回归。常用 Paparazzi, Dropshots, Roborazzi 等。
导航测试(Navigation tests)

常基于源码和本地测试框架。

  • 检查应用的导航流程、返回栈、深链(Deep Links)等跳转是否正常。
  • 场景包括多页面切换、界面后退、外部链接接入。
覆盖率统计(Coverage Measurement)

需参与工程构建/测试流程和源码插桩。

  • 本地通过 Jacoco 等工具统计代码与用例覆盖率,评估测试充分性。
端到端测试(End-to-End Test/E2E)
  • 利用 UIAutomator/Appium/Robotium 进行完整用户旅程自动化,涵盖系统级 UI(如通知、PIP、多窗口)。
  • 场景如启动-登录-支付-退出全流程回归,系统弹窗/授权/设置操作等。
相关推荐
好的佩奇3 小时前
Dart 之集合元素
android·flutter·dart
Easyhood5 小时前
Android 开发入门实践(十四):Compose 副作用入门与四个常用 API
android·开发语言·kotlin·android jetpack·compose
FlightYe6 小时前
音视频修炼之容器与协议(四):RTSP详解
android·linux·ffmpeg·音视频·dash
疯华整猫7 小时前
删掉 LeakCanary 那天,我用 Trae 自己撸了一套:最难的不是分析堆,是决定什么时候 dump
android·人工智能·性能优化
mmsx15 小时前
耳切法切带洞多边形:论文能跑通,真实数据为什么崩
android·kotlin
洞见前行15 小时前
你的 Activity 关了,为什么还活着?Android 内存泄漏从发现、定位到线上治理
android·性能优化·leakcanary
Kapaseker17 小时前
Kotlin 又要加语法糖了:这次轮到 if-else
android·kotlin
恋猫de小郭19 小时前
Flutter 3.50 & Dart 3.14 发布,快来看看有什么更新吧
android·前端·flutter