UniTesK Test Suite Architecture Igor Bourdonov Alexander Kossatchev Victor Kuliamin Alexander Petrenko.

Slides:



Advertisements
Similar presentations
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Advertisements

Model Based Testing in Linux Standard Base Compliance Program A.V.Khoroshilov, A.K.Petrenko { khoroshilov, petrenko ispras.ru MBT Users Conference.
Multi-Paradigm Models as Source for Automatic Test Construction Victor Kuliamin ISP RAS, Moscow.
CSC 532 Term Paper Process Models In Software Engineering By Xiancong Xiong Fall 2004.
Theory and Practice of Co-verification Process: UniTesK Story RedVerst group of ISP RAS Alexander K. Petrenko Victor V. Kuliamin
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
How Can Simple Model Test Complex System Model Based Testing of Large-Scale Software Victor Kuliamin ISP RAS, Moscow.
Testing AJAX functionality with UniTESK Yevgeny Gerlits, a postgraduate student from Lomonosov Moscow State University SYRCoSE 2010.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Formal Methods in Industrial Software Standards Enforcement A. Grinevich, A. Khoroshilov V. Kuliamin, D. Markovtsev A. Petrenko, V. Rubanov ISP RAS, Moscow,
03 - ParnasCSC4071 A Sketchy Evolution of Software Design 1960s –Structured Programming (“Goto Considered Harmful”, E.W.Dijkstra) Emerged from considerations.
Introduction to High-Level Language Programming
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Introduction to Software Testing Chapter 9.4 Model-Based Grammars Paul Ammann & Jeff Offutt
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 15, 2011.
An Introduction to MBT  what, why and when 张 坚
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Contract Specification of Pipelined Designs Alexander Kamkin Institute for System Programming of RAS
Theory and Practice of Co-verification Process: UniTesK Story RedVerst group of ISP RAS Alexander K. Petrenko
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
Automated Generation of Test Suites from Formal Specifications Alexander K.Petrenko Institute for System Programming of Russian Academy of Sciences (ISP.
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
Intel Academic Forum. Budapest, September, 2002 ISPRAS Experience in Model Based Testing Alexander K. Petrenko, Institute for System Programming.
Software Verification Academician V.P.Ivannikov, Director of ISPRAS Moscow, November 2008.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Theory and Practice of Co-verification Process: UniTesK Story RedVerst group of ISP RAS Alexander K. Petrenko
Framework for the Development and Testing of Dependable and Safety-Critical Systems IKTA 065/ Supported by the Information and Communication.
Generative Programming. Automated Assembly Lines.
Systems Analysis and Design in a Changing World, 3rd Edition
Natallia Kokash (Accepted for PACO’2011) ACG, 31/05/ Input-output conformance testing for channel-based connectors 1.
Applying Model Based Testing in Different Contexts Alexander Petrenko Victor Kuliamin ISP RAS, Moscow.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Formal Methods.
Learning Symbolic Interfaces of Software Components Zvonimir Rakamarić.
Using Cycle-Accurate Contract Specifications for Testing Hardware Models Alexander Kamkin Institute for System Programming of RAS
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
UniTesK: Model Based Testing in Industrial Practice Victor Kuliamin Alexander Petrenko Alexander Kossatchev Igor Burdonov Institute for System Programming.
Time Abstraction in Simulation-Based Hardware Verification Alexander Kamkin Institute for System Programming of the Russian Academy of.
ISP RAS Java Specification Extension for Automated Test Development Igor B. Bourdonov, Alexei V. Demakov, Andrei A. Jarov, Alexander S. Kossatchev, Victor.
Open Incremental Model Checking (OIMC) and the Role of Contracts Model-Based Programming and Verification.
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.
Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
R-Verify: Deep Checking of Embedded Code James Ezick † Donald Nguyen † Richard Lethin † Rick Pancoast* (†) Reservoir Labs (*) Lockheed Martin The Eleventh.
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
From Natural Language to LTL: Difficulties Capturing Natural Language Specification in Formal Languages for Automatic Analysis Elsa L Gunter NJIT.
Daniel Amyot, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher (2009) with material from: Jo Atlee, Dan Berry (both University of Waterloo);
UniTesK Test Suite Architecture Igor Bourdonov Alexander Kossatchev Victor Kuliamin Alexander Petrenko.
Whole Test Suite Generation. Abstract Not all bugs lead to program crashes, and not always is there a formal specification to check the correctness of.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
1 Igor Burdonov Alexander Kossatchev Building direct and back spanning trees by automata on a graph The Institute for System Programming (ISP) of the Russian.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Advanced Computer Systems
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Process Models In Software Engineering
Department of Computer Science Abdul Wali Khan University Mardan
V. Kuliamin, A. Petrenko, N.!Pakoulin, I.!Bourdonov, A.!Kossatchev
Software Architecture & Design
Presentation transcript:

UniTesK Test Suite Architecture Igor Bourdonov Alexander Kossatchev Victor Kuliamin Alexander Petrenko

Origin of UniTesK Method 1994 – 1996 ISP RAS – Nortel Networks contract on functional test suite development for Switch Operating System kernel  Few hundreds of bugs found in the OS kernel, which had been 10 years in use KVEST technology About 600K lines of Nortel code tested by 2000 But failed to be introduced in Nortel processes

Functional Testing UniTesK method deals with functional testing Requirements Formal Specifications Tests To automate testing we provide a formal representation of requirements

Engineering problems How to simplify transformation of requirements into formal specifications? How to automate specification based test development? How to decouple tests and implementation?  It helps to develop tests earlier  It makes specifications and tests reusable How to measure test quality without implementation?

Specification Techniques Constraints State based data type constraints, pre- and postconditions of operations Executable Imperative state based Algebraic Action based axioms Which kind of specifications is more suitable for industrial testing?

Comparison of Specification Techniques

Results of Comparison Constraint specifications seems to be the most suitable

Specification Notation Specification language  Suitable for capture abstract properties  Has formal semantics  Requires complex mediator layer for implementation  Requires special education, mastering is enduring Extension of programming language  Abstract concepts can be added by libraries  Ambiguous parts of language can be excluded  Complex mediators are not required  Mastering can be made more effective

Decomposition of Testing Task From specification we can generate oracle The entire test is a test sequence intended to achieve some coverage Test sequence construction Oracle Target system

Mediators Mediator refines specification to implementation More abstract specifications become possible Implementation may have different interface Support for regression testing Support for other kinds of specification reuse Mediator Target system Oracle Test sequence construction Oracle Target system

Test Sequence Construction Problems of coverage driven testing using automaton model Implicit specifications cannot be resolved Nondeterminism Huge numbers of states and transitions

Automata Factorization and Implicit Description I. B. Bourdonov, A. S. Kossatchev, V. V. Kuliamin. Using Finite State Machines in Program Testing. Programming and Computer Software, Vol. 26, No. 2, 2000, pp

Test Sequence Construction Machinery Test sequence is generated as a traversal of FSM model of target system Test Engine encapsulates FSM traversal algorithm Test Sequence Iterator encapsulates description of FSM model Test Engine Test Sequence Iterator Oracle Test sequence construction Oracle Target system

Test Sequence Iterator Details Test Engine Test Sequence Iterator Oracle Test sequence construction Oracle Target system State Converter Caller Input Symbol Iteration Iterators Target Coverage Filtering

UniTesK Tools and Applications CTesK – C implementation  Microsoft IPv6 implementation – Java implementation  Partially tested by itself  Parallel debugger API for mpC Demonstrated in the lobby VDM++TesK We are going to open source code of this tool for academic and university community

References 1. A. K. Petrenko, I. B. Bourdonov, A. S. Kossatchev, V. V. Kuliamin. Experiences in using testing tools and technology in real-life applications. Proceedings of SETT’01, India, Pune, I. B. Bourdonov, A. S. Kossatchev, V. V. Kuliamin. Using Finite State Machines in Program Testing. "Programmirovanije", 2000, No. 2 (in Russian). Programming and Computer Software, Vol. 26, No. 2, 2000, pp (English version) 3. I. Bourdonov, A. Kossatchev, A. Petrenko, and D. Galter. KVEST: Automated Generation of Test Suites from Formal Specifications. Proceedings of World Congress of Formal Methods, Toulouse, France, LNCS, No. 1708, 1999, pp I. B. Bourdonov, A. S. Kossatchev, V. V. Kuliamin, A. V. Maximov. Testing Programs Modeled by Nondeterministic Finite State Machine. (see [5] white papers)

Contact Victor V. Kuliamin , B. Communisticheskaya, 25 Moscow, Russia. Web: Phone: ext 4422 Fax:

Specification Kinds: Constraints Have the structuring similar with implementation But have different form  Are easy to use in the industry Are close to requirements in most cases Counterexample: memory management subsystem  Suitable for test coverage measurement Can be directly used in conformance checking Special constructs enabling reuse can be added

Specification Kinds: Executable Are very close to some implementation  Are easy to use in the industry  Can be used to produce prototypes Are not close to requirements ( √¯ = e ½ln = lim(x n+1 = ½(x n +x/x n )) )  Unsuitable for test coverage measurement Can cause problems with conformance checking How to compare the results? Are highly reusable

Specification Kinds: Algebraic Are far from common implementations and have greatly different structure  Can hardly be introduced in the industry Can be far from requirements or close to them for different kinds of systems  Can hardly be used for coverage measurement Can be used for conformance checking But sharpen error localization problems Reusability is a problem