76 lines
3.7 KiB
Plaintext
76 lines
3.7 KiB
Plaintext
page.title=Automating User Interface Tests
|
||
page.tags=testing
|
||
|
||
trainingnavtop=true
|
||
startpage=true
|
||
|
||
@jd:body
|
||
|
||
<div id="tb-wrapper">
|
||
<div id="tb">
|
||
<h2>
|
||
You should also read
|
||
</h2>
|
||
|
||
<ul>
|
||
<li>
|
||
<a href="{@docRoot}tools/testing-support-library/index.html">Testing Support Library</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
<p>User interface (UI) testing lets you ensure that your app meets its functional requirements
|
||
and achieves a high standard of quality such that it is more likely to be successfully adopted by
|
||
users.</p>
|
||
|
||
<p>One approach to UI testing is to simply have a human tester perform a set of user operations on
|
||
the target app and verify that it is behaving correctly. However, this manual approach can be
|
||
time-consuming, tedious, and error-prone. A more efficient approach is to write your UI
|
||
tests such that user actions are performed in an automated way. The automated approach allows
|
||
you to run your tests quickly and reliably in a repeatable manner.</p>
|
||
|
||
<p class="note"><strong>Note: </strong>It is strongly encouraged that you use
|
||
<a href="{@docRoot}sdk/installing/studio.html">Android Studio</a> for
|
||
building your test apps, because it provides project setup, library inclusion, and packaging
|
||
conveniences. This class assumes you are using Android Studio.</p>
|
||
|
||
<p>To automate UI tests with Android Studio, you implement your test code in a separate
|
||
Android test folder ({@code src/androidTest/java}). The
|
||
<a href="{@docRoot}tools/building/plugin-for-gradle.html">Android
|
||
Plug-in for Gradle</a> builds a test app based on your test code, then loads the test app on the
|
||
same device as the target app. In your test code, you can use UI testing frameworks to
|
||
simulate user interactions on the target app, in order to perform testing tasks that cover specific
|
||
usage scenarios.</p>
|
||
|
||
<p>For testing Android apps, you typically create these types of automated UI tests:</p>
|
||
|
||
<ul>
|
||
<li><em>UI tests that span a single app:</em> This type of test verifies that the target app behaves
|
||
as expected when a user performs a specific action or enters a specific input in its activities.
|
||
It allows you to check that the target app returns the correct UI output in response
|
||
to user interactions in the app’s activities. UI testing frameworks like Espresso allow you to
|
||
programmatically simulate user actions and test complex intra-app user interactions.</li>
|
||
<li><em>UI tests that span multiple apps:</em> This type of test verifies the correct behavior of
|
||
interactions between different user apps or between user apps and system apps. For example, you
|
||
might want to test that your camera app shares images correctly with a 3rd-party social media app,
|
||
or with the default Android Photos app. UI testing frameworks that support cross-app interactions,
|
||
such as UI Automator, allow you to create tests for such scenarios.</li>
|
||
</ul>
|
||
|
||
<p>The lessons in this class teach you how to use the tools and APIs in the
|
||
<a href="{@docRoot}tools/testing-support-library/index.html">Android Testing Support Library</a>
|
||
to build these types of automated tests. Before you begin building tests using these
|
||
APIs, you must install the Android Testing Support Library, as described in
|
||
<a href="{@docRoot}tools/testing-support-library/index.html#setup">Downloading the Android
|
||
Testing Support Library</a>.</p>
|
||
|
||
<h2>Lessons</h2>
|
||
<dl>
|
||
<dt><strong><a href="espresso-testing.html">
|
||
Testing UI for a Single App</a></strong></dt>
|
||
<dd>Learn how to test UI in a single app by using the Espresso testing framework.</dd>
|
||
<dt><strong><a href="uiautomator-testing.html">
|
||
Testing UI for Multiple Apps</a></strong></dt>
|
||
<dd>Learn how to test UI in multiple apps by using the UI Automator testing framework</dd>
|
||
</dl> |