Tools and Techniques for Model Based Testing

Tools and Techniques for Model Based Testing

Swapan Bhattacharya (National Institute of Technology, Durgapur, India), Ananya Kanjilal (B. P. Poddar Institute of Management & Technology, Kolkata, India) and Sabnam Sengupta (B. P. Poddar Institute of Management & Technology, Kolkata, India)
DOI: 10.4018/978-1-60566-731-7.ch016
OnDemand PDF Download:
No Current Special Offers


Software testing has gained immense importance in the present competitive world of developing software more quickly, more efficiently and more accurately. Testing activity is carried out throughout the lifecycle of software development and not only towards the end of development. Time and effort required to correct errors, detected later is much more compared to those, which are detected earlier. This has direct impact on costs and has led to a splurge of research activities in this domain. Model-based testing has recently gained attention with the popularization of modeling itself. It refers to testing and test case generation based on a model that describes the behavior of the system. The OMG initiative MDA has revolutionized the way models would be used for software development. There are a number of modeling techniques in use today- some have formal syntax like Z, VDM while some are semi-formal like UML. We have made a comprehensive summary of a considerable number of research works on Model Based testing. First, the issues, challenges and problems of model based testing have been discussed. Then the different methods developed for testing or test case generation based on the models are summarized. Finally a list of model based testing tools used for testing has been collectively presented.
Chapter Preview

Model Based Testing: Overview

Model Based testing (MBT) is a new and evolving technique for generation of test suite from models that represent a system design or behavior. The paradigm of model-based testing shifts the focus of testing from writing individual test cases to developing a model from which a test suite can be generated automatically. It may be used for all cycles of testing – for unit testing of individual modules, integration testing of some of the modules to verify simple behaviors and overall system testing for verification of the total system behavior as represented by its model. MBT relies on three key technologies – the notation used for data model, test generation algorithm and tools that generate the supporting infrastructure for tests (DACS, 2003), MBT offers considerable promise in reducing the cost of test generation, increasing the effectiveness of the tests, and shortening the testing cycle. Test generation becomes especially effective for systems that are changed frequently, because testers are able to update the data model and then rapidly regenerate a test suite, avoiding tedious and error-prone editing of a suite of hand-crafted tests.

Key Terms in this Chapter

Testing Tools: The wide range of tools that is available for the purpose of automating the software testing activity.

Graph Based Models: A graph-based model is a model based on graph theory. Testing an application can be viewed as traversing a path through the graph of the model. Graph theory techniques therefore allow us to use the behavioral information stored in models to generate new and useful tests.

Model Based Testing (MBT): Model-Based Testing is the automatic generation of efficient test procedures/vectors using models of system requirements and specified functionality. Model-based testing is software testing in which test cases are derived in whole or in part from a model that describes some (usually functional) aspects of the system under test (SUT). As opposed to traditional testing techniques, MBT refers to development and use of testing techniques based on models that depict different aspect of a software system.

Formal Models: A formal model consists of a formal language together with a deductive system (also called a deductive apparatus), which consists of a set of inference rules and/or axioms. A formal system is used to derive one expression from one or more other expressions antecedently expressed in the system.

Model Driven Architecture (MDA): Model-driven architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model-driven architecture is a kind of domain engineering, and supports model-driven engineering of software systems. It was launched by the Object Management Group (OMG) in 2001.

Software Testing: Software testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the context in which it is intended to operate. This includes, but is not limited to, the process of executing a program or application with the intent of finding software bugs. Software Testing is an activity carried out throughout the lifecycle of the software development process that ensures that a software product is built as per user specifications.

Unified Modeling Language (UML): Unified Modeling Language (UML) is a standardized general-purpose modeling language in the field of software engineering. UML includes a set of graphical notation techniques to create abstract models of specific systems. It is used for visual modeling of object-oriented systems.

Complete Chapter List

Search this Book: