Test Case Design (3): Types of Test Cases

TreeifyAI
4 min readMar 15, 2025

--

Treeify: The First AI-Powered Test Case Generation Tool on a Mind Map. Effortlessly transform requirements into test cases while visualizing and refining the process on an intuitive, editable mind map with few clicks.

👉 Request Free Access here!

🚀 Join us on Discord to dive into the future of QA!

Introduction

Not all test cases are of the same nature. QA professionals design different types of test cases to address various aspects of the application and testing goals.

Functional vs. Non-Functional Test Cases

Functional test cases focus on verifying what the system does — i.e. specific behaviors or features against defined requirements.

For example, a functional test case might check that the “Add to Cart” button correctly adds an item to the shopping cart (a specific function). Non-functional test cases, on the other hand, target how the system works, covering qualities like performance, security, usability, etc., rather than specific features.

In summary, “Functional test cases focus on a system’s specific behaviors and functions… Non-functional test cases deal with non-behavioral aspects like performance, scalability, security, and usability.”.

Both types are important: functional cases ensure each feature works correctly, while non-functional cases ensure the system meets standards for speed, reliability, and other quality attributes.

Positive and Negative Test Cases

Positive test cases are designed to test that the system works as expected with valid and correct input data. These are the “sunny day” scenarios that confirm the software behaves according to requirements when used properly.

For instance, a positive test case for a login feature would input a valid username and password and expect a successful login. Negative test cases do the opposite — they provide invalid or unexpected inputs to ensure the system can handle them gracefully (for example, entering an incorrect password or malformed input and verifying that an appropriate error message is shown and no crash occurs).

In other words, a “Positive Test Case” provides valid input to see that the system behaves as expected, while a “Negative Test Case” uses invalid input to ensure the system handles it properly. Both are crucial: positive tests confirm the software meets requirements under normal conditions, and negative tests ensure robustness and error handling for abnormal conditions.

Exploratory and Ad-hoc Test Cases

These refer to less scripted, more free-form testing approaches. Exploratory testing is a style where test cases are not pre-written step-by-step; instead, testers dynamically design and execute tests on the fly, based on their knowledge and results of previous tests.

The tester “does not follow a pre-defined test plan or test case. Instead, the tester relies on their own expertise, intuition, and creativity to explore the software and find defects.”. Exploratory test cases (or charters) might be high-level goals like “Explore the upload feature with various file types and sizes” — giving the tester freedom to try different things.

Ad-hoc testing is similar in that it is unplanned and improvisational, but the term usually implies even more informality — often just trying to “break” the software without any documentation at all.

Ad-hoc tests are performed without any predefined test plan or test case. In practice, exploratory testing is a thoughtful approach (often time-boxed and documented with notes), whereas ad-hoc is more random. Both are useful for discovering unexpected issues that scripted cases might miss. Testers often execute exploratory tests after formal test cases, to go beyond the specified scenarios and find edge-case bugs or usability issues.

Regression Test Cases

Regression test cases are those selected to be re-run whenever the software changes, in order to confirm that existing functionalities remain working and no new bugs have been introduced in previously tested areas. They are essentially a subset of the overall test suite that acts as a safety net after updates.

According to standard practice, regression testing involves re-running functional and non-functional tests to ensure previously developed and tested software still performs as expected after a change (Regression testing — Wikipedia). Typically, regression test cases include tests for core features and past bugs that have been fixed (to ensure they don’t reappear).

As the software evolves, the regression suite grows. Well-designed regression test cases are reusable, stable, and cover the most important functionality of the system. They can be executed manually but are often prime candidates for automation due to their repetitive nature.

User Acceptance Test (UAT) Cases

User acceptance test cases are designed to be executed by the end-users or client representatives to validate that the software meets their needs and is ready for real-world use. UAT is typically the final phase of testing before release. These test cases are usually high-level scenarios derived from real business use cases, rather than low-level functional checks. The goal is to confirm the system is fit for purpose. In UAT, “end-users validate that the software meets their requirements and is easy to use.”.

For example, a UAT test case for a banking app might be: “A user transfers funds between accounts and sees the correct updated balances and transaction record.” UAT cases focus on the overall workflow and business outcomes, and success in UAT signifies that the software is accepted by the users/stakeholders. They often cover not just functionality, but also content, look-and-feel, and other experiential factors important to the customer.

Conclusion

By categorizing test cases into these types, QA teams ensure they have covered not only the direct requirements (functional positive tests) but also robustness (negative tests), system qualities (non-functional tests), continuous quality (regression tests), and user satisfaction (UAT tests). Each type of test case plays a role in a comprehensive testing strategy.

--

--

TreeifyAI
TreeifyAI

Written by TreeifyAI

https://treeifyai.com, the first AI-powered test case design tool on an editable Mind Map from requirements. Join us to get a free trial now.

No responses yet