Discover the art of writing effective test cases in manual testing with our step-by-step guide! Master the essentials of test case design, understand best practices, and gain insights into thorough test coverage. If you are a beginner or an experienced tester looking to refine your skills, this guide will equip you to create deterministic test cases that yield reliable results in manual testing.

Manual testing is a method of evaluating software applications, products, and systems using minimal or no tools. This blog provides an overview of writing effective test cases for manual testing, along with key tips and strategies to consider. Creating good test cases requires:

  • Careful planning,
  • Attention to detail
  • A deep understanding of the software to be tested

But don’t worry, with a well-designed test case, you can save time and effort and make the testing process super efficient.

 

What is a Test Case?

A Test Case is a specific set of conditions or variables under which a tester determines whether an application, software system, or one of its features is functioning correctly. The purpose of a Test Case is to validate the accuracy, completeness, and reliability of software features. A test case usually includes:

  • Test case ID
  • Test case description
  • Steps to follow
  • Expected results
  • Pass/fail criteria
  • Status of the test case

A successful test case identifies correct and incorrect results, with any unexpected results reported as bugs. Test cases form the basis for exhaustively testing a system, thereby increasing its reliability and quality by uncovering mistakes or gaps.

 

What are Manual Test Cases?

Manual testing involves evaluating software manually, without using automated tools. Test cases created for manual testing are called manual test cases. Examples of manual test cases include:

  • Validating that the login page functions correctly
  • Testing that the correct data appears on the search results page
  • Ensuring the registration form is accurate before submission
  • Testing the functionality of the shopping cart
  • Validating the order process

Manual test cases are written clearly and precisely, aiding testers in accurately executing tests. Moreover, these test cases can be reused, saving time and money on software testing.

Read more about Manual Testing

 

How to Write Test Cases: A Step-by-Step Guide

Here is a detailed guide on writing manual test cases:

Step 1 – Test Case ID:

Assign a unique identifier to the test case. This helps in easily recalling and identifying the test case in the future.

Example: TC-01: Verify Login Functionality for a User

Step 2 – Test Case Description:

Describe the test case, outlining its purpose and expected behavior.

Example: Test Case Description: Test for Logging Into the Application Given: A valid username and password for the web application When: User enters the username and password on the login page Then: The user should be able to log in successfully, displaying the Home page.

Step 3 – Pre-Conditions:

Document any pre-conditions required for the test case to run properly, such as initial configuration settings or manually executed prior tests.

Example: The test environment must be set up to closely resemble the production environment, including the same hardware, operating system, and software.

Step 4 – Test Steps:

Detail the necessary steps to execute the test case, including specific actions and data inputs.

Example steps for our login test:

  1. Launch the login application under test.
  2. Enter a valid username and password in the appropriate fields.
  3. Click the ‘Login’ button.
  4. Verify that the user has been successfully logged in.
  5. Log out and check if the user is logged out of the system.

Step 5 – Test Data:

Define any necessary test data. For instance, if testing login failures for incorrect credentials, provide a set of incorrect usernames/passwords.

Step 6 – Expected Result:

Specify the expected result of the test to verify its accuracy.

Examples:

  1. A user should be able to enter a valid username and password and click the login button.
  2. The application should authenticate the user’s credentials and grant access.
  3. The application should reject invalid credentials and display an appropriate error message.

Step 7 – Post Condition:

Detail any cleanup required after running the test case, such as reverting settings or removing files created during testing.

Example:

  1. The user can successfully log in with valid credentials.
  2. After providing invalid credentials, the user is shown the appropriate error message.
  3. The user’s credentials are securely stored for future logins.
  4. The user is directed to the correct page after a successful login.
  5. No unauthorized access to the user’s data occurs.

Step 8 – Actual Result:

Document the actual result observed during the test.

Example: After entering the correct username and password, the user successfully logs in and is presented with the welcome page.

Step 9 – Status:

Report the test status. If the expected and actual results match, the test passes. If not, it fails.

Example: Tested the valid login functionality. Result: The user can log in with valid credentials. Overall Test Result: All test steps were successfully executed, and the expected results were achieved. The login application functions as expected. Tested for invalid login functionality. Result: The user cannot log in with invalid credentials. Overall Test Result: The invalid login functionality has been tested and verified to work as expected.

 

Best Practices for Writing Good Test Cases

When it comes to crafting effective test cases, certain best practices should be followed to ensure quality and efficiency.

Identify the Purpose

First, it is crucial to identify the purpose of the test case and what exactly needs to be tested.

Clarity and Conciseness

Next, the test case should be written clearly and concisely, with step-by-step instructions for each action that needs to be taken. It is also important to consider all possible scenarios and edge cases to ensure thorough testing.

Organization and Structure

Maintaining organization and structure within your testing process is essential. Create a logical flow of tests covering different aspects of the system under test.

Review and Refine

Lastly, it is always recommended to review and refine your test cases periodically to maintain their quality over time.

By adhering to these best practices, you can improve your success rate in identifying defects early in the software development lifecycle, ensuring optimal performance for end users.

 

Benefits of Writing High-Quality Test Cases

High-quality test cases are integral to ensuring top-notch software. They offer numerous benefits:

1- Accurately Identify Issues

High-quality test cases ensure the application is thoroughly tested and any issues or bugs are accurately identified.

2- Enhances Test Coverage

Comprehensive test cases can assess different aspects of a software product, providing extensive coverage to identify and address bugs before the software is released.

3- Enriches Software Quality

Identifying faults early reduces the time and money needed for repairs and updates, enhancing the overall dependability and quality of the software before its launch.

4- Improves Collaboration Between Stakeholders

High-quality test cases help stakeholders understand the test objectives, share information, and resources effectively, promoting a cohesive approach to testing and development.

5- Improves User Experience

High-quality test cases evaluate the software’s user experience and usability components, ensuring end users are satisfied with the software, which is essential for its success.

 

Manual Testing Test Case Examples

Here are some examples to illustrate manual testing:

1- Login Page

For a login application like Gmail:

  • Test Case 1: Verify that the application allows users to input their username and password.
  • Test Case 2: Verify that the application correctly validates the correct credentials.
  • Test Case 3: Verify that the application displays an error message when incorrect credentials are entered.

2- Search Functionality

For a search feature like Google:

  • Test Case 1: Verify that users can search for specific records in the database.
  • Test Case 2: Verify that the application displays the query results correctly.
  • Test Case 3: Verify that the application displays an error message when no matches are found.

3- File Uploads

For a resume upload feature in a job portal like LinkedIn or Monster:

  • Test Case 1: Verify that users can upload the correct file format.
  • Test Case 2: Verify that the application does not allow users to upload malicious file formats.
  • Test Case 3: Verify that the application displays an error message when the maximum file size is exceeded.

 

Types of Manual Testing Test Cases

These include functional test cases, regression test cases, integration test cases, system test cases, GUI test cases, security test cases, usability test cases, performance test cases, compatibility test cases, and acceptance test cases.

 

Test Case Execution and When to Automate

The main objective of test case execution is to verify whether the software behaves as intended, identify any defects or issues, and ensure that all requirements are met.

The decision to use automation testing depends on the project and its specific requirements. Automation testing is ideal for testing swiftly without the need for a human tester to go through each step. It makes the process quicker and minimizes errors, covering larger areas of the application and surfacing issues that need further investigation. Automation is beneficial for repetitive processes, improving test coverage, and maximizing return on investment.

Learn more about automated testing

QA Genesis is a cloud-based AI-driven Test Automation Platform designed for Test Automation Engineers and Testers of any experience level. It automates end-to-end processes, including UI and API, allowing users to write test cases in NPL (Normal English). QA Genesis can automate the entire test lifecycle, including Test Case Execution, Test Results Analysis, Regression Tests Creation, and Reports Generation. It also supports cross-platform tests on multiple browsers, mobile phones, and operating systems, providing test report automation for visualized reports and analytics to track progress, optimize test execution speed, and reduce rework.

 

Conclusion

Effective and thorough test cases are crucial for ensuring a software product functions as intended and that bugs are identified. Manual testing of test cases should include steps to replicate actions performed in the software and validate that results are accurate and consistent. A systematic approach to writing test cases with strong input and output validations will help uncover issues easily, giving the tester a comprehensive view of any software product.

Rohit Gupta
Rohit Gupta
COO
Rohit harnesses his extensive knowledge of advanced technologies such as Blockchain, AI, and RPA to create solutions for diverse industries, including healthcare and customer experience management. Rohit's expertise in digital transformation enables businesses to achieve their strategic objectives.