How to Write Test Cases for Bottom Navigation (With Examples)

When developing mobile applications, ensuring the reliability and user-friendliness of the bottom navigation is crucial. Bottom navigation bars are a common UI pattern used to switch between primary d

By · June 16, 2026 · 12 min read · How-To Guides

How to Write Test Cases for Bottom Navigation (With Examples)

When developing mobile applications, ensuring the reliability and user-friendliness of the bottom navigation is crucial. Bottom navigation bars are a common UI pattern used to switch between primary destinations in an app. Writing comprehensive test cases for bottom navigation is essential to catch bugs early and ensure a smooth user experience. This guide will walk you through the process of writing high-signal test cases for bottom navigation, including test case anatomy, positive and negative scenarios, edge cases, and how to prioritize and trace these cases to requirements.

Understanding Bottom Navigation

What is Bottom Navigation?

Bottom navigation refers to a navigation bar typically located at the bottom of a mobile app screen. It contains a set of icons or labels that represent different sections or features of the app. Users can tap on these icons to navigate between the main sections of the app. Bottom navigation is a staple in many mobile applications, including social media, e-commerce, and productivity apps.

Importance of Testing Bottom Navigation

Testing bottom navigation is vital because it directly impacts the user experience. A malfunctioning or poorly designed bottom navigation can lead to user frustration, decreased engagement, and ultimately, a higher churn rate. Common issues that can arise include unresponsive buttons, incorrect state management, and inconsistent behavior across different devices and screen sizes.

Test Case Anatomy

Components of a Test Case

A well-structured test case typically includes the following components:

Example of a Test Case

Test Case IDPreconditionsTest StepsExpected ResultActual ResultStatusPriorityTraceability
TC001App is launched and user is logged in1. Tap on the Home icon in the bottom navigation bar.The Home screen is displayed.The Home screen is displayed.PassHighREQ001

Positive Test Cases

What are Positive Test Cases?

Positive test cases are designed to verify that the application behaves as expected when the user performs valid actions. These cases focus on the normal flow of the application and ensure that the bottom navigation functions correctly under typical usage scenarios.

Example Positive Test Cases

Test Case IDPreconditionsTest StepsExpected ResultActual ResultStatusPriorityTraceability
TC002App is launched and user is logged in1. Tap on the Search icon in the bottom navigation bar.The Search screen is displayed.The Search screen is displayed.PassHighREQ002
TC003App is launched and user is logged in1. Tap on the Profile icon in the bottom navigation bar.The Profile screen is displayed.The Profile screen is displayed.PassHighREQ003
TC004App is launched and user is logged in1. Tap on the Home icon in the bottom navigation bar. 2. Tap on the Profile icon in the bottom navigation bar.The Profile screen is displayed.The Profile screen is displayed.PassMediumREQ004

Negative Test Cases

What are Negative Test Cases?

Negative test cases are designed to verify that the application behaves correctly when the user performs invalid or unexpected actions. These cases help identify potential issues and ensure the application can handle errors gracefully.

Example Negative Test Cases

Test Case IDPreconditionsTest StepsExpected ResultActual ResultStatusPriorityTraceability
TC005App is launched and user is logged in1. Tap and hold the Home icon in the bottom navigation bar for 5 seconds.No action is performed, and the Home screen remains displayed.No action is performed, and the Home screen remains displayed.PassMediumREQ005
TC006App is launched and user is logged in1. Tap on the Home icon in the bottom navigation bar. 2. Quickly tap on the Search icon.The Search screen is displayed without any errors.The Search screen is displayed without any errors.PassMediumREQ006
TC007App is launched and user is logged in1. Tap on the Home icon in the bottom navigation bar. 2. Tap on the Profile icon. 3. Tap on the Home icon again.The Home screen is displayed without any errors.The Home screen is displayed without any errors.PassMediumREQ007

Edge Cases and Boundary Conditions

What are Edge Cases and Boundary Conditions?

Edge cases and boundary conditions are scenarios that occur at the limits of the application's functionality. These cases are often overlooked during initial testing but can lead to significant issues in production. Testing these scenarios helps ensure that the application behaves correctly in all possible situations.

Example Edge Cases and Boundary Conditions

Test Case IDPreconditionsTest StepsExpected ResultActual ResultStatusPriorityTraceability
TC008App is launched and user is logged in1. Rotate the device from portrait to landscape mode. 2. Tap on the Home icon in the bottom navigation bar.The Home screen is displayed in landscape mode.The Home screen is displayed in landscape mode.PassHighREQ008
TC009App is launched and user is logged in1. Tap on the Home icon in the bottom navigation bar. 2. Quickly double-tap on the Home icon.The Home screen remains displayed without any errors.The Home screen remains displayed without any errors.PassMediumREQ009
TC010App is launched and user is logged in1. Tap on the Home icon in the bottom navigation bar. 2. Tap on the Search icon. 3. Quickly double-tap on the Search icon.The Search screen remains displayed without any errors.The Search screen remains displayed without any errors.PassMediumREQ010
TC011App is launched and user is logged in1. Tap on the Home icon in the bottom navigation bar. 2. Tap on the Profile icon. 3. Quickly double-tap on the Profile icon.The Profile screen remains displayed without any errors.The Profile screen remains displayed without any errors.PassMediumREQ011
TC012App is launched and user is logged in1. Tap on the Home icon in the bottom navigation bar. 2. Quickly tap on the Search icon, then the Profile icon, and then the Home icon again.The Home screen is displayed without any errors.The Home screen is displayed without any errors.PassMediumREQ012

Data Setup

Importance of Data Setup

Data setup is a crucial step in testing bottom navigation. It involves preparing the necessary data and environment to ensure that the test cases can be executed accurately. This includes creating user accounts, setting up test data, and configuring the app to a specific state.

Example Data Setup

Data Setup IDDescriptionSteps
DS001Create a user account with a profile picture1. Launch the app. 2. Tap on the Sign Up button. 3. Fill in the required details and upload a profile picture. 4. Tap on the Sign Up button.
DS002Set up a search query with no results1. Launch the app and log in with a user account. 2. Tap on the Search icon in the bottom navigation bar. 3. Enter a search query that has no results.
DS003Set up a search query with multiple results1. Launch the app and log in with a user account. 2. Tap on the Search icon in the bottom navigation bar. 3. Enter a search query that has multiple results.

Prioritization and Traceability

Why Prioritize Test Cases?

Prioritizing test cases helps ensure that the most critical issues are addressed first. This is especially important in agile environments where time and resources are limited. High-priority test cases should be executed early in the testing cycle to identify and fix major issues before they impact the user experience.

Traceability to Requirements

Traceability ensures that each test case is linked to a specific requirement or user story. This helps in tracking the progress of testing and verifying that all requirements have been met. It also aids in identifying gaps in the test coverage and ensuring that all aspects of the bottom navigation are tested.

Example Prioritization and Traceability

Test Case IDPriorityTraceability
TC001HighREQ001
TC002HighREQ002
TC003HighREQ003
TC004MediumREQ004
TC005MediumREQ005
TC006MediumREQ006
TC007MediumREQ007
TC008HighREQ008
TC009MediumREQ009
TC010MediumREQ010
TC011MediumREQ011
TC012MediumREQ012

Manual and Automated Testing

Manual Testing

Manual testing involves human testers executing the test cases manually. This approach is useful for initial testing and for scenarios that require human judgment, such as evaluating the user experience and visual design. Manual testing is also essential for edge cases and boundary conditions that may not be easily covered by automated tests.

Automated Testing

Automated testing involves using tools and scripts to execute the test cases. This approach is more efficient and scalable, especially for regression testing and continuous integration. Automated testing can help catch issues early in the development cycle and ensure that the bottom navigation functions consistently across different devices and environments.

Example of Automated Testing with SUSA

SUSA is an autonomous QA platform that can explore your app and test bottom navigation without the need for manual scripting. Here's how you can set it up:

  1. Install the SUSA Agent:
  2. 
       pip install susatest-agent
    
  1. Point SUSA at Your App:
  2. 
       susatest-agent test https://your-app-url.com
    
  1. Run the Test:

SUSA will explore the app, tap on the bottom navigation icons, and verify that the correct screens are displayed. It will also test for crashes, ANRs, and UX friction.

  1. Review the Results:

SUSA provides a detailed report with PASS/FAIL verdicts and any issues found.

Example of Automated Testing with Appium

For more granular control, you can use Appium to write automated test scripts. Here's an example using Python:


from appium import webdriver

desired_caps = {
    "platformName": "Android",
    "deviceName": "emulator-5554",
    "appPackage": "com.yourapp.package",
    "appActivity": ".MainActivity"
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# Tap on the Home icon
home_icon = driver.find_element_by_id("com.yourapp.package:id/home_icon")
home_icon.click()

# Verify the Home screen is displayed
assert "Home" in driver.page_source

# Tap on the Search icon
search_icon = driver.find_element_by_id("com.yourapp.package:id/search_icon")
search_icon.click()

# Verify the Search screen is displayed
assert "Search" in driver.page_source

# Tap on the Profile icon
profile_icon = driver.find_element_by_id("com.yourapp.package:id/profile_icon")
profile_icon.click()

# Verify the Profile screen is displayed
assert "Profile" in driver.page_source

driver.quit()

Real-World Examples

Example 1: Social Media App

In a social media app, the bottom navigation bar typically includes icons for Home, Search, Add Post, Notifications, and Profile. Here are some test cases for this app:

Test Case IDPreconditionsTest StepsExpected ResultActual ResultStatusPriorityTraceability
TC013App is launched and user is logged in1. Tap on the Home icon in the bottom navigation bar.The Home screen is displayed.The Home screen is displayed.PassHighREQ013
TC014App is launched and user is logged in1. Tap on the Search icon in the bottom navigation bar.The Search screen is displayed.The Search screen is displayed.PassHighREQ014
TC015App is launched and user is logged in1. Tap on the Add Post icon in the bottom navigation bar.The Add Post screen is displayed.The Add Post screen is displayed.PassHighREQ015
TC016App is launched and user is logged in1. Tap on the Notifications icon in the bottom navigation bar.The Notifications screen is displayed.The Notifications screen is displayed.PassHighREQ016
TC017App is launched and user is logged in1. Tap on the Profile icon in the bottom navigation bar.The Profile screen is displayed.The Profile screen is displayed.PassHighREQ017

Example 2: E-Commerce App

In an e-commerce app, the bottom navigation bar typically includes icons for Home, Categories, Cart, and Account. Here are some test cases for this app:

Test Case IDPreconditionsTest StepsExpected ResultActual ResultStatusPriorityTraceability
TC018App is launched and user is logged in1. Tap on the Home icon in the bottom navigation bar.The Home screen is displayed.The Home screen is displayed.PassHighREQ018
TC019App is launched and user is logged in1. Tap on the Categories icon in the bottom navigation bar.The Categories screen is displayed.The Categories screen is displayed.PassHighREQ019
TC020App is launched and user is logged in1. Tap on the Cart icon in the bottom navigation bar.The Cart screen is displayed.The Cart screen is displayed.PassHighREQ020
TC021App is launched and user is logged in1. Tap on the Account icon in the bottom navigation bar.The Account screen is displayed.The Account screen is displayed.PassHighREQ021

Checklist for Writing Test Cases

Preparing to Write Test Cases

Writing the Test Cases

Reviewing and Executing the Test Cases

Closing Takeaways

Key Points to Remember

Continuous Improvement

Testing bottom navigation is an ongoing process. As the app evolves, new features and user flows will be added, and existing ones will be modified. Regularly review and update the test cases to ensure they remain relevant and effective. Use the insights gained from testing to improve the user experience and address any issues that arise.

By following these guidelines and best practices, you can write high-signal test cases for bottom navigation that help ensure a reliable and user-friendly mobile application.

Test Your App Autonomously

Upload your APK or URL. SUSA explores like 11 real users — finds bugs, accessibility violations, and security issues. No scripts. New to the category? Start with what autonomous product intelligence & QA means.

Try SUSA Free