Saturday, February 13, 2016

What is a “Test case” in software testing?

A test case is a set of conditions that executed by the tester to determine whether the tested system is operated based on the software requirements and specifications. 

A good design of test cases should help the testing team to find and remove many logical errors in design, in addition, a good and effective test case should be based on a relevant “Use case”.

Few comments that simplify things:
  • Test cases should give confidence that a specific functionality is working as designed.
  • Test cases are helpful when you need to analyze and determine the project risks
  • The same test case should be re-tested with different inputs (Positive/Negative).
  • Test cases are the way to measure the implementation and testing coverage.
  • Test cases are always helpful when you need to provide time estimations.
  • Test cases should always contain a specific input and the expected result.
  • Test cases are always helpful when you need to provide time estimations.
  • A test case should base on the software requirements and specifications.
  • Test cases are the way that testers can make the “Validation” process.
General categories of a “Test” case structure  


  • Test status (Pass, Fail, in progress, Block other test, Blocked by other test/Bug)
  • Test summery (short description that describes the test and his objective).
  • Prerequisites that should fulfil before the test execution.
  • Test category (Performance, usability, GUI ).
  • Test owner - the tester that going to run the test.
  • Test identification number - the test case ID.
  • Dates (created, Modified and closed).
  • Expected results AND actual results.
  • Based on Requirement ID?
  • Any automation coverage?
  • Based on Use case ID? 
  • Execution estimation.
  • Test environment.
  • Detailed steps.
  • Test Priority.
  • Test Inputs.

How to design a great test case


  • Test cases should be readable by other people (Project owner, management, testers).
  • Test cases should be written with the goal to find software errors.
  • In my opinion, a good test case is one that can be automated.
  • Test cases should write to provide testing coverage.
  • Every step should have the corresponding results.
  • The test case is logical and easy for execution.
  • Designed based on use case / Requirements.
  • The test case should be highly detailed.
  • Each test case should test a specific functionality, multiple test cases can always be combined to create a test procedure.

The information that you can get from a detailed test case documentation (STD)? 

  • The deviation/correctness against the original requirements and specifications.
  • The quality of the application, based on the current testing coverage/results.
  • All the relevant data that needed for “Risk Management” process.
  • How much testing is still needed to end the current testing cycle?
  • The number of errors that raised based on those test cases?
  • Is the software is ready for Beta/Alpha/Acceptance testing?
  • The Stability of the system against different architectures.
  • The current coverage against the expected timelines?
  • All the relevant data that needed for “Risk analysis”
  • How many use cases are tested and covered?
  • How many bugs are found in specific areas?
  • Is the current testing coverage is enough?
  • Is the software ready for automation?
  • The quality of the test designee?
  • The quality of the code?


  1. When I attend the interview, an interviewer asked me to write a test case about Facebook. That time I was not good at writing test case. Now I learned about test case using your post, keep sharing.
    Software training|Software testing training in chennai


My Presentations