Model Based Testing Group 7  Nishanth Chandradas (1103346)  George Stavrinides (1128104)  Jeyhan Hizli (1002077)  Talvinder Judge (1113795)  Saajan.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
Data Structures.
Semantics Static semantics Dynamic semantics attribute grammars
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
PROTOCOL VERIFICATION & PROTOCOL VALIDATION. Protocol Verification Communication Protocols should be checked for correctness, robustness and performance,
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Professor John Hosking, Dean of Engineering and Computer Science Models, Modelling, MBSE.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Formal Methods. Importance of high quality software ● Software has increasingly significant in our everyday activities - manages our bank accounts - pays.
1 Jan Tretmans Embedded Systems Institute Eindhoven Radboud University Nijmegen Model-Based Testing.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Software Requirements
Software Engineering, COMP201 Slide 1 Protocol Engineering Protocol Specification using CFSM model Lecture 30.
Department of CIS University of Pennsylvania 1/31/2001 Specification-based Protocol Testing Hyoung Seok Hong Oleg Sokolsky CSE 642.
Overview of Software Requirements
Embedded Systems Laboratory Department of Computer and Information Science Linköping University Sweden Formal Verification and Model Checking Traian Pop.
Describing Syntax and Semantics
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Data Structures and Programming.  John Edgar2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 15 Slide 1 Real-time Systems 1.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
1 Jan Tretmans Embedded Systems Institute Eindhoven, NL Radboud University Nijmegen, NL Model-Based Testing with Labelled Transition.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
Testing with Formal Methods Ed Brinksma course 2004 A Formal Framework.
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
CSE 219 Computer Science III Program Design Principles.
CS6133 Software Specification and Verification
Introduction to Algorithms By Mr. Venkatadri. M. Two Phases of Programming A typical programming task can be divided into two phases: Problem solving.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
CS 363 Comparative Programming Languages Semantics.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Natallia Kokash (Accepted for PACO’2011) ACG, 31/05/ Input-output conformance testing for channel-based connectors 1.
Agile Test-based Modeling 資工 聶順成. Outline  Introduction : Modeling meets Programming  Agile Modeling: Using Models in Agile Projects  Model-based.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
PROGRAM DEVELOPMENT CYCLE. Problem Statement: Problem Statement help diagnose the situation so that your focus is on the problem, helpful tools at this.
Software Verification 2 Automated Verification Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität and Fraunhofer Institut für.
CS1Q Computer Systems Lecture 11 Simon Gay. Lecture 11CS1Q Computer Systems - Simon Gay 2 The D FlipFlop The RS flipflop stores one bit of information.
VHDL Discussion Finite State Machines
Finite State Machines (FSM) OR Finite State Automation (FSA) - are models of the behaviors of a system or a complex object, with a limited number of defined.
Digital System Design using VHDL
8.1 8 Algorithms Foundations of Computer Science  Cengage Learning.
 George Polya, a famous mathematician, is known for creating four steps for easy problem solving.  “Trying to solve problems, you have to observe and.
1 Specification A broad term that means definition Used at different stages of software development for different purposes Generally, a statement of agreement.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Daniel Amyot, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher (2009) with material from: Jo Atlee, Dan Berry (both University of Waterloo);
C HAPTER 3 Describing Syntax and Semantics. D YNAMIC S EMANTICS Describing syntax is relatively simple There is no single widely acceptable notation or.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
ALLOY: A Formal Methods Tool Glenn Gordon Indiana University of Pennsylvania COSC 481- Formal Methods Dr. W. Oblitey 26 April 2005.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
1 Software Requirements Descriptions and specifications of a system.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini VII. System Specification (I)
Software Testing.
ICS 3UI - Introduction to Computer Science
Algorithms and Problem Solving
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Formal Methods in software development
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Algorithms and Problem Solving
Basic Concepts of Algorithm
Presentation transcript:

Model Based Testing Group 7  Nishanth Chandradas ( )  George Stavrinides ( )  Jeyhan Hizli ( )  Talvinder Judge ( )  Saajan Kothari ( )

Finite State Machines With Model Based Testing

While software testing, it is very useful to use models to make it easier by aiding test selection and test verification. Usually these models are just in the mind of the human tester who is also the developer. These mental models need to be written down in a shareable form such as UML. Finite state models are one of the most popular software models. We will discuss the advantages of using finite state machines for testing such as them being excellent because they describe the sequence of inputs that a software takes in addition to this they include many graph traversal algorithms. This makes it much easier to use them to test with opposed to manual testing. However we will also discuss the disadvantages such as the nontrivial construction and maintenance of complex software state machines.

What is a finite state machine?  It’s a mathematical model of computation  Used to design both computer programs and sequential logic circuits  Can be in one of a finite number of states

Advantages of using a finite state machine for software testing  Simple to create models of software  Predictable  Quick to design, implement and execute  Been around for a long time, allowing examples to learn from  Easy to transfer between abstract representation and coded implementation

Disadvantages of using a finite state machine for software testing  Can not be used in certain domains such as computer games.  Very difficult to manage complex and large finite state machines.  Sometimes over-specify implementation(sequencing is fully specified)  Number of states can be unmanageable  Numerical computations cannot be specified compactly (need extended FSMs)

Example of Finite State Machines Finite number of states (Blue) Triggers (Orange) To move between states a trigger must be activated When testing, if a trigger is activated, and the appropriate state is not met, then it is clear there is an error within the software being tested.

Labelled transition systems and Ioco testing theory.  In model based testing: A model is tested for compliance and its behaviour is tested.  Labelled transition systems is this “model” and “compliance” defined with the Ioco testing theory.

Labelled transition systems  A structure consisting of states with transitions, labelled with actions between them. Transition State Action

Labelled transition systems  Introduced as models for specifications, implementations and tests.  Defined as a process language for representing complex transition systems.

IOCO testing theory  Formal specification: What the implementation should do or not do. In formal, expressed as language to see if behaviour conforms to spec.  Test cases : Conditions the implementation should pass to comply with the correct behaviour.  Implementation relation ioco : defines conformance between implementations and specifications. “Expressing correctness”  Test generation algorithm : Derives a set of tests from spec. Check whether IMP IOCO conforms to that spec.

PROS  Provides a sound and well-defined foundation for labelled transitional systems.  Practical basis for several model based test generation tools and applications. Cons  Theory is only useful if it is supported by model based test tools, in particular generation tools.

Examples  LTS for coffee machine implementation under test: Input of £1 makes coffee Input of 50p makes tea Machine returns £1 if any error