Bird
Raised Fist0
Testing Fundamentalstesting~15 mins

Mobile-specific test cases in Testing Fundamentals - Build an Automation Script

Choose your learning style10 modes available
Verify login functionality on mobile app
Preconditions (2)
Step 1: Launch the mobile app
Step 2: Enter 'testuser' in the username field
Step 3: Enter 'Test@1234' in the password field
Step 4: Tap the Login button
Step 5: Wait for the home screen to load
✅ Expected Result: User is successfully logged in and home screen is displayed
Automation Requirements - Appium with Python
Assertions Needed:
Verify the home screen element is visible after login
Verify no error message is displayed
Best Practices:
Use explicit waits to wait for elements
Use accessibility ids or resource ids for locating elements
Handle mobile-specific gestures if needed
Keep test steps clear and simple
Automated Solution
Testing Fundamentals
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

caps = {
    "platformName": "Android",
    "deviceName": "Android Emulator",
    "appPackage": "com.example.mobileapp",
    "appActivity": ".MainActivity",
    "automationName": "UiAutomator2"
}

# Connect to Appium server
driver = webdriver.Remote('http://localhost:4723/wd/hub', caps)

try:
    wait = WebDriverWait(driver, 10)

    # Wait for username field and enter username
    username_field = wait.until(EC.presence_of_element_located((AppiumBy.ACCESSIBILITY_ID, "username_input")))
    username_field.send_keys("testuser")

    # Enter password
    password_field = driver.find_element(AppiumBy.ACCESSIBILITY_ID, "password_input")
    password_field.send_keys("Test@1234")

    # Tap login button
    login_button = driver.find_element(AppiumBy.ACCESSIBILITY_ID, "login_button")
    login_button.click()

    # Wait for home screen element
    home_screen_element = wait.until(EC.presence_of_element_located((AppiumBy.ACCESSIBILITY_ID, "home_screen")))

    # Assert home screen is displayed
    assert home_screen_element.is_displayed(), "Home screen is not displayed after login"

    # Assert no error message
    error_elements = driver.find_elements(AppiumBy.ACCESSIBILITY_ID, "login_error")
    assert len(error_elements) == 0, "Error message displayed after login"

finally:
    driver.quit()

This script uses Appium with Python to automate the mobile login test.

We set capabilities to connect to an Android emulator and specify the app package and activity.

We use explicit waits to wait for the username field to appear before interacting.

We locate elements by accessibility id, which is a best practice for mobile apps.

After entering credentials and tapping login, we wait for the home screen element to confirm successful login.

Assertions check that the home screen is visible and no error message is shown.

Finally, the driver quits to close the session.

Common Mistakes - 3 Pitfalls
Using Thread.sleep instead of explicit waits
Using XPath locators that are too long or brittle
Not quitting the driver session after test
Bonus Challenge

Now add data-driven testing with 3 different username and password combinations

Show Hint

Practice

(1/5)
1. Which of the following is a key focus when writing mobile-specific test cases?
easy
A. Testing only desktop browser compatibility
B. Testing features unique to mobile devices like GPS and touch gestures
C. Ignoring screen size variations
D. Testing only backend APIs without UI

Solution

  1. Step 1: Understand mobile-specific features

    Mobile devices have unique features like GPS, accelerometer, and touch gestures that desktop devices do not.
  2. Step 2: Identify test case focus

    Mobile-specific test cases must focus on these unique features to find device-specific issues.
  3. Final Answer:

    Testing features unique to mobile devices like GPS and touch gestures -> Option B
  4. Quick Check:

    Mobile features = A [OK]
Hint: Focus on device features unique to mobile devices [OK]
Common Mistakes:
  • Ignoring mobile-only features
  • Testing only desktop scenarios
  • Not considering touch interactions
2. Which syntax correctly describes a test step for checking screen orientation change in a mobile test case?
easy
A. Step 1: Open browser and check URL
B. Step 1: Click desktop menu and verify dropdown
C. Step 1: Rotate device to landscape mode and verify UI adjusts correctly
D. Step 1: Run backend API and check response code

Solution

  1. Step 1: Identify relevant mobile action

    Rotating device orientation is a common mobile-specific action to test UI responsiveness.
  2. Step 2: Match test step syntax

    Step 1: Rotate device to landscape mode and verify UI adjusts correctly clearly states rotating device and verifying UI adjustment, which fits mobile test case syntax.
  3. Final Answer:

    Step 1: Rotate device to landscape mode and verify UI adjusts correctly -> Option C
  4. Quick Check:

    Mobile orientation test = B [OK]
Hint: Look for steps mentioning device rotation or orientation [OK]
Common Mistakes:
  • Confusing desktop actions with mobile
  • Ignoring device rotation in test steps
  • Using backend steps in UI test cases
3. Consider this test step in a mobile app test case:
Step 1: Enable airplane mode
Step 2: Open the app
Step 3: Verify the app shows 'No internet connection'

What is the expected result of Step 3?
medium
A. App shows 'No internet connection' message
B. App logs user out automatically
C. App loads data from server normally
D. App crashes due to no network

Solution

  1. Step 1: Analyze network condition

    Airplane mode disables all network connections, so the app cannot reach the internet.
  2. Step 2: Understand expected app behavior

    The app should detect no internet and show a friendly message, not crash or load data.
  3. Final Answer:

    App shows 'No internet connection' message -> Option A
  4. Quick Check:

    Airplane mode disables network = D [OK]
Hint: No network means app shows offline message, not crash [OK]
Common Mistakes:
  • Assuming app crashes without network
  • Expecting normal data load offline
  • Confusing logout with network loss
4. A tester wrote this mobile test step:
Step 1: Switch device to dark mode
Step 2: Open app
Step 3: Verify app UI uses dark colors

But the test always fails. What is the most likely error?
medium
A. The device was not actually switched to dark mode before testing
B. The app does not support dark mode at all
C. The tester used wrong device model
D. The app crashed on launch

Solution

  1. Step 1: Check test setup correctness

    If the device is not switched to dark mode, the app UI won't change, causing test failure.
  2. Step 2: Consider app support

    While app support matters, the question says test always fails, so setup is more likely the cause.
  3. Final Answer:

    The device was not actually switched to dark mode before testing -> Option A
  4. Quick Check:

    Incorrect setup causes test failure = A [OK]
Hint: Verify device mode before testing UI changes [OK]
Common Mistakes:
  • Skipping device mode setup
  • Assuming app supports dark mode without checking
  • Ignoring device compatibility
5. You need to write a mobile-specific test case to verify the app's behavior when the device battery is low (below 15%). Which of the following is the best test step?
hard
A. Step 1: Connect device to charger
Step 2: Open app
Step 3: Verify app loads data quickly
B. Step 1: Open app
Step 2: Check if app crashes on startup
C. Step 1: Switch device to airplane mode
Step 2: Open app
Step 3: Verify app shows offline message
D. Step 1: Set device battery level to 10%
Step 2: Open app
Step 3: Verify app shows low battery warning and reduces background activity

Solution

  1. Step 1: Simulate low battery condition

    Setting battery level below 15% tests app behavior under low power.
  2. Step 2: Verify app response

    The app should warn user and reduce background tasks to save battery.
  3. Final Answer:

    Step 1: Set device battery level to 10%
    Step 2: Open app
    Step 3: Verify app shows low battery warning and reduces background activity
    -> Option D
  4. Quick Check:

    Low battery test = C [OK]
Hint: Simulate battery level, check app warning and behavior [OK]
Common Mistakes:
  • Testing unrelated conditions
  • Ignoring battery level simulation
  • Confusing network and battery tests
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard