Libro – Android Application Testing Guide


Contenido del libro ‘Android Application Testing Guide’  (Android Testing) y el enlace al website

Android Testing, Testing Guide

El autor de este libro referido al Android Testing es: Diego Torres Milano
Diego Torres Milano has been involved with the Android platform since its inception, when he started exploring and researching the platform’s possibilities, mainly in the areas of User Interfaces, Unit and Acceptance Tests, and Test Driven Development. This is reflected from a number of articles published mainly on his personal blog ( and his participation as a lecturer in various conferences and courses such as Mobile Dev Camp 2008 in Amsterdam (Netherlands), and Japan Linux Symposium 2009 (Tokyo), Droidcon 2009 (London), Skillsmatter 2009 (London). He has also authored Android training courses delivered to various companies in Europe. Diego is the founder and developer of several Open Source projects, mainly CULT Universal Linux Thin Project, Autoglade, Gnome-tla, JGlade, and has been contributing to various Linux distributions such as RedHat, Fedora, and Ubuntu. Apart from giving presentations in Linux World, LinuxTag, GUADEC ES, University of Buenos Aires, etc, Diego has been developing software, participating in Open Source projects and advising companies worldwide for more than 15 years.

Table of Contents

Chapter 1: Getting Started with Testing
Chapter 2: Testing on Android
Chapter 3: Building Blocks on the Android SDK
Chapter 4: Test Driven Development
Chapter 5: Android Testing Environment
Chapter 6: Behavior Driven Development
Chapter 7: Testing Recipes
Chapter 8: Continuous Integration
Chapter 9: Performance Testing and Profiling
Chapter 10: Alternative Testing Tactics


Chapter 1: Getting Started with Testing

  • Brief history
  • Software bugs
  • How bugs severely affect your projects
  • Why, what, how, and when to test
  • What to test
  • Activity lifecycle events
  • Database and filesystem operations
  • Physical characteristics of the device
  • Types of tests
  • Unit tests
  • The test fixture
  • The setUp() method
  • The tearDown() method
  • Test preconditions
  • The actual tests
  • Integration tests
  • Functional or acceptance tests
  • Test case scenario
  • Performance tests
  • System tests
  • Android testing framework
  • Instrumentation
  • Test targets
  • Summary

Chapter 2: Testing on Android

  • JUnit
  • Creating the Android main project
  • Creating the Android test project
  • Package explorer
  • Creating a test case
  • Special methods
  • Test annotations
  • Running the tests
  • Running all tests from Eclipse
  • Running a single test case from Eclipse
  • Running from the emulator
  • Running tests from the command line
  • Running all tests
  • Running tests from a specific test case
  • Running a specific test by name
  • Running specific tests by category
  • Running performance tests
  • Dry run
  • Debugging tests
  • Other command-line options
  • Summary

Chapter 3: Building Blocks on the Android SDK

  • The demonstration application
  • Assertions in depth
  • Custom messages
  • Static imports
  • View assertions
  • Even more assertions
  • The TouchUtils class
  • Mock Objects
  • MockContext overview
  • The IsolatedContext class
  • Alternate route to file and database operations
  • The MockContentResolver class
  • The TestCase base class
  • The no-argument constructor
  • The given name constructor
  • The setName() method
  • The AndroidTestCase base class
  • The assertActivityRequiresPermission() method
  • Description
  • Example
  • The assertReadingContentUriRequiresPermission method
  • Description
  • Example
  • The assertWritingContentUriRequiresPermission() method
  • Description
  • Example
  • Instrumentation
  • The ActivityMonitor inner class
  • Example
  • The InstrumentationTestCase class
  • The launchActivity and launchActivityWithIntent method
  • The sendKeys and sendRepeatedKeys methods
  • The runTestOnUiThread helper method
  • The ActivityTestCase class
  • The scrubClass method
  • The ActivityInstrumentationTestCase2 class
  • The constructor
  • The setUp method
  • The tearDown method
  • The testPreconditions method
  • The ProviderTestCase2<T> class
  • The constructor
  • Example
  • The ServiceTestCase<T>
  • The constructor
  • The TestSuiteBuilder.FailedToCreateTests class
  • Using external libraries in test projects
  • Summary

Chapter 4: Test Driven Development

  • Getting started with TDD
  • Writing a test case
  • Running all tests
  • Refactoring the code
  • What is the advantage?
  • Understanding the requirements
  • Creating a sample project—the Temperature Converter
  • The list of requirements
  • User interface concept design
  • Creating the projects
  • Creating the TemperatureConverterActivityTests project
  • Creating the fixture
  • Test preconditions
  • Creating the user interface
  • Testing the existence of the user interface components
  • Getting the IDs defined
  • Translating requirements to tests
  • Empty fields
  • View properties
  • Screen layout
  • Adding functionality
  • Temperature conversion
  • The EditNumber class
  • TemperatureConverter unit tests
  • The EditNumber tests
  • The TemperatureChangeWatcher class
  • More TemperatureConverter tests
  • The InputFilter tests
  • Viewing our final application
  • Summary

Chapter 5: Android Testing Environment

  • Creating Android Virtual Devices
  • Running AVDs from the command line
  • Headless emulator
  • Disabling the keyguard
  • Cleaning up
  • Terminating the emulator
  • Additional emulator configurations
  • Simulating network conditions
  • Additional qemu options
  • Running monkey
  • Client-server monkey
  • Test scripting with monkeyrunner
  • Getting test screenshots
  • Record and playback
  • Summary

Chapter 6: Behavior Driven Development

  • Brief history
  • Given, when, then
  • FitNesse
  • Running FitNesse from the command line
  • Creating a TemperatureConverterTests subwiki
  • Adding child pages to the subwiki
  • Adding the acceptance test fixture
  • Adding the supporting test classes
  • GivWenZen
  • Creating the test scenario
  • Summary

Chapter 7: Testing Recipes

  • Android Unit tests
  • Testing activities and applications
  • Applications and preferences
  • The RenamingMockContext class
  • The TemperatureConverterApplicationTests class
  • Testing activities
  • Testing files, databases, and ContentProviders
  • The BrowserProvider tests
  • Testing exceptions
  • Testing local and remote services
  • Extensive use of mock objects
  • Importing libraries
  • The testTextChanged test
  • Introducing Hamcrest
  • Hamcrest matchers
  • The hasToString matcher
  • Testing Views in isolation
  • Testing parsers
  • Android assets
  • The parser activity
  • The parser test
  • Testing for memory leaks
  • Summary

Chapter 8: Continuous Integration

  • Building Android applications manually using Ant
  • Git—the fast version control system
  • Creating a local git repository
  • Continuous Integration with Hudson
  • Installing and configuring Hudson
  • Creating the jobs
  • Obtaining Android test results
  • Summary

Chapter 9: Performance Testing and Profiling

  • Ye Olde Logge method
  • Performance tests in Android SDK
  • Launching the performance test
  • Creating the LaunchPerformanceBase instrumentation
  • Creating the TemperatureConverterActivityLaunchPerformance class
  • Running the tests
  • Using the Traceview and dmtracedump platform tools
  • Microbenchmarks
  • Caliper microbenchmarks
  • Creating the TemperatureConverterBenchmark project
  • Running caliper
  • Summary

Chapter 10: Alternative Testing Tactics

  • Building Android from source
  • Code coverage
  • EMMA features
  • System requirements
  • Downloading the Android source code
  • Installing repo
  • Creating the working copy
  • The Building Steps
  • TemperatureConverter code coverage
  • Generating code coverage analysis report
  • Covering the restoring the instance state
  • Covering the exceptions
  • Bypassing access restrictions
  • Covering the options menu
  • The undocumented Ant coverage target
  • Introducing Robotium
  • Downloading Robotium
  • Configuring the project
  • Creating the test cases
  • The testFahrenheitToCelsiusConversion() test
  • The testOnCreateOptionsMenu() revisited
  • Testing on host’s JVM
  • Creating the TemperatureConverterJVMTest project
  • Comparing the performance gain
  • Adding Android to the picture
  • Introducing Robolectric
  • Installing Robolectric
  • Creating a new Java project
  • Writing some tests
  • Summary


Para acceder al libro en Amazon, pulsar AQUI

Gus Terrera

Apasionado por el agile testing y la ia.

Deja una respuesta