Property-based testing for Web Services. The PROWESS consortium



Similar documents
Enable Your Automated Web App Testing by WebDriver. Yugang Fan Intel

Introduction to Automated Testing

Framework as a master tool in modern web development

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

Automation using Selenium

SOFTWARE ENGINEERING PROGRAM

Selenium WebDriver. Gianluca Carbone. Selenium WebDriver 1

Embedded Software Development with MPS

Cloud-based Data Logging, Monitoring and Analysis

Testing Tools using Visual Studio. Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation

Cloud Computing and Government Services August 2013 Serdar Yümlü SAMPAŞ Information & Communication Systems

Security Testing For RESTful Applications

Server based signature service. Overview

Domain Specific Languages for Selenium tests

A standards-based approach to application integration

Enhanced System Integration Test Automation Tool (E-SITAT) Author: Akshat Sharma

Glossary of terms used in the survey

Building native mobile apps for Digital Factory

YouTrack MPS case study

Getting started with API testing

Gateway Apps - Security Summary SECURITY SUMMARY

MEGA Web Application Architecture Overview MEGA 2009 SP4

zen Platform technical white paper

soapui Product Comparison

Middleware- Driven Mobile Applications

Extending Desktop Applications to the Web

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip

MOBILE ARCHITECTURE FOR DYNAMIC GENERATION AND SCALABLE DISTRIBUTION OF SENSOR-BASED APPLICATIONS

Monitis Project Proposals for AUA. September 2014, Yerevan, Armenia

MEng, BSc Applied Computer Science

Safewhere*Identify 3.4. Release Notes

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

A Standards-based Mobile Application IdM Architecture

What s new in the HP Functional Testing 11.5 suite Ronit Soen, product marketing John Jeremiah, product marketing

Homework 3: Component & Interface Design

Your Location Instant NOC using Kaseya. Administrator at Remote Location Secure access to Management Console from anywhere using only a browser

ORACLE ADF MOBILE DATA SHEET

Enterpise Mobility Lexicon & Terminology

vcommander will use SSL and session-based authentication to secure REST web services.

Certified Selenium Professional VS-1083

Mobile development with Apache OFBiz. Ean Schuessler, Brainfood

Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions OVERVIEW

SaaS-Based Employee Benefits Enrollment System

THE CCLRC DATA PORTAL

General Introduction

MEng, BSc Computer Science with Artificial Intelligence

Structured Content: the Key to Agile. Web Experience Management. Introduction

Test Automation Integration with Test Management QAComplete

SOA Solutions & Middleware Testing: White Paper

Features of The Grinder 3

Developing ASP.NET MVC 4 Web Applications

New Features of SharePoint 2013

Developing Microsoft SharePoint Server 2013 Advanced Solutions

Last Updated: July STATISTICA Enterprise Server Security

Responsive, resilient, elastic and message driven system

Automatic Conversion of Desktop Applications to Java Web Technology

WEB TESTING APPLICATION WITH PHP AUTOMATED TOOL

BPMS BUYER S TOOL KIT. Sample Request for Proposal for a Business Process Management Suite. Part 1 of the complete BPMS Buyer s Tool Kit

Enhanced Mobile Cloud Computing Platform

Developing ASP.NET MVC 4 Web Applications MOC 20486

Symplified I: Windows User Identity. Matthew McNew and Lex Hubbard

GSA2013: The Great SharePoint Adventure 2013

Agile IP Video Delivery: Redefining STB Software Architecture. December 2012 Espial Group All rights reserved

Example. Represent this as XML

Oct 15, Internet : the vast collection of interconnected networks that all use the TCP/IP protocols

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

WIRIS quizzes web services Getting started with PHP and Java

Espial IPTV Middleware. Evo Solution Whitepaper. <Title> Delivering Interactive, Personalized 3-Screen Services

BDD FOR AUTOMATING WEB APPLICATION TESTING. Stephen de Vries

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

GUIDE Gentle User Interfaces for Elderly People

IBM Script Portlet for WebSphere Portal Release 1.1

Spectrum Technology Platform

Japan Cable TWG F2F MTG. May, 2013

Electronic Ticket and Check-in System for Indico Conferences

WEB SERVICES FOR MOBILE COMPUTING

Web Applications Access Control Single Sign On

Automated testing of CS UI using Selenium and Python

Implementing Mobile Thin client Architecture For Enterprise Application

Implementation of a Video On-Demand System For Cable Television

<Insert Picture Here> Java, the language for the future

Introducing. automated functional testing of mobile apps. Karl Krukow, CTO, LessPainful GotoAMS, May, 2012

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

WEB SERVICES TEST AUTOMATION

Pattern Insight Clone Detection

Model-based Automated GUI Testing For Android Web Application Frameworks

ServiceNow Certified Application Developer. Examination Specifications

Understanding Evolution's Architecture A Technical Overview

Alice. Software as a Service(SaaS) Delivery Platform. innovation is simplicity

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

opening the clouds qualitative overview of the state-of-the-art open source cloud management platforms. ACM, middleware 2009 conference

WSDL-DSL + WSToolKit

Transcription:

Property-based testing for Web Services The PROWESS consortium

EU PROWESS project Aims to improve testing, particularly for web services, through uptake and use of property-based testing (PBT). The tool for PBT can be used to test web services as well as systems built in Erlang, Java, C, but system models and properties are written in Erlang.

Consortium University of Sheffield - UK University of Kent - UK Chalmers University of Technology - Sweden Universidad Politécnica de Madrid - Spain University of Coruna - Spain Quviq AB - Sweden Erlang Solutions Ltd - UK Interoud Innovation S.L. - Spain SP Technical Research Institute of Sweden - Sweden

Erlang ecosystem Megaload Erlang Wrangler

Web Services WSToolkit JSONgen fault_check C smother Erlang Mu2 pulse ranking complexity James Java

Overview - Big picture

random test generation

properties

ReadSpec helps you understand properties and models as natural language. properties ReadSpec

GoodExamples helps you understand properties by example. properties ReadSpec GoodExamples

specification existing properties

specification existing Synapse visualise systems as FSMs. Synapse properties

specification existing James infer models for web services. Synapse James properties

specification existing JSONgen JSONgen makes QC generators from JSON data. properties

specification existing JSONgen WSDL dsl WSDL how to express WSDL types as QC generators. properties

specification existing JSONgen WSDLdsl WStoolkit WStoolkit generates an Erlang interface to underlying web service. properties

specification existing UI testing: Webdriver Erlang of Webdriver. properties

properties

PULSE additional support for concurrency testing. properties PULSE

FaultCheck combines fault-injection and PBT. properties FaultCheck

Mu2 supports mutation Testing. properties Mu2

Smother measures test coverage. properties Mu2 Smother

ComplexityCheck identify scalability issues in code. properties ComplexityCheck

properties

properties

properties

Ranker comparing different s. properties Ranker

Megaload cloud-based testing. specification properties Megaload

Case study - VoDKATV Internet-Protocol TV (IPTV) / Over the top content (OTT) Cloud Middleware Architecture. Interactive services for IPTV/OTT environments, eg, hotels. Runs on a set-top-box (STB), connected to a TV + remote. Component-based; on client side: STB, tablet, PC, phone,

Set-top box The STB includes a portable middleware layer implemented in Erlang, a UI layer developed in HTML, JavaScript and CSS (Webkit browser); communication between the UI layer and the middleware via a WebSocket-based protocol.

Web services for interactions Some APIs respond in XML, others in JSON Different kinds of authentication for access to the APIs: none required, authentication with cookies authentication with tokens, e.g. expiration time, max # logins per user,

The toolset

Property-based testing At centre of our ego-system is property-based testing with. Controlled random test generation from a specification which describes properties of interest. provides combinators to define properties, observe the distribution of test data, and define test data generators. Contact: Quviq.

specification Combine WStoolkit with WStoolkit properties

Wrangler ^ specification specification WStoolkit Wrangler to support properties properties

Evolution in PBT with WStoolkit Using Wrangler, Kent s tool for refactoring Erlang systems. Infer changes between WSDL descriptions from these generate refactoring scripts which automate model evolution as much as possible. Contact: Kent

specification properties Megaload

Megaload Load testing VoDKA Cloud-based load testing of systems. Megaload: loads, monitors and presents results. Generating load profiles and shrinking to minimal (counter-) examples in the most load-effective way. Contact: ESL

specification existing Synapse visualise systems as FSMs. Synapse properties

specification existing James infer models for web services. Synapse James properties

Inference and PBT How to develop properties for a system. Two tools: James infer models for web services from unit written in Java, using JUnit. Synapse - infer FSMs from systems, and visualise the difference between models / systems.

James New JUnit from existing, by model inference. Track a combination of data- / control-flow information extracted from running the test suite on the SUT run the on the Java VM track information using C++ agent and JVM-TI API Contact: Kent

James Track and send to an Erlang server: the execution order of the calls in the JUnit, and how objects are reused. Server generates a model visualised through GraphViz. Translate model into then generate new, that can be added to the original test suite.

Synapse An Erlang interface to grammar inference tools. Synapse interfaces to the StateChum tool for passive and active inference of FSM models, as well as: active and passive learning, model differencing, and FSM and difference visualisation. Contact: Sheffield

Understanding properties and models Synapse tool allows users to visualise differences between variants of models / systems as FSMs. ReadSpec to render models in (semi-)natural language. GoodExamples tool to make the meaning of a property more concrete by viewing it as a set of unit.

ReadSpec helps you understand properties and models as natural language. properties ReadSpec

GoodExamples helps you understand properties by example. properties ReadSpec GoodExamples

ReadSpec ReadSpec uses to automatically generate semi-natural language descriptions of properties and state machine models. Example: simple_eqc.erl contains a property to test the delete operation of the lists module: Contact: UDC

?FORALL({I,L}, {int(), list(int())}, not lists:member(i,lists:delete(i, L))) FEATURE: Simple properties SCENARIO: Deleting an integer from a list should result in a list that does not contain that integer. GIVEN I have the integer 19 AND I have the list [7, -24, -18, 17, -8, -9, -8] THEN lists:member(19, lists:delete(19, [7,-24,-18,17,-8,-9,-8])) IS FALSE.

GoodExamples tool It can be hard to tell what a property properties - powerful and general; unit - easy to understand but specific. GoodExamples - makes the meaning of a property more concrete by viewing it as a set of unit. Contact: Chalmers

Support for Web Services Tools to support data generation for web services models: JSONgen is a library for generating generators from descriptions of JSON data using JSON schemas, and for automatically exploring and testing JSON web services. wsdl_dsl is a library that implements a domain specific language which re-uses the WSDL syntax to allow users to express WSDL types as generators.

specification existing JSONgen properties

specification existing JSONgen WSDL dsl properties

specification existing JSONgen WSDLdsl WStoolkit properties

JSONgen convert and explore Convert JSON schema to mochijson2 Erlang term. Convert JSON schema into a generator. Convert JSON data value in mochijson2 format to text Explore and test a JSON based web service using the web links / data types embedded in the JSON schema args. Can tailor the actions with a state machine.

properties

Scaling PBT Model using components instead of a single model. Library for mocking the behaviour of callout components. Clustered system resulting from the component models.

MoreBugs by hand : run QC, fix bug, repeat With MoreBugs, can find all bugs at once, through find bug, generalise modify generator to avoid it and repeat Contact: Chalmers

Support for graphical editing Contact: Quviq

How good is your test suite? Mu2 supports mutation Testing. properties Mu2

Smother measures test coverage. properties Mu2 Smother

Validating quality of test suites Smother used to assess the MC/DC coverage of a test suite. Mu2 supports mutation testing if I make small changes to the code, can I spot these errors with my test suite? Add screen-shot of smother here. Contact: Sheffield

properties FaultCheck

Testing non-functional requirements FaultCheck a fault-injection tool for C code that combines faultinjection and property based testing using. Contact: SP

CI CI is a continuous integration server that runs QuviQ on a project. Open Source Developers can use CI to get free access to QuviQ. CI runs the full version of, including the connection to C. Contact: Quviq

Results

specification existing properties

specification existing Scalable PBT: components and mocking properties

specification existing Accessible PBT: ReadSpec, GoodExamples properties

specification existing PBT for web services: WStoolkit, JSONgen properties

specification existing properties Discovering properties: James, Synapse

specification existing properties Improved testing: Smother, Mu2, FaultCheck

specification existing properties Evolution and PBT: QC CI, WStoolkit, Ranker

Acknowledgement The Universities of Sheffield, Kent, A Coruña, Chalmers Technical University and the Polytechnic University of Madrid; Quviq AB, Interoud, Erlang Solutions Ltd and SP gratefully acknowledge the support of the European Commission for the PROWESS project, funded under Framework Programme 7.

Results Scalable PBT: components, mocking Accessible PBT: ReadSpec, GoodExamples PBT for web services: WStoolkit, JSONgen Discovering properties: James, Synapse Improved testing: Smother, Mu2, FaultCheck Evolution and PBT: QC CI, WStoolkit, Ranker www.prowess-project.eu