Book Image

Learning Android Application Testing

Book Image

Learning Android Application Testing

Overview of this book

Table of Contents (16 chapters)
Learning Android Application Testing
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Index

A

  • AccessPrivateDataTest class / Android unit tests
  • activities
    • testing / Testing activities and applications, Testing activities
  • ActivityInstrumentationTestCase2 class
    • about / The ActivityInstrumentationTestCase2 class
    • constructor / The constructor
    • setUp method / The setUp method
    • tearDown method / The tearDown method
  • ActivityInstrumentationTestCase2.getActivity() method / Creating the fixture
  • Activity Manager
    • URL / Instrumentation
  • ActivityMonitor inner class
    • about / The ActivityMonitor inner class
    • example / Example
  • ActivityTestCase class
    • about / The ActivityTestCase class
    • scrubClass method / The scrubClass method
  • Android
    • unit tests / Android unit tests
  • android-test-kit
    • URL / Testing with Espresso
  • android.test.mock subpackage
    • MockApplication class / Mock objects
    • MockContentProvider class / Mock objects
    • MockContentResolver class / Mock objects
    • MockContext class / Mock objects
    • MockCursor class / Mock objects
    • MockDialogInterface class / Mock objects
    • MockPackageManager class / Mock objects
    • MockResources class / Mock objects
  • Android applications
    • building manually, Gradle used / Building Android applications manually using Gradle
  • Android Emulator Plugin
    • about / Creating the jobs
  • Android Emulator plugin / Installing and configuring Jenkins
  • Android project
    • creating / Creating the Android project
    • package, exploring / Package explorer
    • test case, creating / Creating a test case
    • test annotations / Test annotations
    • tests, running / Running the tests
    • tests, debugging / Debugging tests
  • Android SDK
    • performance tests / Performance tests in Android SDK
  • Android Studio
    • support, for system tests / Android Studio and other IDE support
    • tests, running / Running all tests from Android Studio
  • AndroidTestCase base class
    • about / The AndroidTestCase base class
    • assertActivityRequiresPermission() method / The assertActivityRequiresPermission() method
    • assertWritingContentUriRequiresPermission() method / The assertWritingContentUriRequiresPermission() method
  • Android testing framework
    • about / Android testing framework
    • features / Android testing framework
    • instrumentation framework / Instrumentation
    • Gradle / Gradle
    • test targets / Test targets
  • annotations, tests
    • about / Test annotations
    • @SmallTest / Test annotations
    • @MediumTest / Test annotations
    • @LargeTest / Test annotations
    • @Smoke / Test annotations
    • @FlakyTest / Test annotations
    • @UIThreadTest / Test annotations
    • @Suppress / Test annotations
  • AOSP tests
    • URL / The BrowserProvider tests
  • applications
    • testing / Testing activities and applications
    • mocking / Mocking applications and preferences
    • RenamingMockContext class / The RenamingMockContext class
    • contexts, mocking / Mocking contexts
  • Assert-J
    • URL / Introducing Fest
  • assertActivityRequiresPermission() method
    • about / The assertActivityRequiresPermission() method
    • packageName parameter / Description
    • className parameter / Description
    • permission parameter / Description
    • example / Example
  • assertInsertQuery() method / The BrowserProvider tests
  • assertions
    • about / Assertions in depth
    • custom message / Custom messages
    • static imports / Static imports
    • assertAssignableFrom method / Even more assertions
    • assertContainsRegex method / Even more assertions
    • assertContainsInAnyOrder method / Even more assertions
    • assertContainsInOrder method / Even more assertions
    • assertEmpty method / Even more assertions
    • assertEquals method / Even more assertions
    • assertMatchesRegex method / Even more assertions
    • assertNotContainsRegex method / Even more assertions
    • assertNotEmpty method / Even more assertions
    • assertNotMatchesRegex method / Even more assertions
    • checkEqualsAndHashCodeMethods method / Even more assertions
  • assertLeftAligned method / View properties
  • assertOnScreen method / View properties
  • assertReadingContentUriRequiresPermission method
    • about / The assertReadingContentUriRequiresPermission method
    • uri / Description
    • uri parameter / Description
    • permission parameter / Description
    • example / Example
  • assertRightAligned method / View properties
  • assertWritingContentUriRequiresPermission() method
    • about / Description
    • uri parameter / Description
    • permission parameter / Description
    • example / Example
  • AVD
    • creating / Creating Android Virtual Devices
    • running, from command line / Running AVDs from the command line
    • headless emulator / Headless emulator
    • keyguard, disabling / Disabling the keyguard
    • services, cleaning up / Cleaning up
    • processes, cleaning up / Cleaning up
    • emulator, terminating / Terminating the emulator
    • speeding up, with HAXM / Speeding up your AVD with HAXM
    • alternatives / Alternatives to the AVD
  • AVD Manager
    • about / Creating Android Virtual Devices

B

  • Behavior-driven Development
    • about / Functional or acceptance tests
    • URL / Functional or acceptance tests
  • Behavior-driven Development (BDD)
    • Given / Given, When, and Then
    • When / Given, When, and Then
    • Then / Given, When, and Then
  • benchmarking
    • about / Microbenchmarks
  • BrowserProvider tests / The BrowserProvider tests
  • buttons, monkey_recorder.py
    • about / Record and playback

C

  • Calabash
    • URL / Functional or acceptance tests
  • Caliper
    • running / Running Caliper
  • Caliper microbenchmarks
    • about / Caliper microbenchmarks
    • URL / Caliper microbenchmarks
    • temperature converter, benchmarking / Benchmarking the temperature converter
  • code coverage
    • about / Code coverage
  • command line
    • tests, running / Running tests from the command line
  • command line, options
    • -r / Running tests from the command line
    • -e <NAME> <VALUE> / Running tests from the command line
    • -p <FILE> / Running tests from the command line
    • -w / Running tests from the command line
    • -e unit true / Running specific tests by category
    • -e func true / Running specific tests by category
    • -e perf true / Running specific tests by category
    • -e size {small | medium | large} / Running specific tests by category
    • -e annotation <annotation-name> / Running specific tests by category
    • debug / Other command-line options
    • package / Other command-line options
    • class / Other command-line options
    • coverage / Other command-line options
  • Compatibility Test Suite (CTS) / Android unit tests
  • content providers
    • testing / Testing files, databases, and content providers
  • contexts
    • mocking / Mocking contexts
  • continuous integration
    • with Jenkins / Continuous integration with Jenkins
  • custom message
    • about / Custom messages

D

  • Dalvik Debug Monitor Service (DDMS) / Using the Traceview and dmtracedump platform tools
  • Dalvik JIT compiler
    • about / Performance tests
  • Dalvik virtual machine
    • about / Test targets
    / Testing on the host's JVM
  • databases
    • testing / Testing files, databases, and content providers
  • demonstration application
    • creating / The demonstration application
  • Dependency Injection (DI) / Testing local and remote services
  • Device Pools
    • about / Introducing Fork
  • dmtracedump
    • using / Using the Traceview and dmtracedump platform tools, Dmtracedump
    • command-line arguments / Dmtracedump

E

  • EditNumber class / The EditNumber class
  • emulator
    • tests, running / Running from the emulator
    • terminating / Terminating the emulator
  • emulator configurations
    • about / Additional emulator configurations
    • network conditions, simulating / Simulating network conditions
  • Espresso
    • URL / Testing with Espresso
    • used, for testing outside in / Testing with Espresso
  • EvaluationDependsOn class / Installing Robolectric
  • exceptions
    • testing / Testing exceptions

F

  • Fest
    • URL / Static imports
    • about / Introducing Fest
  • files
    • testing / Testing files, databases, and content providers
  • FitNesse
    • URL / Functional or acceptance tests, FitNesse
    • about / FitNesse
    • running, from command line / Running FitNesse from the command line
    • TemperatureConverterTests subwiki, creating / Creating a TemperatureConverterTests subwiki
    • test systems / Adding the supporting test classes
  • fit test system / Adding the supporting test classes
  • Fork
    • about / Introducing Fork
  • functionality, adding
    • about / Adding functionality
    • temperature conversion / Temperature conversion
    • EditNumber class / The EditNumber class
    • TemperatureConverter unit tests / The TemperatureConverter unit tests
    • EditNumber tests / The EditNumber tests
    • TemperatureChangeWatcher class / The TemperatureChangeWatcher class
    • TemperatureConverter tests / More TemperatureConverter tests
    • InputFilter tests / The InputFilter tests
  • functional or acceptance tests
    • about / Functional or acceptance tests
    • example / Test case scenario
  • functional testing
    • about / Test scripting with monkeyrunner

G

  • Git
    • about / Git – the fast version control system
    • local Git repository, creating / Creating a local Git repository
  • Git plugin / Installing and configuring Jenkins
  • Given-When-Then vocabulary / GivWenZen
  • GivWenZen
    • about / GivWenZen
    • URL / GivWenZen
    • wiki URL / GivWenZen
    • test scenario, creating / Creating the test scenario
  • Google Gradle plugin
    • URL / Instrumentation
  • Gradle
    • URL / Android Studio and other IDE support, Building Android applications manually using Gradle
    • about / Gradle, Building Android applications manually using Gradle
    • used, for running tests / Running tests using Gradle
    • custom annotation, creating / Creating a custom annotation
    • performance tests, running / Running performance tests
    • dry run, of tests / Dry run
    • used, for building Android applications manually / Building Android applications manually using Gradle
    • tasks / Building Android applications manually using Gradle
  • Gradle Jacoco plugin
    • URL / Generating code coverage analysis report
  • Gradle plugin / Installing and configuring Jenkins
  • GraphViz
    • URL / Dmtracedump

H

  • HAXM
    • AVD, speeding up with / Speeding up your AVD with HAXM
  • headless emulator / Headless emulator

I

  • instrumentation
    • about / Instrumentation
    • ActivityMonitor inner class / The ActivityMonitor inner class
  • instrumentation framework
    • about / Instrumentation
  • InstrumentationTestCase class
    • about / The InstrumentationTestCase class
    • launchActivity method / The launchActivity and launchActivityWithIntent methods
    • launchActivityWithIntent method / The launchActivity and launchActivityWithIntent methods
    • sendKeys method / The sendKeys and sendRepeatedKeys methods
    • sendRepeatedKeys method / The sendKeys and sendRepeatedKeys methods
    • runTestOnUiThread helper method / The runTestOnUiThread helper method
  • integration tests
    • about / Integration tests
    • UI tests / UI tests
  • IsolatedContext class
    • about / The IsolatedContext class

J

  • Jacoco
    • URL / Why, what, how, and when to test?
    • about / Jacoco features
    • features / Jacoco features
  • Jacoco coverage report
    • about / Generating code coverage analysis report
  • Java testing framework
    • about / Java testing framework
  • jbehave
    • about / Functional or acceptance tests
    • URL / Functional or acceptance tests
  • Jenkins
    • about / Continuous integration with Jenkins
    • installing / Installing and configuring Jenkins
    • configuring / Installing and configuring Jenkins
    • URL / Installing and configuring Jenkins
    • jobs, creating / Creating the jobs
    • Android test results, obtaining / Obtaining Android test results
  • JUnit plugin / Installing and configuring Jenkins
  • Jython
    • URL / Test scripting with monkeyrunner

K

  • keyguard
    • disabling / Disabling the keyguard

L

  • LaunchPerformanceBase instrumentation
    • creating / Creating the LaunchPerformanceBase instrumentation
  • libraries
    • using / Using libraries in test projects
  • local and remote services
    • testing / Testing local and remote services

M

  • macrobenchmarks / Microbenchmarks
  • memory usage
    • testing for / Testing for memory usage
  • microbenchmarks
    • about / Microbenchmarks
    • Caliper / Caliper microbenchmarks
  • MockContentResolver class
    • about / The MockContentResolver class
  • MockContext class
    • about / An overview of MockContext
  • Mockito
    • URL / Extensive use of mock objects
    • about / Extensive use of mock objects
    • benefits / Extensive use of mock objects
    • usage example / Mockito usage example
  • mock objects
    • about / Mock objects, Mock objects
    • reference link / Mock objects
    • MockContext class / An overview of MockContext
    • IsolatedContext class / The IsolatedContext class
    • alternate route, providing to file / Alternate route to file and database operations
    • alternate route, providing to database operations / Alternate route to file and database operations
    • MockContentResolver class / The MockContentResolver class
    • using / Extensive use of mock objects
    • libraries, importing / Importing libraries
    • Mockito usage example / Mockito usage example
    • EditNumber filter tests / The EditNumber filter tests
  • monkey application
    • running / Running monkey
    • URL / Running monkey
    • client-server monkey / The client-server monkey
  • monkeyrunner tool
    • used, for test scripting with / Test scripting with monkeyrunner
    • features / Test scripting with monkeyrunner
    • test screenshots, obtaining / Getting test screenshots
    • record / Record and playback
    • playback / Record and playback
  • MoreAsserts class
    • about / Even more assertions

N

  • network conditions
    • simulating / Simulating network conditions

O

  • options, for latency
    • about / Simulating network conditions
  • options, for network speed
    • about / Simulating network conditions
  • options, New Item screen
    • about / Creating the jobs

P

  • parsers, testing
    • about / Testing parsers
    • Android assets / Android assets
  • parser test
    • about / The parser test
  • performance tests
    • about / Performance tests
  • performance tests, Android SDK
    • about / Performance tests in Android SDK
    • launching / Launching the performance test
    • LaunchPerformanceBase instrumentation / Creating the LaunchPerformanceBase instrumentation
    • TemperatureConverterActivityLaunchPerformance class, creating / Creating the TemperatureConverterActivityLaunchPerformance class
    • running / Running the tests
  • preferences
    • mocking / Mocking applications and preferences
  • ProviderTestCase2<T> class
    • about / The ProviderTestCase2<T> class
    • constructor / The constructor
    • example / An example

R

  • regression testing / Test scripting with monkeyrunner
  • regular expressions
    • reference link / Even more assertions
  • RenamingMockContext class / The RenamingMockContext class
  • RenamingMockContext method / Mocking contexts
  • Robolectric
    • about / Introducing Robolectric
    • URL / Introducing Robolectric
    • installing / Installing Robolectric
    • resources, adding / Adding resources
    • tests, writing / Writing some tests
    • shadows / Google's march on shadows
  • Robotium
    • about / Introducing Robotium
    • URL / Introducing Robotium
    • adding, to project / Adding Robotium
    • test cases, creating / Creating the test cases

S

  • SCM
    • about / Git – the fast version control system
  • ServiceTestCase<T> class
    • about / The ServiceTestCase<T>
    • constructor / The constructor
  • setContext() method / Mocking contexts
  • setUp() method
    • about / The setUp() method
    / Testing activities
  • SetUp pages / Creating the test scenario
  • slim test system / Adding the supporting test classes
  • Spoon
    • about / Introducing Spoon
    • URL / Introducing Spoon
  • static imports
    • about / Static imports
  • system tests
    • about / System tests
    • types / System tests
    • Android Studio support / Android Studio and other IDE support
    • other IDE support / Android Studio and other IDE support

T

  • TDD
    • about / Getting started with TDD
    • advantages / Getting started with TDD, Advantages of TDD
    • test case, writing / Writing a test case
    • tests, running / Running all tests
    • code, refactoring / Refactoring the code
    • requisites / Understanding the requirements
  • tearDown() method
    • about / The tearDown() method
  • TemperatureChangeWatcher class / The TemperatureChangeWatcher class
  • temperature converter
    • benchmarking / Benchmarking the temperature converter
  • TemperatureConverterActivityLaunchPerformance class
    • creating / Creating the TemperatureConverterActivityLaunchPerformance class
  • TemperatureConverterActivityTests class
    • creating / Creating the TemperatureConverterActivityTests class
    • fixture, creating / Creating the fixture
    • user interface, creating / Creating the user interface
    • user interface components existence, testing / Testing the existence of the user interface components
    • IDs, defining / Getting the IDs defined
    • test requisites, translating / Translating requirements to tests
    • screen layout / Screen layout
  • temperature converter application
    • creating / Creating a sample project – the temperature converter, Creating the project
    • requisites / List of requirements
    • user interface concept design / User interface concept design
    • Java module, creating / Creating a Java module
    • viewing / Viewing our final application
  • TemperatureConverter class / The TemperatureConverter unit tests
  • Temperature Converter code coverage
    • about / Temperature converter code coverage
    • code coverage analysis report, generating / Generating code coverage analysis report
    • exceptions, covering / Covering the exceptions
  • TemperatureConverterTests subwiki
    • creating / Creating a TemperatureConverterTests subwiki
    • child pages, adding / Adding child pages to the subwiki
    • acceptance test fixture, adding / Adding the acceptance test fixture
    • supporting test classes, adding / Adding the supporting test classes
  • testAccessAnotherAppsPrivateDataIsNotPossible() method / Android unit tests
  • test case
    • creating / Creating a test case
  • TestCase base class
    • about / The TestCase base class
    • default constructor / The default constructor
    • constructor, naming / The given name constructor
    • setName() method / The setName() method
  • test cases, Robotium
    • creating / Creating the test cases
    • testFahrenheitToCelsiusConversion() test / The testFahrenheitToCelsiusConversion() test
    • testing, between activities / Testing between Activities
  • testHasDefaultBookmarks() method / The BrowserProvider tests
  • Test History / Adding the supporting test classes
  • testing, on JVM
    • about / Testing on the host's JVM
    • performance gain, comparing / Comparing the performance gain
    • Android, adding / Adding Android to the picture
  • testing tactics
    • code coverage / Code coverage
    • Temperature Converter code coverage / Temperature converter code coverage
    • Robotium / Introducing Robotium
    • test, running on JVM / Testing on the host's JVM
    • Robolectric / Introducing Robolectric
    • Fest / Introducing Fest
    • Spoon / Introducing Spoon
    • Fork / Introducing Fork
  • testPartialFirstTitleWord() method / The BrowserProvider tests
  • test requisites, translating
    • empty fields / Empty fields
    • View properties / View properties
  • tests
    • advantages / Why, what, how, and when to test?
    • considerations / What to test
    • types / Types of tests
    • running / Running the tests
    • running, from Android Studio / Running all tests from Android Studio
    • single test case, running from ASide / Running a single test case from your IDE
    • running, from emulator / Running from the emulator
    • running, from command line / Running tests from the command line
    • all tests, running / Running all tests
    • running, from specific test case / Running tests from a specific test case
    • specific test, running by name / Running a specific test by name
    • specific tests, running by category / Running specific tests by category
    • running, Gradle used / Running tests using Gradle
    • debugging / Debugging tests
  • tests, considerations
    • activity life cycle events / Activity lifecycle events
    • database and file system operations / Database and filesystem operations
    • physical characteristics, of device / Physical characteristics of the device
  • tests, types
    • unit tests / Unit tests
    • integration tests / Integration tests
    • functional or acceptance tests / Functional or acceptance tests
    • performance tests / Performance tests
    • system tests / System tests
  • TestSuiteBuilder.FailedToCreateTests class
    • about / The TestSuiteBuilder.FailedToCreateTests class
  • test systems, FitNesse
    • fit / Adding the supporting test classes
    • slim / Adding the supporting test classes
    • URL / Adding the supporting test classes
  • test targets
    • about / Test targets
  • TextWatcher
    • about / The TemperatureChangeWatcher class
  • timing logger
    • about / Timing logger
  • touch mode, Android UI
    • reference link / The setUp method
  • TouchUtils class
    • about / The TouchUtils class
  • Traceview
    • using / Using the Traceview and dmtracedump platform tools

U

  • UI tests
    • about / UI tests
  • unit tests
    • about / Unit tests
    • setUp() method / The setUp() method
    • tearDown() method / The tearDown() method
    • execution, outside of test method / Outside the test method
    • execution, inside of test method / Inside the test method
    • assert* methods / Inside the test method
    • mock objects / Mock objects

V

  • VCS
    • about / Git – the fast version control system
  • View assertions
    • about / View assertions
    • reference link / View assertions
    • assertBaselineAligned method / View assertions
    • assertBottomAligned method / View assertions
    • assertGroupContains method / View assertions
    • assertGroupIntegrity method / View assertions
    • assertGroupNotContains method / View assertions
    • assertHasScreenCoordinates method / View assertions
    • assertHorizontalCenterAligned method / View assertions
    • assertLeftAligned method / View assertions
    • assertOffScreenAbove method / View assertions
    • assertOffScreenBelow method / View assertions
    • assertOnScreen method / View assertions
    • assertRightAligned method / View assertions
    • assertTopAligned method / View assertions
    • assertVerticalCenterAligned method / View assertions
  • views
    • testing, in isolation / Testing views in isolation

W

  • wiki
    • URL / Creating a TemperatureConverterTests subwiki

Y

  • Ye Olde Logge method
    • about / Ye Olde Logge method