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 Chrome OS devices.

Test typeTest caseApp scenarioSuccess case
Find app in Play StoreAllApp exists in Play Store, accessed from a Chromebook (no issue if working as intended). NOTE: Flags in your manifestmay cause the app to be unavailable, depending on the hardware in the Chrome OS device. This test is best run on clamshell devices, as they most accurately represent the hardware profile of most devices.
Install appAllApp installs on the Chromebook with no issues
Clamshell: Launch appAllApp opens without crashing, hanging, or throwing ANR (app not responding). App content is upright.
Window ManagementClamshell: Resize windowAllIf 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 ManagementClamshell: Free form resizingAllTry 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 ManagementClamshell: Reopen appAllIf 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 ManagementClamshell: Minimise & restoreAllMinimise and restore the app. App doesn’t crash / hang / ANR, and content reappears unchanged.
Window ManagementClamshell: Fullscreen appAllThe full screen key on the Chrome OS keyboard should put the app in full screen (i.e. no top bar). App doesn’t crash / hang / ANR. App content scales
Mouse + TrackpadClamshell: Trackpad = ClickAllUse trackpad to click on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Mouse + TrackpadClamshell: Trackpad = Right ClickAllUse 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 + TrackpadClamshell: Trackpad = ScrollAllIn a scrollable area of the app (e.g. a list), use two finger scroll action on trackpad. App content should scroll.
Mouse + TrackpadClamshell: Trackpad = ZoomAllIn a zoomable area of the app (e.g. an image or a map), use the trackpad to zoom. App content should zoom.
Mouse + TrackpadClamshell: Mouse = ClickAllUsing 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 + TrackpadClamshell: Mouse = Right ClickAllUsing 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 + TrackpadClamshell: Mouse = ScrollAllIn a scrollable area of the app (e.g. a list), use the scroll wheel. App content should scroll.
Mouse + TrackpadClamshell: Mouse = Scroll to zoomAllIn a zoomable area of the app (e.g. an image or a map), use the scroll wheel. App content should zoom.
Mouse + TrackpadClamshell: Touchscreen = ClickAllUsing your finger, push on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
Mouse + TrackpadClamshell: Touchscreen = Right ClickAllUsing 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 + TrackpadClamshell: Touchscreen = ScrollAllIn a scrollable area of the app (e.g. a list), use the one or two finger scroll action. App content should scroll.
Mouse + TrackpadClamshell: Touchscreen = ZoomAllIn a zoomable area of the app (e.g. an image or a map), use fingers to zoom on touchscreen. App content should zoom.
StylusClamshell: Stylus = ClickAllUsing a stylus, click on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
StylusClamshell: Stylus = ScrollAllIn a scrollable area of the app (e.g. a list), use the stylus swipe/scroll action. App content should scroll.
InputClamshell: Physical KeyboardAllWhile 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 contentIAP enabledWhile signed in, try to purchase some in-app content. Content should appear in app as appropriate. Purchase should appear in Play purchase history.
Suspend/ResumeAllWhile app is running, close Chromebook. After 5-10 seconds, reopen Chromebook. App should connect back in the same state.
Wi-Fi connectivityAllTurn 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 ManagementTransitions between clamshell and touchviewAllOpen an app in clamshell mode and then change the device to touchview mode. The window size and orientation should update as expected.
Touchview: Launch appAllApp opens without crashing, hanging, or throwing ANR (app not responding). App content is upright. Try this in both landscape and portrait.
Window ManagementTouchview: Resize windowAllIf 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 ManagementTouchview: Reopen appAllIf 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 ManagementTouchview: Minimise & restoreAllMinimise and restore the app. App doesn’t crash / hang / ANR, and content reappears unchanged.
Window ManagementTouchview: Rotate deviceAllWhile 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.
InputTouchview: Touchscreen = ClickAllUsing your finger, push on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
InputTouchview: Touchscreen = Right ClickAllUsing your finger, long hold on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
InputTouchview: Touchscreen = ScrollAllIn a scrollable area of the app (e.g. a list), use the one or two finger scroll action. App content should scroll.
InputTouchview: Touchscreen = ZoomAllIn a zoomable area of the app (e.g. an image or a map), use fingers to zoom content. App content should zoom.
InputTouchview: Stylus = ClickAllUsing a stylus, click on a touch control. App should respond as if there was a touch in precisely this location, with no lag.
InputTouchview: Stylus = ScrollAllIn a scrollable area of the app (e.g. a list), use the stylus swipe/scroll action. App content should scroll.
InputTouchview: Virtual KeyboardAllWhile 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).
CameraTouchview: Taking a photoCommunicationApp 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 videoCommunicationApp 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 ManagementTouchview: Changing orientation while camera is onCommunicationOpen 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 contentContent creationOutput (drawing, text, audio) records in the app as expected (no lags)
Save contentContent creationApp saves the content (either locally or in the cloud), and content is recreated faithfully when reopened
Share contentApp shares content with 3rd party. 3rd party can receive and open content
1:1 communicationCommunicationSend one of every possible message type to another user (e.g. email, text message, phone call, video call etc). Verify transmission.
1:many communicationCommunicationPost one of every possible type to a group (e.g. newsfeed post, forum post, chat group). Verify transmission.
CameraClamshell: Taking a photoCommunicationApp opens the camera and the preview images are scaled and oriented correctly. The resulting picture taken is scaled and oriented correctly.
CameraClamshell: Recording a videoCommunicationApp 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).
CameraClamshell: Camera retries after app resumesCommunicationOpen 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.
InputTouch to drawDrawing / HandwritingUse a finger to input drawing strokes into the app. Strokes should appear on canvas as expected with no lag.
StylusStylus to drawDrawing / HandwritingUse the stylus to input drawing strokes into the app. Strokes should appear on canvas as expected, with no lag
Video PlaybackCommunication / Social & MediaPlay a video within the app. The playback should be smooth with no lags. Sound should also be clear
Sound volumeCommunication / Social & MediaIf the app has volume controls, try changing it while media (with sound) plays. The volume should adjust accordingly.
Tilt MotionGamesTilt the device while playing a motion-sensing game. The app should respond accordingly.
Location findingWeather / Maps / NavigationApp should be able to find general location of user (even without GPS hardware)
Other app specific functionality not capturedAllUse this only if one of the above actions test cases does not fit
UILarge screen layoutAllIf 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 + TrackpadClamshell: Trackpad = Drag and dropAllDrop 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 + TrackpadClamshell: Mouse = Drag and dropAllUsing 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).
InputClamshell: Touchscreen = Drag and dropAllUsing 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).
StylusClamshell: Stylus = Drag and dropAllUsing 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 + NavClamshell: Special keys: arrowAllThe arrow keys on the Chrome OS keyboard should work exactly as expected within the app
Keboard Shorcuts + NavClamshell: Special keys: tabAllThe tab key on the Chrome OS keyboard should work exactly as expected
Keboard Shorcuts + NavClamshell: Special keys: cut and copyAllIn 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 + NavClamshell: Special keys: ESC keyAllThe ESC key corresponds to closing active window or go back to the previous page.
Keboard Shorcuts + NavClamshell: Special keys: enter keyAllPressing 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 + NavClamshell: Special keys: enter to sendAllIn 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 + NavClamshell: Special keys: app hot keysAllTry pressing any commonly used keyboard shortcuts for the app. The app should respond as expected.
Keboard Shorcuts + NavClamshell: Special keys: backAllThe back key on the Chrome OS keyboard should work exactly as the back button on Android.
Keboard Shorcuts + NavClamshell: Special keys: refreshAllHead to any area in the app with live/perishable content. The refresh key on the CrOS keyboard should refresh the view.
Keboard Shorcuts + NavClamshell: Special keys: dock windowAllUse ALT+[ or ALT+] to dock the app to one side of the screen. App should dock, similar to behaviour of Chrome browser.
Desktop FunctionalityOffline modeAllTurn 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.
InputTouchview: Touchscreen = Drag and dropAllUsing 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).
StylusTouchview: Stylus = Drag and dropAllUsing 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).
StylusStylus pressureDrawing / HandwritingUse the stylus to input drawing strokes or erasing drawing strokes of various pressure sensitivity. Strokes should appear on canvas with variable weight as expected.
StylusStylus eraseDrawing / HandwritingSelect 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
StylusStylus only (reject finger)Drawing / HandwritingSelect 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.
StylusStylus touch cancelDrawing / HandwritingWhile 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 FunctionalityMulti-Tasking functionBackground appsOpen app, engage function, open any other app. App continues background function (e.g. background audio, stopwatch)