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.
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.
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.
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.
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.