Model Based Testing Venkata Ramana Bandari, Expert Software Engineer

Slides:



Advertisements
Similar presentations
Database Planning, Design, and Administration
Advertisements

Programming Paradigms and languages
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
Test Automation Success: Choosing the Right People & Process
10/05/ Automated Software Test Generation: Model-Based Testing By Nedret ÖZAY Cmpe 516- Fault Tolerant Computing.
Lecture # 2 : Process Models
Unit 231 Software Engineering Introduction to SWE What is SDLC Phases of SDLC.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Introduction to Software Testing
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
© Company Confidentialwww.itcinfotech.com Business Case for Test Automation S.Janardhanan Chief Technology Officer ITC Infotech India Limited Business.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
An Introduction to MBT  what, why and when 张 坚
RUP Implementation and Testing
Testing Workflow In the Unified Process and Agile/Scrum processes.
What is software testing? 1 What are the problems of software testing? 2 Time is limited Applications are complex Requirements are fluid.
MERCURY BUSINESS PROCESS TESTING. AGENDA  Objective  What is Business Process Testing  Business Components  Defining Requirements  Creation of Business.
1 Introduction to Software Engineering Lecture 1.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Software Engineering Saeed Akhtar The University of Lahore.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
TEST AUTOMATION IN BDD WAY
Chapter 1 The Systems Development Environment
Requirements Validation – II
Software Testing.
aBAP – NextGen QA Delivery Gear
The Systems Engineering Context
Introduction to System Analysis and Design
Quality Management Perfectqaservices.
Software Requirements
Chapter 1 The Systems Development Environment
FORMAL SYSTEM DEVELOPMENT METHODOLOGIES
Effective way to build test Automation strategy in Agile
Automation – “A Critical Component of Agile testing”
Galen - Automated testing of look and feel
Quality Strategies In AGILE
Applied Software Implementation & Testing
Advantages OF BDD Testing
Tools of Software Development
Unit# 9: Computer Program Development
ARTIFICIAL INTELLIGENCE IN SOFTWARE TESTING
True ROI of Automation? Allscripts India LLP
Introduction to Software Testing
Lecture 09:Software Testing
MBML_Efficient Testing Methodology for Machine Learning
Transforming Automation through Artificial Intelligence
Software life cycle models
Fundamental Test Process
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Software engineering -1
Introduction To software engineering
CS310 Software Engineering Dr.Doaa Sami
Chapter 1 Introduction(1.1)
True ROI of Automation? Allscripts India LLP
Bringing more value out of automation testing
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Basic Concepts of Algorithm
SOFTWARE DEVELOPMENT LIFE CYCLE
Test Cases, Test Suites and Test Case management systems
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Lecture 23 CS 507.
Function-oriented Design
Programming Logic and Design Eighth Edition
Chapter 8: Actor-System Interaction Modeling
AN INEXPENSIVE ROBOTIC KIT FOR CHILDREN EDUCATION
Presentation transcript:

Model Based Testing Venkata Ramana Bandari, Expert Software Engineer Thrivikram Reddy, Expert Software Engineer Allscripts India LLP

Abstract The complexity of software applications continues to increase, and the user’s aversion to software defects is greater than ever, so the functional testing should become more efficient at discovering bugs. The cost and time of testing is a significant dimension of any projects and sometimes topping the costs of development.

Model of Software A Model of Software is a representation of its behavior. Behavior can be described in terms of the Input sequences accepted by the system The actions performed by the system as designed Conditions applied on the actions performed by the system as designed Output logic or the flow of data through the application’s modules and procedures By using modeling, a shareable, reusable, detailed description of the system is acquired.

What is Model Based Testing “Model-based testing is a process for derivation of test cases from a model that describe functional aspects of the system under test (SUT) and executing those test cases.” This approach renews the whole process of functional software testing from business requirements to the test repository with test execution. It supports the phases of designing and generating tests, documenting the test repository, producing and maintaining the bi-directional traceability matrix between tests and requirements. Test Requirements Exit Test Derivation Test Execution Executable test Suite Compilation Abstract Test Suite Executable test Suite Reports Model

Fundamental tasks of MBT Understanding The System: Forming a intellectual representation of the system’s functionality is a prerequisite to building models. Determine the components/features that need to be tested based on test objectives. Establish communication with requirements, design, and development teams if possible. Identify the users of the system. Enumerate the inputs and outputs of the Application. Study the sequences of inputs and Outputs that need to be modeled. Understand internal data interactions and computation. Choosing the Model: There are no software models today that fit all intents and purposes. Consequently, for each situation decisions need to be made as to what model (or collection of models) are most suitable.

Fundamental tasks of MBT(cont’d) Building the Model: The general procedure that underlies many MBT methodologies: Make a list of the inputs and Outputs. Input applicability constraints for each input. For example, consider a simple telephone. The input “take the handset off the hook” can only be applied when the handset is hung up. (It is impossible to pick up the handset if the handset has already been picked up.) Input behavior constraints for each input according to the current state context. For example, the input “take the handset of the hook” can cause a number of behaviors. If the context is that the phone is idle, the resulting behavior will be that the system will generate a dial tone. If the context is that the phone is ringing due to an incoming call, then the system will connect the two phones to allow conversation. Two different behaviors are caused by the same input.

Example: How to Design model for Calculator Select Standard Not Running Standard Start Stop Running Standard Running Scientific Not Running Scientific Select Scientific Not Running Running Start Stop

What Does This Model Care About? Application status Standard Scientific? Mode status Running Not Running Display status Empty Not Empty In Natural Language If the Calculator is Not Running then the user can execute ‘Start’. When the user executes ‘Start’, the Calculator goes to ‘Running’ mode If the Calculator is Running then the user can execute ‘Standard’. When the user executes ‘Standard’, the Calculator goes to ‘Standard’ mode and the display is cleared. When the User Executes ‘Scientific’, the calculator goes to ‘Scientific’ mode and the display is cleared When the user enter number the display will show with number When the user click on off button, calculator will move to not running mode.

Benefits of Model-Based Testing It helps to detailed understanding of the system behavior Easy test case maintenance, Test suite grows with the product Reduced costs/Time/more tests, Manage the model instead of the cases Systematic coverage, Helps early bug detection When a new feature is added, a new action is added to the state machine to run in combination with existing actions. Improved tester job satisfaction

Drawbacks of MBT Excessive amount of skills is required from the testers. They need to be familiar with the model, which means knowledge of different forms of application. Large initial effort in terms of man-hours is required to get into modeling and selecting the level for modeling.

Conclusion Models are an excellent way to represent and understand system behavior. Testers construct intellectual models anyway during their testing. Those mental models can be transformed to models on paper. This helps testers to achieve readability and re-usability Models provide an easy way to create and update tests.

Venkata Ramana Bandari Author’s Biography Venkata Ramana Bandari Working as Expert Software Engineer in software industry having 12+ years of experience in software testing. Extensive experience in Database testing, Product testing, Regression testing, Functional testing, UAT testing, integration testing, Patch Management. Good knowledge of Testing Methodologies (V- Model, Agile) Well Versed in conducting different kind of tests such as User acceptance Testing (UAT), Regression, Integration, Smoke, Sanity and Cloud based applications testing. Thrivikram Reddy Working as Expert Software Engineer in software Industry having 11+ years of experience in software testing. Experienced Quality Engineer in automation with a demonstrated history of working in the healthcare software industry. Skilled in Test Automation, Selenium WebDriver and C#. Also, exploring usage of python to automate things. Passionate about learning the new technologies and implementation.

Thank You!!!