Model-Based Quality Assurance of The SMB2 Protocol Documentation

Similar documents
Interoperability Tools for CIFS/SMB/SMB2 Paul Long and Simon Sun Microsoft

2015 IBM Continuous Engineering Open Labs Target to better LEARNING

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB)

The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform

Systems Engineering Master Project

Effective Team Development Using Microsoft Visual Studio Team System

The SPES Methodology Modeling- and Analysis Techniques

Developing Visual Studio Workflows and Activities for SharePoint Sites

Develop your Database using Database Projects from SQL Server Data Tools (SSDT)

Best Practices for Adopting Visualization Into Your Software Process. Mitch Bishop Johann Mendoza

R3: Windows Server 2008 Administration. Course Overview. Course Outline. Course Length: 4 Day

Getting Started Guide

IBM WebSphere ILOG Rules for.net

Workflow and Forms Services for People-Driven Process Management

Server based signature service. Overview

WebSphere Business Modeler

Peer Review Process Description

Security challenges for internet technologies on mobile devices

A Java proxy for MS SQL Server Reporting Services

Performance Test Process

Conceptual Model for Enterprise Governance. Walter L Wilson

Embedded Software Development with MPS

<Insert Picture Here> Introducing Data Modeling and Design with Oracle SQL Developer Data Modeler

Making SharePoint Work with Workflow. Robert L. Bogue 3 Part Presentation Series

ORACLE APPLICATION EXPRESS 5.0

Managing and Maintaining Windows Server 2008 Servers

Requirements Definition and Management Processes

Microsoft SOA Roadmap

Model-driven development solutions To support your business objectives. IBM Rational Rhapsody edition comparison matrix

Introduction to Testing Webservices

From Lifecycle Modelling to Lifecycle Analysis A Framework for Interactive Visualisation of Lifecycle Information

Design by Contract beyond class modelling

The GO4IT IPv6 Test Tool and Associated services. Alain Vouffo FOKUS (Fraunhofer Institute for Open Communication Systems)

Logistics. Software Testing. Logistics. Logistics. Plan for this week. Before we begin. Project. Final exam. Questions?

HPE PC120 ALM Performance Center 12.0 Essentials

A McKnight Associates, Inc. White Paper: Effective Data Warehouse Organizational Roles and Responsibilities

Verification and Validation of Software Components and Component Based Software Systems

Introduction to UDDI: Important Features and Functional Concepts

Utilizing Domain-Specific Modelling for Software Testing

Model-Based Testing of Spacecraft Flight Software

Developing Microsoft Azure Solutions 20532B; 5 Days, Instructor-led

Peer Review Process Description

Release 1. ICAPRG604A Create cloud computing services

Key Benefits of Microsoft Visual Studio 2008

Testhouse Training Portfolio

Bringing agility to Business Intelligence Metadata as key to Agile Data Warehousing. 1 P a g e.

Software Engineering. Session 3 Main Theme Requirements Definition & Management Processes and Tools Dr. Jean-Claude Franchitti

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

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

Case Study: Financial Institution Deploys MBT to Test at the Speed of Agile Development

Evaluation of different Open Source Identity management Systems

IBM Unstructured Data Identification and Management

Models of Software Development

What Is the Java TM 2 Platform, Enterprise Edition?

Model Based Testing (MBT) J u n e

Single Sign-on (SSO) technologies for the Domino Web Server

Oracle Data Integrator 11g New Features & OBIEE Integration. Presented by: Arun K. Chaturvedi Business Intelligence Consultant/Architect

BENEFITS OF MODELING WITH A FORMAL LANGUAGE. Emmanuel Gaudin emmanuel.gaudin@pramadev.com

Automating Service Negotiation Process for Service Architecture on the cloud by using Semantic Methodology

Load DynamiX Storage Performance Validation: Fundamental to your Change Management Process

Tomáš Müller IT Architekt 21/04/2010 ČVUT FEL: SOA & Enterprise Service Bus IBM Corporation

Model based testing tools. Olli Pekka Puolitaival

DEVELOPMENT OF A WORKFLOW APPLICATION FOR VEHICLE FLEET MANAGEMENT: A CASE STUDY OF GUINNESS NIGERIA PLC

clooca : Web based tool for Domain Specific Modeling

Protect Your Organization With the Certification That Maps to a Master s-level Education in Software Assurance

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

POLAR IT SERVICES. Business Intelligence Project Methodology

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Cloud Computing Security Considerations

Continuous Integration & Automated Testing in a multisite.net/cloud Project

Summer Internship 2013 Group No.4-Enhancement of JMeter Week 1-Report-1 27/5/2013 Naman Choudhary

Combining SAWSDL, OWL DL and UDDI for Semantically Enhanced Web Service Discovery

Techniques and Tools for Rich Internet Applications Testing

Key Evolutions of ERP

IBM WebSphere Application Server

Boogie: A Modular Reusable Verifier for Object-Oriented Programs

RUGGEDCOM NMS. Monitor Availability Quick detection of network failures at the port and

Increasing Development Knowledge with EPFC

ArcGIS Viewer for Silverlight An Introduction

MOC 10964C: Cloud and Datacenter Monitoring with System Center Operations Manager

Implementing and Administering Security in a Microsoft Windows Server 2003 Network

Product Information CANape Option Simulink XCP Server

Fast and Easy Delivery of Data Mining Insights to Reporting Systems

Document Management. Document Management for the Agile Enterprise. AuraTech Pte Ltd

Volume I, Appendix C Table of Contents

PASS4TEST 専 門 IT 認 証 試 験 問 題 集 提 供 者

Goals. Understanding security testing

CHAPTER 3 REAL TIME SCHEDULER SIMULATOR

Transcription:

Model-Based Quality Assurance of The SMB2 Protocol Documentation Wolfgang Grieskamp Architect, Protocol Engineering Team, Microsoft Corporation

Microsoft Part of the company s interoperability initiative Principles http://www.microsoft.com/interop/principles Addresses compliance requirements Publicly available http://msdn2.microsoft.com/en-us/library/cc216514.aspx

Protocol Engineering Team Quality assurance of protocol documentation Ensure accuracy and usability Unique challenge Testing documents (not software) Volume 250+ protocols in Windows alone (25,000+ pages of documentation) Scope is extending (Office,.Net, ) Requires innovative methods and tools

Test-Driven Document Analysis Technical Document Test Suite Formalization Normative statements Validate consistency Simulate implementation process Assertions (checked against the protocol)

Document Testing Approach Developing model and test suite From technical document (TD) alone Black box Only data on the wire is controlled and observed Clean-room approach ~300 vendors in China and India No previous knowledge of implementation details ~50 Microsoft employees Management and tools infrastructure Ensures: Usability of document Simulates protocol development conditions Accuracy of document Discovers discrepancy between document and implementation

Out of Scope Exhaustive implementation testing Stress/performance testing Certification testing Documentation completeness testing Client behavior testing

Document Testing Process Study phase Read TD Elicit requirements Suggest approach Plan phase Classify requirements Plan model Suggest architecture Design phase Create model Implement adapters PQA Report Final phase Generate tests Deploy test suite Execute and capture

Running Example: SMB2 Server Message Block Version 2

Requirements Gathered from TD alone Gatherers are not expert in the particular protocol Windows-specific behavior listed as separate requirements Predefined template and guidelines for Identifying requirements (statements) in the TD Classifying them according to verifiability criteria verification strategy (test suite, adapter) Requirements Specification (RS) Reviewed by independent reviewers Main input for model design Traceability TD RS Model Test Suite Logs Network Captures

Requirement Spec: SMB2

Protocol Quality Assurance Report (PQAR) Template-based document Incrementally produced Central point of documentation of progress After finalization, turns into test suite documentation for sustained engineering

PQAR: SMB2

Model-based testing (MBT) A light-weight formal method Spec/Reqs Model Generate Feedback Test Cases Test Oracle Verdict Control Observe Feedback Implementation

MBT Technology: Spec Explorer 2007 Mature technology from Microsoft Research First version, 2002 Multiple modeling styles and languages Programs, patterns, diagrams State machine extraction from model program Data generation (pairwise combinations, stochastic selection, etc.) Test code generation from state machine Model composition IDE integration

Test Representation Problem: getting data on the wire and back Known problem for protocol testing E.g. TTCN-3 Our solution: extension to Visual Studio Test Framework Unit tests: concise test case representation Test adapters written in a managed language (C#) Protocol Test Framework (PTF) Custom support for dealing with protocols Automatic data packet (de)serialization Based on declarative definitions Protocol-specific logging capacity (beacon packets)

Adapter interface: SMB2 public interface ISmb2SetupAdapter : IAdapter { void AssumeShareExists(int shareid, ShareType type); void AssumeShareDoesNotExist(int shareid); } public interface ISmb2Adapter : IAdapter { void TreeConnectRequest( int relativemessageid, int creditrequest, int shareid); event TreeConnectResponseHandler TreeConnectResponse; } public delegate void TreeConnectResponseHandler(int relativemessageid, int creditresponse, int treeid, ShareType sharetype); Methods represent stimuli (test control) Events represent responses (test observation)

Contract Model Program: SMB2 static SetContainer<int> fileids; static int fileidsinflight; static SequenceContainer<Request> inflight; [Action] static void CreateRequest(int sequenceid, int creditrequest, [Domain("OpenTreeDomain")]int treeid, CreateType disposition, [Domain("FileNameDomain")]string filename) { Contracts.Requires(fileIds.Count - fileidsinflight > 0); CheckRequest(sequenceId, creditrequest); inflight.add(new CreateRequest(sequenceId, treeid, disposition, filename)); fileidsinflight++; } Uses rich (infinite) model state Exploration slices an FSM

Test Selection: SMB2 machine StateMachine() : Actions { construct model program from Actions where namespace = "SMB2.Model" // construct contract model from C# } machine AllSync() : Actions { // compose contract model with test purpose ( AssumeShareExists(1, ShareType.DISK); // assume one share SetupConnectionAndSession(1); // setup session (window=1)... // wildcard from here ) StateMachine } machine TestsForAllSync() : Actions { // construct test cases construct test cases where strategy = "longtests" for AllSync }

Spec Explorer Demo

Conclusions Our process provides confidence in document quality But: testing can only prove the presence of errors! Using advanced technologies and processes Driving the state of the art in the area Proof that MBT scales in industry testing Making technologies available to the community Various publications Network Monitor freely released Spec Explorer to follow

The End (Thanks!) Q&A