【读书笔记】https://source.android.google.cn/compatibility/tests?hl=en
AuthorBlog:秋城https://www.cnblogs.com/houser0323/
Android Platform Testing
This content is geared toward Android platform developers. Before understanding how testing is done on the Android platform, please refer to the Android platform architecture for an overview.
Then delve into the precise technologies available to you in this section, such as the Vendor Test Suite (VTS) and its myriad video and codelab tutorials.
Also note the security-specific testing mechanisms available to detect and harden your devices against vulnerabilities.
For app testing, start with the Fundamentals of Testing and conduct the Android Testing Codelab using the samples provided.
Finally, note basic presubmit testing is available to you through Repo Hooks that can run linters, check formatting, and trigger unit tests before proceeding, such as uploading a commit. Note these hooks are disabled by default. See the Repo Hooks introduction for more details.
What and how to test
A platform test typically interacts with one or more of the Android system services, or Hardware Abstraction Layer (HAL) layers, exercises the functionalities of the subject under test, and asserts correctness of the testing outcome.
As such, a platform test may:
exercise framework APIs via application framework; specific APIs being exercised may include:
public APIs intended for third-party applications
hidden APIs intended for privileged applications, namely system APIs
private APIs (@hide, or protected, package private)
invoke Android system services via raw binder/IPC proxies directly
interact directly with HALs via low-level APIs or IPC interfaces
Types 1 and 2 are typically written as instrumentation tests, while type 3 are usually written as native tests using the gtest framework.
To learn more, see our end-to-end examples:
instrumentation targeting an application
self-instrumentation
native test
Become familiar with these tools, as they are intrinsic to testing in Android.
Compatibility Test Suite (CTS)
Android Compatibility Test Suite is a suite of various types of tests, used to ensure compatibility of Android framework implementations across OEM partners, and across platform releases. The suite also includes instrumentation tests and native tests (also using gtest framework).
CTS and platform tests are not mutually exclusive, and here are some general guidelines:
if a test is asserting correctness of framework API functions/behaviors, and it should be enforced across OEM partners, it should be in CTS
if a test is intended to catch regressions during platform development cycle, and may require privileged permission to carry out, and may be dependent on implementation details (as released in AOSP), it should only be platform tests
Vendor Test Suite (VTS)
The Vendor Test Suite (VTS) automates HAL and OS kernel testing. To use VTS to test an Android native system implementation, set up a testing environment then test a patch using a VTS plan.
Trade Federation Testing Infrastructure
Trade Federation (tradefed or TF for short) is a continuous test framework designed for running tests on Android devices. TF can run functional tests locally, at your desk, within your platform checkout. There are two required files to run a test in TF, a java test source and an XML config. See RebootTest.java and reboot.xml for examples.
Debugging
The Debugging section summarizes useful tools and related commands for debugging, tracing, and profiling native Android platform code when developing platform-level features.
【读书笔记】https://source.android.google.cn/compatibility/tests?hl=en的更多相关文章
- 【读书笔记】https://source.android.google.cn/devices/bootloader
https://source.android.google.cn/devices/bootloader 本文主要记录aosp官网关于bootloader的相关资料 Bootloader A bootl ...
- 对怎样充分利用安卓官方开发网站的一个简单性介绍介绍-https://developer.android.google.cn/docs/
一,谷歌的安卓官方网站-https://developer.android.google.cn/docs/ ,在网站里面可以查询开发文档,开发指导,设计原则,制作app的例子等等,无论对于新手还是老手 ...
- source.android.google && developer.android.google
https://source.android.google.cn/ https://developer.android.google.cn/ https://source.android.com/co ...
- developer.android.google.cn
Android Studio官方 Android IDE https://developer.android.google.cn/studio/index.html 探索 Android Studio ...
- [读书笔记]《Android开发艺术探索》第十五章笔记
Android性能优化 Android不可能无限制的使用内存和CPU资源,过多的使用内存会导致内存溢出,即OOM. 而过多的使用CPU资源,通常是指做大量的耗时任务,会导致手机变的卡顿甚至出现程序无法 ...
- 读书笔记--Android Gradle权威指南(上)
本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 最近看了一本书<Android Gradle 权威指南>,对于 Gradle 理解又更深了,但不想过段时间就又忘光了,所 ...
- 【2018.08.13 C与C++基础】C++语言的设计与演化读书笔记
先占坑 老实说看这本书的时候,有很多地方都很迷糊,但却说不清楚问题到底在哪里,只能和Effective C++联系起来,更深层次的东西就想不到了. 链接: https://blog.csdn.net/ ...
- 读书笔记--Android Gradle权威指南(下)
前言 最近看了一本书<Android Gradle 权威指南>,收获挺多,就想着来记录一些读书笔记,方便后续查阅. 本篇内容是基于上一篇:读书笔记--Android Gradle权威指南( ...
- Android群英传神兵利器读书笔记——第三章:Android Studio奇技淫巧
这篇文章篇幅较长,可以使用版权声明下面的目录,找到感兴趣的进行阅读 3.1 Android Studio使用初探 Project面板 Stucture面板 Android Monitor Keymap ...
随机推荐
- Clairaut 定理 证明
(Clairaut 定理)设 $E$ 是 $\mathbf{R}^n$ 的开子集合,并设 $f:\mathbf{E}\to \mathbf{R}^{m}$ 是 $E$ 上的二次连续可微函数.那么对于一 ...
- vmware ubuntu 解决 宿主机与虚拟机互相ping不通,虚拟机无线上网的解决办法
首先 virtual network editor 设为桥接 选定无线网卡 虚拟机的网络设置 选桥接. 其次, 如果不能互相ping通,注意主机是否关闭了防火墙,是否退掉了360(没验证), 还要注意 ...
- 迅为IMX6Q开发板提供原理图_底板PCB_驱动程序源码_芯片和LCD数据手册_开发板环境_使用手册
迅为IMX6开发板: Android4.4/6.0系统 Linux + Qt5.7系统 Ubuntu12.04系统 部分案例:HMI:3D打印机:医疗设备:工控机:触控一体机:车载终端 核心板 ...
- 43)PHP,mysql_fetch_row 和mysql_fetch_assoc和mysql_fetch_array
mysql_fetch_row 提取的结果是没有查询中的字段名了(也就是没有键id,GoodsName,只有值),如下图: mysql_fetch_assoc 提取的结果有键值,如下图: mysq ...
- G - 旅行的意义(概率DP) (DAG图的概率与期望)
为什么有人永远渴望旅行,或许就因为,巧合和温暖会在下一秒蜂拥而至吧. 一直想去旅游的天天决定在即将到来的五一假期中安排一场环游世界的旅行.为此,他已经提前查阅了很多资料,并准备画一张旅游路线图.天天先 ...
- python类的书写、调用
注意:stu1=Luffy('xing',19) 和 Luffy.__init__(stu1,'xing',19) 是等价的. 查看类的使用方法 粘贴一个网上python学习资料
- [LC] 149. Max Points on a Line
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ...
- NI Vision 介绍
NI Vision主要包括三种主要软件包: 主程序包(Vision Acquisition Software), 视觉开发模块(Vision Development Module), 以及用于自动检测 ...
- Python迭代器和关键字 global ,nonlocal
1.关键字 global : 可以修改全局变量 可以在局部作用域声明一个全局变量,剪切 : 此时局部作用域没有该变量,全局作用域中有 name = 1 def func(): global name ...
- [LC] 380. Insert Delete GetRandom O(1)
Design a data structure that supports all following operations in average O(1) time. insert(val): In ...