QA Graphic

Four Tips for Writing Quality Test Cases for Manual Testing

Insights from Cem Kaner Paper

As Software Quality Assurance (SQA) professionals, we know that crafting effective test cases is both an art and a science. In his seminal 2003 paper, What Is a Good Test Case?, Cem Kaner, a thought leader in software testing, explores the complexity of designing test cases that deliver meaningful insights. Drawing from Kaner's work, here are four practical tips to elevate your manual test case writing, ensuring they are purposeful, actionable, and impactful.

1. Align Test Cases with Clear Information Objectives

A good test case starts with a purpose. Kaner emphasizes that test cases are questions posed to the software, designed to reveal specific information-whether it's finding defects, assessing conformance to specifications, or evaluating quality. Before writing a test case, ask: What am I trying to learn or achieve? For manual testing, this clarity is critical since testers rely on human observation and judgment.

Tip in Action: Define the objective upfront. For example, if your goal is to "find defects" in a login feature, craft a test case like: "Enter a username with special characters (e.g., @#$%) and a valid password, then verify the system rejects the input with an appropriate error message." This targets a specific defect class (input validation) and provides actionable insight into the system's behavior.

2. Make Test Cases Easy to Evaluate

Kaner highlights "ease of evaluation" as a key quality of a good test case. In manual testing, where testers manually execute and interpret results, ambiguity can lead to missed failures or false positives. A test case should clearly state the inputs, execution steps, and expected outcomes so the tester can quickly determine pass or fail without excessive effort.

Tip in Action: Write concise, unambiguous steps. Instead of "Check if the form works," specify: "Enter 'JohnDoe' in the username field, leave the password blank, click 'Login,' and verify an error message appears: 'Password is required.'" This reduces guesswork, ensuring consistency and reliability in execution.

3. Design for Credibility and Relevance

A test case's value hinges on its credibility-whether stakeholders (developers, managers, or clients) see it as realistic and worth addressing. Kaner notes that tests dismissed as "corner cases" (e.g., "No one would do that") lose impact. For manual testing, focus on scenarios that reflect real-world usage or critical risks, balancing edge cases with typical user behavior.

Tip in Action: Ground your test cases in user context. For a shopping cart feature, write: "Add 10 items to the cart, remove 2, and verify the total updates correctly." This mirrors common user actions, making the test credible and motivating for developers to fix any uncovered issues. Pair it with a risk-based test like "Add 1,000 items and verify system performance" if scalability is a concern, justifying its relevance with data or requirements.

4. Balance Power and Simplicity Based on Product Stability

Kaner defines a test's "power" as its likelihood of exposing a bug if one exists, often achieved through boundary values or complex scenarios. However, he cautions that complexity can overwhelm early testing phases when the software is unstable, leading to "blocking bugs" that halt progress. For manual testing, tailor the test's complexity to the product's maturity.

Tip in Action: Early in development, keep it simple: "Enter the maximum allowed value (e.g., 999) in a numeric field and verify acceptance." As stability improves, increase power with combinations: "Enter 999 in Field A, leave Field B blank, and submit; verify an error flags the missing input." This progression maximizes defect detection without overwhelming the tester or the process.

Final Thoughts

Kaner's work reminds us there's no one-size-fits-all formula for a "good" test case-context is everything. For SQA professionals engaged in manual testing, the key is to design test cases that are purposeful, executable, believable, and appropriately scoped. By aligning with objectives, ensuring clarity, prioritizing relevance, and adapting to the software's lifecycle, you'll create test cases that not only find bugs but also drive meaningful improvements. As Kaner puts it, "Good tests provide information directly relevant to [your] objective"-so define your goal, and let it guide your craft.

 

About

Weekly Tips and tricks for Quality Assurance engineers and managers. All reviews are unbiased and are based on personal use. No money or services were exchanged for the reviews posted.

Schedule

Monday 7 Media
Tuesday 8 QA
Wednesday 9 Pytest
Thursday 10 PlayWright
Friday 11 Macintosh
Saturday 12 Internet Tools
Sunday 13 Misc