EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Test Case Design Techniques

By Priya PedamkarPriya Pedamkar

Home » Software Development » Software Development Tutorials » Software Testing Tutorial » Test Case Design Techniques

Test Case Design Techniques

Introduction to Test Case Design Techniques

The most significant and crucial phase in the development of software is its testing phase. Not only does testing helps to determine the quality of a product but it also allows one to modify and upgrade the product in terms of end-user friendliness and usability. In this article, we will address the fundamental notion of test case design techniques of various kinds.

Test cases are the fundamental building blocks which when put together form the testing phase.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

What is a Test Case?

  • They are often a pre-defined set of instructions addressing the steps to be taken in order to determine whether or not the end product exhibits the desired outcome. These instructions may include predefined sets of inputs, conditions along with their respective end results.
  • However, in order to be through with one’s testing one could often end up with too many test cases. To avoid such scenarios, one should find the best test case design technique as per ones requirement so as to reduce a significant number of test cases.
  • These test case design techniques help create effective test cases covering the various features that determine the quality and value of a product.

Test case designs are predominantly classified according to their nature of testing into three types. They are:

  1. Specification-based Design Technique.
  2. Structure-based Design Technique.
  3. Experience-based Design Technique.

1. Specification-Based Design Technique

This is also popularly known as the black-box design technique. In this design technique, the test cases are written by taking the client’s functional requirements and specifications into consideration. The internal workings of the product are irrelevant. Therefore the name black-box testing is used in this case. It is further divided into subtypes:

  • Equivalence Partitioning Technique:

The data that are used as an input for the test cases are divided into groups based on a certain logic. The process of selecting a single input to represent the group it belongs to, and executing your test case with this input is known as equivalence partitioning.

For example, consider an application that will validate your password. The requirement for your password to be valid is it should contain a minimum of eight characters, should be alphanumeric and contain at least one special character. In this case, the inputs can be in different equivalent partitions such as valid inputs meeting the specific criteria and invalid inputs where one category contains eight characters all alphabets, another input category contains eight characters- all numeric, while another partition contains eight characters containing only special characters and so on.

Popular Course in this category
Sale
Software Testing Training (9 Courses, 2 Projects)9 Online Courses | 2 Hands-on Projects | 60+ Hours | Verifiable Certificate of Completion | Lifetime Access
4.5 (7,897 ratings)
Course Price

View Course

Related Courses
Penetration Testing Training Program (2 Courses)TestNG Training (4 Courses, 2 Project)
  • Boundary Value Analysis Technique:

In this case, the values from the lower boundary and upper boundary are considered.

For example, an application accepts only four-digit numeric values. Here the range is from 1000 to 9999. Here one case will contain inputs 999 and 9998, another case will contain input 1000 and 9999 and another will have inputs 0001 and 10000.

  • Decision Table Technique:

Decision tables make it easier to combine all possible scenarios that may arise for a particular product or application in question. Therefore writing one’s test cases with the decision tables as the point of reference provides one with effective test cases that provide excellent test coverage.

  • State Transition Testing Technique:

In this technique, the application is tested using graphical representation of the different transitioning states of an application which are further dependent on various features and functionalities of that application. It is primarily based on the state machine model.

  • Use Case Testing Technique:

The different scenarios that an end-user will encounter when using or interacting with the application are tested in this technique.

2. Structure-Based Testing

  • Structure-based testing deals with an applications internal structure and architecture. Here, the source code used to develop the application is tested. Therefore in the case of structure-based testing, a good understanding of the code and its internal flow are necessary in order to be able to design the test cases. Structure-based testing is also called white-box testing and glass box testing.
  • The quality of the code is analyzed based on different factors such as code coverage, readability, maintainability, security or bug vulnerability, reusability, etc.

Different Types of Structure-Based Testing are:

  • Statement Testing Technique:

In the case of statement testing the source code is executed while testing in order to measure the code coverage.

  • Decision Testing Technique:

Here the decision points of code are considered. The decision points being “while” condition, “if-else” condition, etc. It calculates the percentage of decision points being executed and determines whether or not there are unreachable statements within the code.

  • Condition Testing Technique:

It checks the Boolean condition statements that are, the statements where conditions either result in TRUE or FALSE. To make sure the conditions are executed when satisfied, testing is done using both TRUE and FALSE parameters against each condition statement.

  1. Multiple Condition Testing Technique: This is similar to condition testing, but may require a number of test cases as compared to condition testing due to the involvement of multiple conditions. However, writing these test cases could be a tedious task due to its complexity.
  2. Path Testing Technique: This includes testing every independent executable statement within the application from end to end in order to locate faulty code if any.

3. Experience-Based Testing

As the name states, this testing technique is based on a tester’s experience and expertise in similar applications and technologies. These are further divided into:

  • Error Guessing:

Testers foresee possible error occurrence based on their prior experience and knowledge on the application. This is entirely based on the tester’s ability to come up with effective test cases that can eradicate causes likely to result in errors.

  • Exploratory Testing:

In this, the test cases are written and executed in parallel. This technique helps identify critical bugs that may have been missed in traditional testing.

Conclusion

Selecting the best test case design to match your requirements will lead to effective testing and error-free delivery of the application. This will result in a better quality product and thus enhance the end-user experience.

Recommended Articles

This has been a guide to Test Case Design Techniques. Here we have discussed basic concepts, with three test case designs that are predominantly classified according to their nature of testing.  You may also look at the following article to learn more –

  1. Selenium Testing
  2. Code Coverage Tools
  3. What is Test Case?
  4. Types of Test Case

Software Testing Training (9 Courses, 2 Projects)

9 Online Courses

2 Hands-on Projects

60+ Hours

Verifiable Certificate of Completion

Lifetime Access

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
Software Testing Tutorial
  • Testing techniques
    • Software Testing Methodologies
    • Black Box Testing Techniques
    • Static Testing Techniques
    • Test Case Design Techniques
    • What is Static Analysis
  • Basics
    • What is Software Testing
    • Careers in Software Testing
    • Defect Life Cycle in Software Testing
    • Levels of Software Testing
    • Software Testing Life Cycle
    • Software Tester Work
    • Software Testing Principles
    • Software Testing Services
    • Testing Methodologies
    • Test Approaches
    • Grey Box Testing
    • Types of Software Testing
    • What is a Bug in Software Testing
    • Benefits of Automation Testing
    • What is Automation Testing?
    • Types of Automation
    • Automation Testing Process
    • Mobile Automation Testing
    • Automation Testing Life Cycle
    • Software Quality Assurance
    • Software Quality Assurance
    • What is Test Environment?
    • Verification and Validation Testing
  • Types of Testing
    • Adhoc Testing
    • Types of System Testing
    • Manual Testing Types
    • Unit Testing Types
    • Unit Testing Benefits
    • Agile Testing
    • What is Agile Testing
    • Acceptance Testing
    • Stress Testing Types
    • Alpha and Beta Testing
    • Application Testing
    • Automation Testing
    • Automation Testing Advantages
    • Benchmark Testing
    • Black Box Testing
    • Domain Testing
    • Dynamic Testing
    • Ecommerce Testing
    • Fuzz Testing
    • Gray Box Testing
    • GUI Testing
    • Installation Testing
    • Interface Testing
    • Interoperability Testing
    • Mainframe Testing
    • Manual Testing
    • Mutation Testing
    • Monkey Testing
    • Negative Testing
    • Penetration Testing
    • Penetration testing phases
    • Penetration testing framework
    • Protocol Testing
    • Recovery Testing
    • Regression Testing
    • Mobile Penetration Testing
    • Accessibility Testing
    • Sanity Testing
    • Scalability Testing
    • Security Testing
    • Spike Testing
    • Stability Testing
    • State Transition Testing
    • Static Testing
    • Gatling Load Testing
    • System Integration Testing
    • Structural Testing
    • Locust Load Testing
    • System Testing
    • Control Flow Testing
    • Unit Testing
    • Cypress testing
    • Volume Testing
    • Web Testing Application
    • What is Exploratory Testing
    • What is Stress Testing
    • What is Usability Testing
    • White Box Testing
    • Types of White Box Testing
    • Compatibility Testing?
    • Use Case Testing
    • Beta Testing
    • Integration Testing
    • Non Functional Testing
    • Non Functional Testing Types
    • What is Functional Testing
    • Functional testing types
    • Cookie Testing
    • Alpha Testing
    • Boundary Value Testing
    • Equivalence Class Testing
    • Glass Box Testing
    • SOA Testing
    • Smoke Testing
    • Visual Testing
    • Visual Paradigm
    • Model-Based Testing
  • Testing tools
    • Manual Testing Tools
    • Visual Testing Tools
    • Automation Testing Tools
    • Functional Testing Tools
    • GUI Testing Tools
    • Penetration Testing Tools
    • Performance Testing Tools
    • SOA Testing Tools
    • Accessibility Testing Tools
    • What is QTP
    • Regression Testing Tools
    • Security Testing Tools
    • Test Management Tools
    • Defect Management Tools
    • Code Coverage Tools
    • Test Coverage Tools
    • Defect Tracking Tools
    • Continuous Integration Tools
    • Install Bugzilla
    • Test data generation tool
    • Unit Testing Tools
    • Web Testing Tools
    • Stress Testing Tools
    • Performance Monitoring Tools
    • Mobile Testing Tools
    • Responsive Testing Tool
    • Cross Browser Testing Tools
    • Risk Based Testing
    • Database Testing Tools
    • WinRunner
    • What is Squish?
    • CubicTest
    • What is WinRM?
    • Bugzilla Tool
    • Code review tools
    • Penetration Testing Open Source Tools
  • Advance
    • Cyclomatic Complexity
    • Decision Table Testing
    • Decision Tree Algorithm
    • What is Continuous Integration
    • Mantis Bug Tracker
    • Equivalence Partitioning
    • Gantt Chart Software
    • Acceptance Testing Types
    • Load testing tools
    • Install TestNG
    • Install Unity
    • Defect Management Process
    • Test Plan Template
    • Testing Interview Questions
    • Testing of Mobile application
    • What is Test Automation Frameworks
    • Test Automation Framework
    • Application of Automation
    • Test Automation Process
    • Automation Testing Roles and Responsibilities
    • What is Instruction Cycle?
    • What is Cucumber?
    • 15 Best Popular Bug Reporting Tools
    • What is Automated Testing?
    • Software Maintenance Types
    • Types of Penetration Testing
    • Software Reliability
    • Best Gantt Chart Software
    • Code Coverage
    • Branch Coverage
    • Decision Coverage
    • Statement Coverage
    • What is Test Case
    • Types of Test Case
    • What is Test Scenario
    • Formal Review
    • Alpha Beta Pruning
    • What is Cyclomatic Complexity?
    • Test Coverage
    • How to Write Test Case
    • Testing Documentation
    • Performance Testing Life Cycle
    • What is Xpath
    • Test Harness
    • Test Strategy
    • Software Incident Management
    • What is Debugging
    • What is Defect?
    • Listeners in TestNG
  • Inteview Questions
    • Automation Testing Interview Questions
    • Manual Testing Interview Questions
    • ISTQB Interview Questions
    • Cucumber Interview Questions
    • Software Testing Interview Questions
    • Penetration Testing Interview Questions

Related Courses

Software Testing Course

Penetration Training Course

TestNG Training Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Live Classes
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2022 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

Let’s Get Started

By signing up, you agree to our Terms of Use and Privacy Policy.

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

EDUCBA Login

Forgot Password?

By signing up, you agree to our Terms of Use and Privacy Policy.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

Special Offer - Software Testing Training (9 Courses, 2 Projects) Learn More