EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login
Home Software Development Software Development Tutorials Software Testing Tutorial Model-Based Testing
Secondary Sidebar
Software Testing Tutorial
  • 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
  • Basics
    • What is Software Testing
    • Careers in Software Testing
    • Defect Life Cycle in Software Testing
    • Bug Life Cycle
    • Levels of Software Testing
    • Software Testing Life Cycle
    • Software Tester Work
    • Software Testing Principles
    • Software Testing Services
    • Testing Methodologies
    • Test Approaches
    • Types of Software Testing
    • What is a Bug in Software Testing
    • Benefits of Automation Testing
    • What is Automation Testing?
    • Types of Automation
    • Typical Journey of a Software Tester
    • Automation Testing Process
    • Mobile Automation Testing
    • Automation Testing Life Cycle
    • Software Quality Assurance
    • Software Quality Assurance
    • What is Test Environment?
    • Verification and Validation Testing
  • Testing techniques
    • Software Testing Methodologies
    • Black Box Testing Techniques
    • Static Testing Techniques
    • Test Case Design Techniques
    • What is Static Analysis
  • 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
    • 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

Model-Based Testing

By Alokananda GhoshalAlokananda Ghoshal

Model-Based Testing

Introduction to Model-Based Testing

In today’s scenario when we test a software product and capture the test specifications, understanding the criteria and having the best test coverage, we, who are in the software world needs to change our approach in gathering, analyzing, and constructing the product requirements. As a result of these recent advancements stated above, we have entered a world of model-based testing which allows the software testing team to leverage the power of test automation more thoroughly. The main intention of automation in testing is not only to have faster and efficient testing but also streamlining the workflow.

What is Model-Based Testing?

Model-based testing is theoretically defined as a software testing technique, where the test cases to be executed are taken from a model which covers the entire functional aspect of the system which is under the test. In other words, we use a model for describing the test environment and test strategy along with generation of test cases, executing those test cases and identifying the test design quality.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

The process which we follow from the model, which are used for generation of test cases automatically, is as follows:

  • Models are created to capture the behavior of the system that is being tested.
  • Interpretation of behavior for development of manual testing scripts are done using tools like fMBT, Modbat.
  • The scripts are then generated automatically by the tool.

In industry nowadays, model-based testing has become an integral part of the product design starting from the phase of requirement specification. With the usage of this testing technique, the developers and testers can now heavily focus only on the models that are getting created for covering the system requirements only and build a testable application at the start. And later by using model-based techniques the team can develop more tests using different algorithms.

In a nutshell, model-based techniques when used with popular automation frameworks like Selenium and many such others would help the team as manual and automated scripts would be build and, hence increasing the coverage of the tests.

Examples of Model-Based Testing

Given below are the examples mentioned:

One more thing we need to keep in mind for MBT is, there are numerous models available each describing the aspect of system it was designed for.

Example #1: Data Flow

As a part of the MBT, in this case we characterize the data flow and examine the coverage criteria for the sequence of events related to status of variables or data objects. The portion of testing focusses on the point from which variables receive the values till the point where these values are used.

Example #2: Control Flow

In this type of testing the program’s control flow is use as a model for carrying out structural testing of the software. In this genre the control flow diagram is considered as the key element for testing.

Example #3: Dependency Graphs

In this testing technique, the dependency graph is prepared based on the scenario we are testing. This graph represents the dependencies of several objects with each other.

Example #4: Decision Tables

In this type of example the results are compared head to head i.e. what the actual result is vs what the expected result was. Only if the actual result match to the expected result the test shall pass.

Example #5: State Transition Machines

In this type of testing techniques the state of the machine is checked against some inputs and that notifies the system’s behavior when the state transition takes place. This testing can be used for checking the state for complex and real life systems.

Challenges of Model-Based Testing

The introduction of model-based testing already holds tremendous promise and along with it comes with new challenges which gets introduced as we try to get hold of more coverage in test cases. Once we overcome these challenges, we would be able to extract the maximum benefit from this technique.

  • The first of the lot is the intensive training which is required by the developers and testers for understanding the techniques and the working of MBT. The critical part is that the developers are familiar to the coding paradigm, but the requirement of testing knowledge is one of the challenges and needs to be addressed at first. For testers, this is something new over the traditional testing methods.
  • One needs to invest time into the architecture and think about the infrastructure required by the team so that the tool can be scalable, be able to handle complex methods, and provide reliable test coverage. Though this would increase the upfront time initially but will get offset later in the cycle by reducing the maintenance time and improving the reliability by increasing the coverage.
  • Fine-tuning the MBT tool can be a daunting task, initially, as it runs parallel with creation of model and might require refactoring of the tool. But once you the hang and feel of the technique, it would be super smooth in using MBT.
  • The final is the shift in mindset and culture of testing techniques and techniques of development and testing applications, and many are not open for that. But as we say “Change is the only constant”, once we equip ourselves to the MBT way of testing, it will feel more comfortable in the later times.

Conclusion

Though we know about the challenges we face in Model-based techniques, it brings in many advantages to the table. It makes sure that the QA involvement is at the beginning of the discovery phase and hence makes sure that testability of the product design even at the onset of the feature development. As a result of this involvement, one can find flaw in the design and specifications even before the code existence. The testing thoroughness would increase along with coverage and have negligible test-suite maintenance. We can have exhaustive testing possible in MBT. At last, the model-based techniques powered by AI testing and machine learning techniques will bring in huge time and money savings to the business.

Recommended Articles

This is a guide to Model-Based Testing. Here we discuss what is Model-Based testing, testing challenges,  and examples respectively. You may also have a look at the following articles to learn more –

  1. Stress Testing Tools
  2. Monkey Testing
  3. Equivalence Class Testing
  4. Performance Testing Tools
Popular Course in this category
All in One Software Development Bundle (600+ Courses, 50+ projects)
  600+ Online Courses |  3000+ Hours |  Verifiable Certificates |  Lifetime Access
4.6
Price

View Course

Related Courses

Software Testing Training (11 Courses, 2 Projects)4.9
Penetration Testing Training Program (2 Courses)4.8
TestNG Training (4 Courses, 2 Project)4.7
Primary Sidebar
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

ISO 10004:2018 & ISO 9001:2015 Certified

© 2023 - 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

By continuing above step, you agree to our Terms of Use and Privacy Policy.
*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

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

Let’s Get Started

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

EDUCBA

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

*Please provide your correct email id. Login details for this Free course will be emailed to you
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

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more