Udemy logo

how to write test casesThe role of a software tester is very crucial in the execution and delivery of projects; testers not only have to write test cases but also execute them, record results, track defects and perform test coverage analysis too. Applications need to be studied in-depth before designing test cases and testers have to analyze the test objectives thoroughly before writing the test cases. If you are a test designer, quality or project manager or a software entrepreneur, you’ll find it beneficial to know how to write effective test cases for the success of your software development projects.

This course can help you learn the basics of Software Testing.

Defining a Test Case

A test case is a sequence of steps that needs to be followed to test the different aspects of a software application or program. Every test case consists of the test description, guidelines to conduct the test and information on the expected results. These are required to understand whether the various application features are operating correctly as per expectations or behaving erratically.

The purpose of a test case is to document the steps and conditions under which a particular test scenario must be executed, along with the expected result. Software testing comprises of five stages – planning and control, test analysis and design, test implementation and execution, evaluation and reporting and test closure. Test cases are written in the test analysis and design phase of the software testing cycle, wherein the test objectives are transformed into test conditions. Effective test cases are necessary to achieve complete quality verification and validation of the application under test. Learn how to plan and execute user tests with this course.

Test Execution Phases

Test cases are written after careful study of the requirements and specifications of the testing itself. They are designed to suit the different testing phases and can be classified as:

The test cases are required to be written proficiently and need a good amount of experience and understanding of the application on the tester’s part. If you are working in the software industry and looking for a transition to software testing, then our introductory course on software testing will be very insightful.

While designing test cases, the designer must ensure that the cases fit into the scope of the testing efforts. To achieve the highest coverage of the application within the stipulated time frame, test designers need to understand that everything cannot be tested extensively. They need to organize the test cases according to the standards and work towards finding defects effectively. It is good to assign a priority to the test cases during designing as this helps in selecting the test scope when a priority based testing approach is chosen.

Test Design Strategies

Depending on the type of application under test and the kinds of software bugs to be detected, test design strategies are selected and applied wherever appropriate. In the below section, we will discuss some of the commonly used test design strategies that testers use to develop test cases:

Test cases are designed based on the logical expressions in the software code that determine decisions in the application. The values that satisfy all the decision conditions are used as test data inputs for each and every decision point in the software program. The branch coverage test design accomplishes a high percentage of coverage of every statement and branch of the program; therefore also called as control-flow test design or coverage-based testing.

To detect the maximum number of bugs, test designers select test data close to the domain boundary values or limits. For example, if the boundary value or limit is 50, then you would select test data around this value i.e. for 49 and 51. The boundary value test design strategy is used when the designer knows that bugs exist around the boundary values and will be easy to detect; it’s a commonly used test design strategy and very effective in achieving a high bug yield.

An equivalence class is a set of variable values that are considered equivalent. Test cases are called equivalent when they are designed to test the same thing and would detect bugs in a similar fashion. Equivalence class partitioning is based on the strategy that since the test cases are similar, it’s enough to test only one or two of the characteristics instead of the entire set of test data.

Every software program will have several variables that are logically related to form a decision rule. For example, ‘if AGE is greater than 60 and if EMPLOYED is NO, then OFFER TRAVEL INSURANCE must be YES’, this is a decision rule and expresses the relationship between the variables in the program. The logic based test design is used to test every logical relationship in the program and consists of several logic-based test cases.

These are just some of the test designing strategies used by testers to effectively write test cases. These are often bundled together under the larger umbrella of Quality Management. Take this course on Quality Management to see how it all comes together.

Let us now discuss how to write test cases and the points to remember while doing so.

How to Write Test Cases

The basic objective of writing a test case is to provide the testing procedure for the particular application and maximize the verification of code with minimum complexity. Learn more about test writing procedures in this advanced course on Software Testing  for Professionals. Sometimes, two or more approaches are combined to write test cases so that defects are found in new and innovative ways. We shall look at some of the important aspects that designers must follow to write test cases effectively:

Before you begin to write test cases, gather enough information about the application by means of available documents like requirement specifications, use cases, tutorials or by using the application itself. Find out how the users intend to use the application, list down the several features and find out about the domain where it’s used.

Different features of the application may require different approaches to writing the test cases. Organize your test cases according to the features and select the appropriate method. You might also want to differentiate the test cases based on the different user roles; sometimes a combination of approaches helps write test cases for complex applications. Make sure that the entire flow of the application is covered by your test cases.

While writing a test case, stick to a particular format for better understanding. The usual format of a test case comprises of the following:

  1. Test case name / ID
  2. Description – unit under test
  3. Prerequisites – Assumptions that must be made
  4. Test data – the variables and their values
  5. Steps to be followed
  6. Expected results – clearly state the expected outcome of the test
  7. Actual results – record the actual results observed
  8. Status – Pass / Fail

Writing effective test cases can be very exhaustive and needs a lot of perseverance and creativity. To achieve increased efficiency in designing test cases, it’s important to understand the application and the user-end perspective. Improve the relevance of your test cases and increase their effectiveness by keeping them simple and easy to understand. Whether you are a developer or software tester, it’s crucial to write effective test cases for higher project quality and increased customer satisfaction. This course gives you comprehensive walk through the different aspects of Software testings – from the design, test case writing and automation. Do check it out and let us know your thoughts!

Page Last Updated: May 2014

Top courses in Software Testing

The Complete 2024 Software Testing Bootcamp
Tarek Roshdy, Nezam Academy, Nezam Team
4.5 (29,622)
React Testing Library with Jest / Vitest
Bonnie Schulkin
4.6 (7,096)
Testing World, Testing World Infotech
4.6 (1,247)
Software Tester: From Zero To Hero!
Michele Spoldi
4.3 (460)
Business Analyst: Software Testing Processes & Techniques
The BA Guide | Jeremy Aschenbrenner
4.5 (10,266)
Software Testing Masterclass (2024) - From Novice to Expert
Ozan Ilhan, Software Testing House By Ozan Ilhan
4.5 (10,359)
Automated Software Testing with Python
Jose Salvatierra, Teclado by Jose Salvatierra
4.6 (5,335)

More Software Testing Courses

Software Testing students also learn

Empower your team. Lead the industry.

Get a subscription to a library of online courses and digital learning tools for your organization with Udemy Business.

Request a demo