Subscribe

Google I/O 2023 is coming May 10th! Register now!

Adapting Android

Testing

The following table includes a set of test cases that you can use in your own test plan. The test cases cover a wide array of common scenarios that Android apps should be prepared for if they are expected to run on ChromeOS devices.

Test type Test case App scenario Success case
Find app in Play Store All App exists in Play Store, accessed from a Chromebook (no issue if working as intended). NOTE: Flags in your manifest may cause the app to be unavailable, depending on the hardware in the ChromeOS device. This test is best run on clamshell devices, as they most accurately represent the hardware profile of most devices.
Install app All App installs on the Chromebook with no issues
Clamshell: Launch app All App opens without crashing, hanging, or throwing ANR (app not responding). App content is upright.
Window Management Clamshell: Resize window All If the window resize button is available, resize the window. App doesn’t crash / hang / ANR. App content scales. Try this in various pages of the app. The active cursor should stay in place and page content should not change (except to adjust to larger screen layout).
Window Management Clamshell: Free form resizing All Try dragging the corner of the window to resize the window. App doesn’t crash / hang / ANR. App content scales. Try this in various pages of the app. The active cursor should stay in place and page content should not change (except to adjust to larger screen layout).
Window Management Clamshell: Reopen app All If the window resize button is available, resize the window and close the app, then reopen. App should launch in the expected window size and orientation (last activity since opened).
Window Management Clamshell: Minimise & restore All Minimise and restore the app. App doesn’t crash / hang / ANR, and content reappears unchanged.
Window Management Clamshell: Fullscreen app All The full screen key on the ChromeOS keyboard should put the app in full screen (i.e. no top bar). App doesn’t crash / hang / ANR. App content scales
Mouse + Trackpad Clamshell: Trackpad = Click All Use trackpad to click on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Mouse + Trackpad Clamshell: Trackpad = Right Click All Use trackpad to right click (two finger tap) on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Mouse + Trackpad Clamshell: Trackpad = Scroll All In a scrollable area of the app (e.g. a list), use two finger scroll action on trackpad. App content should scroll.
Mouse + Trackpad Clamshell: Trackpad = Zoom All In a zoomable area of the app (e.g. an image or a map), use the trackpad to zoom. App content should zoom.
Mouse + Trackpad Clamshell: Mouse = Click All Using a mouse device, click on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Mouse + Trackpad Clamshell: Mouse = Right Click All Using a mouse device, right click on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Mouse + Trackpad Clamshell: Mouse = Scroll All In a scrollable area of the app (e.g. a list), use the scroll wheel. App content should scroll.
Mouse + Trackpad Clamshell: Mouse = Scroll to zoom All In a zoomable area of the app (e.g. an image or a map), use the scroll wheel. App content should zoom.
Mouse + Trackpad Clamshell: Touchscreen = Click All Using your finger, push on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Mouse + Trackpad Clamshell: Touchscreen = Right Click All Using your finger, long hold on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Mouse + Trackpad Clamshell: Touchscreen = Scroll All In a scrollable area of the app (e.g. a list), use the one or two finger scroll action. App content should scroll.
Mouse + Trackpad Clamshell: Touchscreen = Zoom All In a zoomable area of the app (e.g. an image or a map), use fingers to zoom on touchscreen. App content should zoom.
Stylus Clamshell: Stylus = Click All Using a stylus, click on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Stylus Clamshell: Stylus = Scroll All In a scrollable area of the app (e.g. a list), use the stylus swipe/scroll action. App content should scroll.
Input Clamshell: Physical Keyboard All While in clamshell mode, click on a text input box, type text with the keyboard. Onscreen keyboard should not show. Typed text should show in the input box with no lag.
Buy in-app content IAP enabled While signed in, try to purchase some in-app content. Content should appear in app as appropriate. Purchase should appear in Play purchase history.
Suspend/Resume All While app is running, close Chromebook. After 5-10 seconds, reopen Chromebook. App should connect back in the same state.
Wi-Fi connectivity All Turn the wifi off. Observe that the app complains about lack of internet connection. Turn WiFi back on. Observe that the app connects back to internet and is functional.
Window Management Transitions between clamshell and touchview All Open an app in clamshell mode and then change the device to touchview mode. The window size and orientation should update as expected.
Touchview: Launch app All App opens without crashing, hanging, or throwing ANR (app not responding). App content is upright. Try this in both landscape and portrait.
Window Management Touchview: Resize window All If the window resize button is available, resize the window. App doesn’t crash / hang / ANR. App content scales. Try this in various pages of the app. The active cursor should stay in place and page content should not change (except to adjust to larger screen layout). Try this in both landscape and portrait.
Window Management Touchview: Reopen app All If the window resize button is available, resize the window and close the app, then reopen. App should launch in the expected window size and orientation (last activity since opened). Try this in both landscape and portrait mode.
Window Management Touchview: Minimise & restore All Minimise and restore the app. App doesn’t crash / hang / ANR, and content reappears unchanged.
Window Management Touchview: Rotate device All While in tablet mode, rotate the device 90 degrees. App should either not rotate OR it does rotate and window and content resizes appropriately. The active cursor/page should stay in place.
Input Touchview: Touchscreen = Click All Using your finger, push on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Input Touchview: Touchscreen = Right Click All Using your finger, long hold on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Input Touchview: Touchscreen = Scroll All In a scrollable area of the app (e.g. a list), use the one or two finger scroll action. App content should scroll.
Input Touchview: Touchscreen = Zoom All In a zoomable area of the app (e.g. an image or a map), use fingers to zoom content. App content should zoom.
Input Touchview: Stylus = Click All Using a stylus, click on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Input Touchview: Stylus = Scroll All In a scrollable area of the app (e.g. a list), use the stylus swipe/scroll action. App content should scroll.
Input Touchview: Virtual Keyboard All While in tablet mode, tap on an area in the app that takes text input and type text. Onscreen keyboard and text should show as expected. Please try in portrait and landscape orientation (and the transitions in between).
Camera Touchview: Taking a photo Communication App opens the camera and the preview images are scaled and oriented correctly. The resulting picture taken is scaled and oriented correctly. Try this in both portrait and landscape mode.
Touchview: Recording a video Communication App opens the camera and the preview images are scaled and oriented correctly. Starting the recording, the preview is scaled and oriented correctly. Playback is smooth and performs as expected (no lag in audio/video, video is at speed in which it was recorded at). Try this in both portrait and landscape mode.
Window Management Touchview: Changing orientation while camera is on Communication Open the app’s camera. Rotate the device 90 degrees. App should not crash, hang, ANR (app not responding). App should either not rotate OR it does rotate and window and content resizes appropriately.
Create content Content creation Output (drawing, text, audio) records in the app as expected (no lags)
Save content Content creation App saves the content (either locally or in the cloud), and content is recreated faithfully when reopened
Share content App shares content with 3rd party. 3rd party can receive and open content
1:1 communication Communication Send one of every possible message type to another user (e.g. email, text message, phone call, video call etc). Verify transmission.
1:many communication Communication Post one of every possible type to a group (e.g. newsfeed post, forum post, chat group). Verify transmission.
Camera Clamshell: Taking a photo Communication App opens the camera and the preview images are scaled and oriented correctly. The resulting picture taken is scaled and oriented correctly.
Camera Clamshell: Recording a video Communication App opens the camera and the preview images are scaled and oriented correctly. Starting the recording, the preview is scaled and oriented correctly. Playback is smooth and performs as expected (no lag in audio/video, video is at speed in which it was recorded at).
Camera Clamshell: Camera retries after app resumes Communication Open the app’s camera. Close the lid of the device. Open the lid of the device. The app should now continue to allow the user to take a photo, or be able to allow the user to retry to take a photo without restarting the app.
Input Touch to draw Drawing / Handwriting Use a finger to input drawing strokes into the app. Strokes should appear on canvas as expected with no lag.
Stylus Stylus to draw Drawing / Handwriting Use the stylus to input drawing strokes into the app. Strokes should appear on canvas as expected, with no lag
Video Playback Communication / Social & Media Play a video within the app. The playback should be smooth with no lags. Sound should also be clear
Sound volume Communication / Social & Media If the app has volume controls, try changing it while media (with sound) plays. The volume should adjust accordingly.
Tilt Motion Games Tilt the device while playing a motion-sensing game. The app should respond accordingly.
Location finding Weather / Maps / Navigation App should be able to find general location of user (even without GPS hardware)
Other app specific functionality not captured All Use this only if one of the above actions test cases does not fit
UI Large screen layout All If the app’s UI should take advantage of the extra real estate of the screen (content should take up the full width of the screen on the device and/or content should be appropriately sized)
Mouse + Trackpad Clamshell: Trackpad = Drag and drop All Drop a piece of content (e.g. an image) into an area of the app where this might make sense using trackpad. Dropped object should execute (e.g. upload).
Mouse + Trackpad Clamshell: Mouse = Drag and drop All Using a mouse, drop a piece of content (e.g. an image) into an area of the app where this might make sense. Dropped object should execute (e.g. upload).
Input Clamshell: Touchscreen = Drag and drop All Using your finger, drop a piece of content (e.g. an image) into an area of the app where this might make sense. Dropped object should execute (e.g. upload).
Stylus Clamshell: Stylus = Drag and drop All Using the stylus, drop a piece of content (e.g. an image) into an area of the app where this might make sense. Dropped object should execute (e.g. upload).
Keboard Shorcuts + Nav Clamshell: Special keys: arrow All The arrow keys on the ChromeOS keyboard should work exactly as expected within the app
Keboard Shorcuts + Nav Clamshell: Special keys: tab All The tab key on the ChromeOS keyboard should work exactly as expected
Keboard Shorcuts + Nav Clamshell: Special keys: cut and copy All In a text input box (e.g. message input, high score name), select some existing text. Cut with CTRL+X. Paste into another app with CTRL+V. Retest with Copy instead of Cut.
Keboard Shorcuts + Nav Clamshell: Special keys: ESC key All The ESC key corresponds to closing active window or go back to the previous page.
Keboard Shorcuts + Nav Clamshell: Special keys: enter key All Pressing Enter will trigger the selected button, or Pressing Enter while editing an input field in a form with multiple fields, submits the form.
Keboard Shorcuts + Nav Clamshell: Special keys: enter to send All In a text input box (e.g. message input, high score name), input some text, then hit enter. Text should be submitted to the app.
Keboard Shorcuts + Nav Clamshell: Special keys: app hot keys All Try pressing any commonly used keyboard shortcuts for the app. The app should respond as expected.
Keboard Shorcuts + Nav Clamshell: Special keys: back All The back key on the ChromeOS keyboard should work exactly as the back button on Android.
Keboard Shorcuts + Nav Clamshell: Special keys: refresh All Head to any area in the app with live/perishable content. The refresh key on the CrOS keyboard should refresh the view.
Keboard Shorcuts + Nav Clamshell: Special keys: dock window All Use ALT+[ or ALT+] to dock the app to one side of the screen. App should dock, similar to behaviour of Chrome browser.
Desktop Functionality Offline mode All Turn the wifi off from the settings menu. Try to use a feature of the app that is available offline. Observe if the offline feature is functional.
Input Touchview: Touchscreen = Drag and drop All Using your finger, drop a piece of content (e.g. an image) into an area of the app where this might make sense. Dropped object should execute (e.g. upload).
Stylus Touchview: Stylus = Drag and drop All Using the stylus, drop a piece of content (e.g. an image) into an area of the app where this might make sense. Dropped object should execute (e.g. upload).
Stylus Stylus pressure Drawing / Handwriting Use the stylus to input drawing strokes or erasing drawing strokes of various pressure sensitivity. Strokes should appear on canvas with variable weight as expected.
Stylus Stylus erase Drawing / Handwriting Select the erase option and use the stylus to erase parts of a drawing. Markings should disappear as expected. Important for drawing apps, but note taking apps are typically exempt from this
Stylus Stylus only (reject finger) Drawing / Handwriting Select the option to be in “stylus mode” only. Try drawing using the stylus and then using the finger. The canvas should only have markings when using the stylus, and not when using the finger.
Stylus Stylus touch cancel Drawing / Handwriting While using stylus to draw, place palm against the touchscreen. No additional markings should appear on canvas due to hand being placed there (palm rejection)
Desktop Functionality Multi-Tasking function Background apps Open app, engage function, open any other app. App continues background function (e.g. background audio, stopwatch)