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

单元测试(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、多窗口)。
  • 场景如启动-登录-支付-退出全流程回归,系统弹窗/授权/设置操作等。
相关推荐
汪海游龙4 小时前
流式回复结尾的那一下闪:逐帧定位 Compose 聊天列表的三处布局跳动
android·性能优化·kotlin
2501_915909066 小时前
Ipa Guard 防护上架,混淆、重签名和回归测试怎么做
android·ios·小程序·https·uni-app·iphone·webview
码点7 小时前
Android ANR 全解析 与 traces 分析实战
android
敲代码的瓦龙7 小时前
Jetpack?lifecycle!!!
android·kotlin
苦瓜花7 小时前
Hilt用使用及原理
android
深度学习04079 小时前
MySQL InnoDB Cluster 部署完整文档
android·mysql·adb
邪修king9 小时前
Re:Linux系统篇(三十七):进程间通信Chapter4:System V 共享内存深度解析:为什么它是最快的 IPC?
android·linux·运维
用户3379225456810 小时前
Kiora SDK:在 Android 上组织端侧模型、工具与 A2A 协作
android
洞见前行10 小时前
你在 XML 时代学的渲染优化,进了 Compose 大多不再是重点——Recomposition 才是新的战场
android